Jeppe Bundgaard 51014bf774 Add development guidelines, testing rules, and secure routes documentation
- Add `.junie/guidelines.md` with comprehensive development instructions.
- Include `.aiassistant/rules/Creating and maintaining tests.md` and `.aiassistant/rules/Creating and securing routes.md`.
- Introduce `CACHE_SELFSERVE_LANE_KEY_ALLOWED_SERVICES` for lane service validation.
- Update `selfserve_lane_relay_controller_t` to enforce service-specific permissions for machine relay.
2026-02-18 14:13:05 +01:00
2025-01-29 14:27:44 +01:00
2025-01-29 14:27:44 +01:00

Local TLS certificates with Docker Compose

Nginx is configured to terminate TLS using certificates mounted at /etc/letsencrypt inside the container. To use your real Lets Encrypt certificates on the host, the Compose file mounts a configurable path via LETSENCRYPT_PATH.

1) Configure the host certificate path

Copy .env.example to .env in the project root and adjust the path for your environment:

cp .env.example .env
# Edit .env and set one of the following:
# Linux:  LETSENCRYPT_PATH=/etc/letsencrypt
# Windows (WSL Ubuntu): LETSENCRYPT_PATH=//wsl$/Ubuntu/etc/letsencrypt

Ensure the following files exist under the path you set:

  • live/api.truckwash.dk/fullchain.pem
  • live/api.truckwash.dk/privkey.pem
  • live/cloud.truckwash.dk/fullchain.pem
  • live/cloud.truckwash.dk/privkey.pem

If you dont have certs for cloud.truckwash.dk locally, either comment out that TLS server block in services/nginx/nginx.conf or place a temporary selfsigned cert/key at the expected path.

2) Start Nginx

docker compose up -d nginx

Check logs:

docker compose logs -f nginx

3) Troubleshooting

  • “cannot load certificate … no such file or directory”: verify LETSENCRYPT_PATH and that all live/<domain>/ files exist on the host.
  • For purely local testing without HTTPS, you may comment out the HTTPS server blocks and the HTTP→HTTPS redirect in services/nginx/nginx.conf and run on port 80.
S
Description
Staging repo for api (CI + promotion to GitHub)
Readme
40 MiB
Languages
PHP 93.5%
HTML 3.5%
JavaScript 1.9%
Shell 0.4%
Python 0.3%
Other 0.3%