services: gramps-db: profiles: ["apps","all","gramps"] image: postgres:13 container_name: gramps-db restart: always environment: POSTGRES_USER: ${GRAMPS_POSTGRES_USER} POSTGRES_PASSWORD: ${GRAMPS_POSTGRES_PASSWORD} POSTGRES_DB: ${GRAMPS_POSTGRES_DB} volumes: - ${PROJECT_ROOT}/apps/gramps/db:/var/lib/postgresql networks: - gramps healthcheck: test: ["CMD-SHELL", "pg_isready -h db -p 5432 -U gramps -d gramps"] interval: 10s timeout: 5s retries: 12 start_period: 30s grampsweb: profiles: ["apps","all","gramps"] image: ghcr.io/gramps-project/grampsweb:latest container_name: gramps-web depends_on: - gramps-db restart: always # ports: # - "5000:5000" # access via http://localhost:5000 environment: DB_URI: ${GRAMPS_DB_URI} GRAMPSWEB_LOGLEVEL: ${GRAMPSWEB_LOGLEVEL} # default admin user created on first run: INITIAL_ADMIN: ${GRAMPS_INITIAL_ADMIN} INITIAL_ADMIN_PASSWORD: ${GRAMPS_INITIAL_ADMIN_PASSWORD} # optional: storage paths inside container GRAMPSWEB_MEDIAPATH: ${GRAMPSWEB_MEDIAPATH} GRAMPSWEB_TREE: "${GRAMPSWEB_TREE}" volumes: - ${PROJECT_ROOT}/apps/gramps/data/users:/app/users - ${PROJECT_ROOT}/apps/gramps/data/media:/app/media - ${PROJECT_ROOT}/apps/gramps/data/cache:/app/cache labels: - "traefik.http.routers.gramps.rule=Host(`familytree.lan.ddnsgeek.com`)" - "traefik.enable=true" - "traefik.http.routers.gramps.entrypoints=websecure" - "traefik.http.routers.gramps.tls.certresolver=myresolver" - "io.portainer.accesscontrol.public" - "traefik.http.services.gramps.loadbalancer.server.port=5000" - "traefik.docker.network=core_traefik" networks: - traefik - gramps healthcheck: test: - CMD-SHELL - wget -qO- http://127.0.0.1:5000/ >/dev/null interval: 30s timeout: 5s retries: 6 start_period: 60s networks: # traefik_reverse_proxy: # external: true gramps: # driver: bridge