mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2026-07-31 07:49:07 -04:00
- Replaced the All-in-One (AIO) deployment setup with a Standard Deployment configuration, introducing .env.advanced.example for advanced settings. - Updated .dockerignore to reflect the new environment file structure. - Removed .env.aio.example and associated references from documentation and workflows. - Enhanced installation instructions to clarify the new Standard Deployment process. - Updated GitHub Actions workflows to align with the new deployment structure, including smoke tests and image builds. - Improved documentation for environment variable references and deployment options.
52 lines
2.2 KiB
Markdown
52 lines
2.2 KiB
Markdown
# Traefik Reverse Proxy
|
|
|
|
Deploy AdventureLog behind [Traefik](https://traefik.io/) with automatic HTTPS and path-based routing using the official compose file.
|
|
|
|
## Official compose file
|
|
|
|
Download [`docker/docker-compose.traefik.yaml`](https://github.com/seanmorley15/AdventureLog/blob/main/docker/docker-compose.traefik.yaml) from the repository. It includes:
|
|
|
|
- Traefik v2.11 with Let's Encrypt
|
|
- Prebuilt `adventurelog-frontend` and `adventurelog-backend` images (no local build required)
|
|
- Path-based routing: frontend pages on `/`, backend on `/media`, `/admin`, `/accounts`, `/static`
|
|
|
|
## Required environment variables
|
|
|
|
Add these to your `.env` alongside the standard AdventureLog variables:
|
|
|
|
| Variable | Description | Example |
|
|
| -------- | ----------- | ------- |
|
|
| `ACME_EMAIL` | Let's Encrypt registration email | `you@example.com` |
|
|
| `TRAEFIK_DOMAIN` | Public domain for the router | `adventurelog.example.com` |
|
|
| `SITE_URL` | Public HTTPS URL (derives CSRF and frontend origins) | `https://adventurelog.example.com` |
|
|
|
|
See [Environment Variables](../configuration/environment_variables.md) for the full list.
|
|
|
|
## Getting started
|
|
|
|
```bash
|
|
wget https://raw.githubusercontent.com/seanmorley15/AdventureLog/main/docker/docker-compose.traefik.yaml
|
|
wget https://raw.githubusercontent.com/seanmorley15/AdventureLog/main/.env.advanced.example
|
|
cp .env.advanced.example .env.advanced
|
|
# Edit .env: set SITE_URL, ACME_EMAIL, TRAEFIK_DOMAIN, POSTGRES_PASSWORD, SECRET_KEY
|
|
bash scripts/validate-env.sh
|
|
docker compose -f docker/docker-compose.traefik.yaml up -d
|
|
```
|
|
|
|
## Routing overview
|
|
|
|
Traefik routes traffic to two containers on a single domain:
|
|
|
|
| Path prefix | Service |
|
|
| ----------- | ------- |
|
|
| `/`, `/api`, `/auth`, app pages | Frontend (SvelteKit) |
|
|
| `/media`, `/admin`, `/accounts`, `/static` | Backend (Django/Gunicorn) |
|
|
|
|
This matches the internal routing model used by [Standard Deployment](standard.md), but with separate frontend and backend services.
|
|
|
|
## Related guides
|
|
|
|
- [Advanced Deployment](docker.md) — base configuration without Traefik
|
|
- [Environment Variables](../configuration/environment_variables.md) — URL and CSRF settings
|
|
- [Nginx Proxy Manager](nginx_proxy_manager.md) — alternative reverse proxy
|