2.2 KiB
Gramps Web
Docker deployment for Gramps Web with Celery and Redis. Run all commands from the repository root.
Appdata Location
This template currently stores persistent directories in the project root as
gramps_*, beside docker-compose.gramps-web.yml. Media is mounted from
/mnt/gramps_media. Do not create these directories inside
docker-compose-files/.
Installation
-
Create
.envif it does not exist:cp -n .env.sample .env -
Set the Gramps, OIDC, and email values in
.env. At minimum configureTREE,BASE_URL,SECRET_KEY, andUSER_DB_URI. -
Create persistent directories and render both templates:
mkdir -p gramps_{users,index,thumb_cache,cache,secret,db,config,data,tmp} ./substitute_env.sh docker-compose-files/gramps-web/config/config_template.cfg gramps_config/config.cfg .env ./substitute_env.sh docker-compose-files/gramps-web/template.yaml docker-compose.gramps-web.yml .env -
Validate and start Gramps Web:
docker compose -f docker-compose.gramps-web.yml config --quiet docker compose -f docker-compose.gramps-web.yml up -d -
Verify the containers and open
http://<HOST_IP>:docker compose -f docker-compose.gramps-web.yml ps docker compose -f docker-compose.gramps-web.yml logs --tail=100
Apply Configuration Changes
./substitute_env.sh docker-compose-files/gramps-web/config/config_template.cfg gramps_config/config.cfg .env
./substitute_env.sh docker-compose-files/gramps-web/template.yaml docker-compose.gramps-web.yml .env
docker compose -f docker-compose.gramps-web.yml up -d
Initial Setup
Open Gramps Web, create the first user, and configure the family tree. Confirm OIDC and email settings if enabled.
Network Requirements
- Allow trusted clients or Caddy to reach port
80. - Ensure
/mnt/gramps_mediaexists and is accessible to Docker.
Troubleshooting
Check that gramps_config/config.cfg, /mnt/gramps_media, and all gramps_*
directories exist before starting the stack.
Useful Commands
docker compose -f docker-compose.gramps-web.yml restart grampsweb
Backup
Back up the project-root gramps_* directories and /mnt/gramps_media.