Skip to content

Standard Deployment

The Standard Deployment bundles the SvelteKit frontend and Django backend into one container on a single port. No separate backend URL, no reverse proxy required for basic use.

The Advanced Deployment remains available for users who prefer separate frontend/backend services or custom integrations.

When to use Standard Deployment

Standard DeploymentAdvanced Deployment
One URL, one portTwo ports (frontend + backend)
Two env vars to startFull .env configuration
Good for homelabs and quick installsGood for reverse proxies and split deployments

Quick start

Most installs use Docker Compose directly:

bash
wget https://raw.githubusercontent.com/seanmorley15/AdventureLog/main/docker-compose.yml
wget https://raw.githubusercontent.com/seanmorley15/AdventureLog/main/.env.example
cp .env.example .env
# Edit .env — set POSTGRES_PASSWORD, then:
docker compose --env-file .env up -d

Guided installer (optional)

Prefer a walkthrough? The Quick Start Installer deploys this same Standard Deployment stack interactively:

bash
curl -sSL https://get.adventurelog.app | bash

Open http://localhost:8015 (or your configured SITE_URL).

Memory: allocate at least 2 GB RAM on first boot; about 1 GB is usually enough afterward.

Default admin login: admin / admin — change this after first login.

Configuration

Only two variables are required in .env:

VariableRequiredDescriptionDefault
POSTGRES_PASSWORDYesDatabase password
SITE_URLNoPublic URL for the apphttp://localhost:8015

Optional:

VariableDescriptionDefault
HOST_PORTHost port mapped to the container8015

Everything else (Django SECRET_KEY, CSRF_TRUSTED_ORIGINS, PUBLIC_URL, FRONTEND_URL, ORIGIN, internal PUBLIC_SERVER_URL, etc.) is derived automatically at startup.

Image size

The Standard Deployment image is ~1 GB (PostGIS/GDAL + Python + Node). It must not include local dev folders such as backend/server/media/ or .venv — those are excluded via .dockerignore. If your built image is ~3 GB, rebuild from a clean checkout without baking in local media.

Example .env

env
POSTGRES_PASSWORD=my-secure-db-password
SITE_URL=https://adventurelog.example.com
HOST_PORT=443

When using HTTPS behind an external reverse proxy, set SITE_URL to your public HTTPS URL and proxy traffic to the container port.

Updating

bash
docker compose --env-file .env pull
docker compose --env-file .env up -d --wait

Image

Prebuilt image: ghcr.io/seanmorley15/adventurelog:latest

To build locally from source:

bash
docker build -f docker/Dockerfile --target aio -t adventurelog .
# or
docker compose --env-file .env build

See docker/README.md for all build targets.

Operations

Additional options can be added to .env or the environment block in docker-compose.yml.