5.3 KiB
Docker 🐋
Docker is the preferred way to run AdventureLog on your local machine. It is a lightweight containerization technology that allows you to run applications in isolated environments called containers.
Note
: This guide mainly focuses on installation with a Linux-based host machine, but the steps are similar for other operating systems.
Prerequisites
- Docker installed on your machine/server. You can learn how to download it here.
Getting Started
Get the docker-compose.yml
and .env.example
files from the AdventureLog repository. You can download them here:
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
::: tip
If running on an ARM based machine, you will need to use a different PostGIS Image. It is recommended to use the tobi312/rpi-postgresql-postgis:15-3.3-alpine-arm
image or a custom version found here. The AdventureLog containers are ARM compatible.
:::
Configuration
The .env
file contains all the configuration settings for your AdventureLog instance. Here’s a breakdown of each section:
🌐 Frontend (web)
Name | Required | Description | Default Value |
---|---|---|---|
PUBLIC_SERVER_URL |
Yes | Used by the frontend SSR server to connect to the backend. Should match the internal container name and port. | http://server:8000 |
ORIGIN |
Sometimes | Needed only if not using HTTPS. Set it to the domain or IP you'll use to access the frontend. | http://localhost:8015 |
BODY_SIZE_LIMIT |
Yes | Maximum upload size in bytes. | Infinity |
FRONTEND_PORT |
Yes | Port that the frontend will run on inside Docker. | 8015 |
🐘 PostgreSQL Database
Name | Required | Description | Default Value |
---|---|---|---|
PGHOST |
Yes | Internal DB hostname. | db |
POSTGRES_DB |
Yes | DB name. | database |
POSTGRES_USER |
Yes | DB user. | adventure |
POSTGRES_PASSWORD |
Yes | DB password. | changeme123 |
🔒 Backend (server)
Name | Required | Description | Default Value |
---|---|---|---|
SECRET_KEY |
Yes | Django secret key. Change this in production! | changeme123 |
DJANGO_ADMIN_USERNAME |
Yes | Default Django admin username. | admin |
DJANGO_ADMIN_PASSWORD |
Yes | Default Django admin password. | admin |
DJANGO_ADMIN_EMAIL |
Yes | Default admin email. | admin@example.com |
PUBLIC_URL |
Yes | Publicly accessible URL of the backend. Used for generating image URLs. | http://localhost:8016 |
CSRF_TRUSTED_ORIGINS |
Yes | Comma-separated list of frontend/backend URLs that are allowed to submit requests. | http://localhost:8016,http://localhost:8015 |
FRONTEND_URL |
Yes | URL to the frontend, used for email generation. | http://localhost:8015 |
BACKEND_PORT |
Yes | Port that the backend will run on inside Docker. | 8016 |
DEBUG |
No | Should be False in production. |
False |
Optional Configuration
Running the Containers
Once you've configured .env
, you can start AdventureLog with:
docker compose up -d
Enjoy using AdventureLog! 🎉