6446197925
gates / gates (push) Successful in 2s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
74 lines
3.1 KiB
YAML
74 lines
3.1 KiB
YAML
# Gramps Web - Családfa készítő és genealógiai szoftver
|
|
# Domain: ${SUBDOMAIN}.${DOMAIN}
|
|
# Database: None (file-based)
|
|
# RAM: ~100M (mem_limit: 384M) | Pi-compatible: Yes
|
|
#
|
|
# Environment variables:
|
|
# DOMAIN - Your domain (e.g., demo-felhom.eu)
|
|
# GRAMPSWEB_SECRET_KEY- Titkosítási kulcs (auto-generated)
|
|
|
|
services:
|
|
gramps-web:
|
|
image: ghcr.io/gramps-project/grampsweb:v25.6.0
|
|
container_name: gramps-web
|
|
restart: unless-stopped
|
|
environment:
|
|
# decision 47: the app's own sign-up switch — open until the box closes it after the first admin (after_setup)
|
|
- GRAMPSWEB_REGISTRATION_DISABLED=${SIGNUP_CLOSED:-false}
|
|
- TZ=Europe/Budapest
|
|
- GRAMPSWEB_TREE=Family Tree
|
|
- GRAMPSWEB_SECRET_KEY=${GRAMPSWEB_SECRET_KEY}
|
|
volumes:
|
|
# Storage layout — every path here is named by the image's OWN environment
|
|
# (docker image inspect ghcr.io/gramps-project/grampsweb:v25.6.0 → Config.Env), and the set
|
|
# matches upstream's reference compose
|
|
# (gramps-web-docs/examples/docker-compose-base/docker-compose.yml).
|
|
#
|
|
# What this template mounted before, measured 2026-08-02: only /app/data, /app/media and
|
|
# /tmp — and **/app/data is a path the application never writes**; it appears nowhere in the
|
|
# image's environment. So the FAMILY TREE (GRAMPS_DATABASE_PATH=/root/.gramps/grampsdb) and
|
|
# the ACCOUNTS DATABASE (GRAMPSWEB_USER_DB_URI=…/app/users/users.sqlite) both landed in the
|
|
# container's writable layer: destroyed by any redeploy, and absent from every backup, while
|
|
# gramps_data was tarred nightly as an empty directory.
|
|
- gramps_users:/app/users # GRAMPSWEB_USER_DB_URI — accounts
|
|
- gramps_db:/root/.gramps/grampsdb # GRAMPS_DATABASE_PATH — the family tree
|
|
- gramps_index:/app/indexdir # GRAMPSWEB_SEARCH_INDEX_DB_URI
|
|
- gramps_media:/app/media # GRAMPSWEB_MEDIA_BASE_DIR
|
|
- gramps_thumb_cache:/app/thumbnail_cache # GRAMPSWEB_THUMBNAIL_CACHE_CONFIG__CACHE_DIR
|
|
- gramps_cache:/app/cache # request/persistent caches, reports, exports
|
|
- gramps_secret:/app/secret # upstream reference compose
|
|
- gramps_tmp:/tmp
|
|
networks:
|
|
- traefik-public
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 1024M
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:5000"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.gramps-web.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
|
|
- "traefik.http.routers.gramps-web.entrypoints=websecure"
|
|
- "traefik.http.routers.gramps-web.tls=true"
|
|
- "traefik.http.routers.gramps-web.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.gramps-web.loadbalancer.server.port=5000"
|
|
|
|
volumes:
|
|
gramps_users:
|
|
gramps_db:
|
|
gramps_index:
|
|
gramps_media:
|
|
gramps_thumb_cache:
|
|
gramps_cache:
|
|
gramps_secret:
|
|
gramps_tmp:
|
|
|
|
networks:
|
|
traefik-public:
|
|
external: true
|