TODO # Development ## Local Development Start the client with ```shell 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 ```shell 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 ```shell ./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. ```shell 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 ```shell docker compose -f ./docker-compose-server.yml up ```