- Configure Nginx to use structured JSON access logs and add request ID headers. - Define upstream pool for PHP-FPM with load-balancing support. - Integrate Filebeat for log ingestion across Nginx and PHP logs. - Add `.env.example` and README for local TLS setup guidance. - Extend Dockerfile with PHP extensions (GD, Redis, etc.) and Composer dependency installs. - Add custom PHP configuration for Redis-backed session storage.
36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
### 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 Let’s 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 don’t have certs for `cloud.truckwash.dk` locally, either comment out that TLS server block in `services/nginx/nginx.conf` or place a temporary self‑signed 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.
|