Community website for runners to share tracks and plan runs together.

Lukas Angerer 7fd06e5aab Added missing start date-time to event details 2 lat temu
config a921902570 Build scripts and configuration for staging 3 lat temu
sandbox a921902570 Build scripts and configuration for staging 3 lat temu
src 7fd06e5aab Added missing start date-time to event details 2 lat temu
.editorconfig 765ba63237 Project configuration files 3 lat temu
.gitignore a921902570 Build scripts and configuration for staging 3 lat temu
DESCRIPTION 765ba63237 Project configuration files 3 lat temu
LICENSE 765ba63237 Project configuration files 3 lat temu
README.md 824802a538 Updated readme with development notes 3 lat temu
build.ps1 b57b099181 Restoring wwwroot/.gitkeep after build 3 lat temu
docker-compose-local.yml 2b7b9c754e Fixed track owner filtering with redundant field 3 lat temu
docker-compose-server.yml 03e1ad4708 Docker Compose file for running in prod behind a reverse proxy 3 lat temu
push.ps1 a921902570 Build scripts and configuration for staging 3 lat temu
release.ps1 f2fd4b4dbf Pushing 'latest' in addition to version tag 2 lat temu

README.md

TODO

Development

Local Development

Start the client with

cd src/RunnersMeet.Client
ng serve

It will run on the Angular default port http://localhost:4200

Start the server by either launching it from within your IDE or by running

cd src/RunnersMeet.Server
dotnet run .

In development mode, the API server runs on https://localhost:7247 with Swagger enabled (https://localhost:7247/swagger)

Create a Deployable Package

./build.ps1
./push.ps1

Staging (Docker Container)

To do some proper staging testing before updating the production environment, there is a dedicated docker-compose-local.yml file and a "sandbox" directory with HTTPS certificate and a mapped volume for the application data.

docker compose -f ./docker-compose-local.yml up

When running in this mode, the application frontend and backend are both accessed through https://localhost:7443

Production

The docker-compose-server.yml file assumes that the container will be accessed through a reverse proxy like Nginx and that SSL is applied on the level of that proxy. The container runs over HTTP on port 80 which is exposed as 7180 on the host.

On the production server, the application directory looks something like this:

- (d) config                     # copied from this repository
  - (f) app.prod.config.json
  - (f) app.staging.config.json
- (d) data                       # mounted as "/app/data" in the container
  - (d) files
  - (f) tracks.db
  - (f) tracks-log.db
- (f) docker-compose-server.yml  # taken from this repository

The server can then be started with

docker compose -f ./docker-compose-server.yml up