Gramps Web logo

Gramps Web

Open source online genealogy system

Alternative to: ancestry, myheritage, familysearch

Gramps Web screenshot

Gramps Web is a collaborative, web-based genealogy application built on the Gramps family-tree engine. It lets a household or research group browse and edit a shared family tree from any device, with interactive charts, map visualizations, DNA match tools, and two-way sync with the Gramps Desktop application.

Gramps Web Docker Compose example

Self-host Gramps Web on your own server, homelab, or VPS starting from this Docker Compose example. It runs Gramps Web in Docker containers using the official ghcr.io/gramps-project/grampsweb:latest, valkey/valkey:8-alpine images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  grampsweb: &grampsweb
    image: ghcr.io/gramps-project/grampsweb:latest
    restart: unless-stopped
    environment:
      # Name of the family tree; a new tree is created on first start if it does not exist
      GRAMPSWEB_TREE: "Gramps Web"
      # Celery broker (background task queue) — points at the bundled redis service
      GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://grampsweb_redis:6379/0"
      # Celery result backend — points at the bundled redis service
      GRAMPSWEB_CELERY_CONFIG__result_backend: "redis://grampsweb_redis:6379/0"
      # Storage backend used for API rate limiting — points at the bundled redis service
      GRAMPSWEB_RATELIMIT_STORAGE_URI: "redis://grampsweb_redis:6379/1"
    depends_on:
      - grampsweb_redis
    volumes:
      - users:/app/users
      - index:/app/indexdir
      - thumb_cache:/app/thumbnail_cache
      - cache:/app/cache
      - secret:/app/secret
      - db:/root/.gramps/grampsdb
      - media:/app/media
      - tmp:/tmp

  grampsweb_celery:
    <<: *grampsweb
    depends_on:
      - grampsweb
      - grampsweb_redis
    command: celery -A gramps_webapi.celery worker --loglevel=INFO --concurrency=2

  grampsweb_redis:
    image: valkey/valkey:8-alpine
    restart: unless-stopped

volumes:
  users:
  index:
  thumb_cache:
  cache:
  secret:
  db:
  media:
  tmp:

Prefer a managed setup? WinterFlow installs, configures, and updates Gramps Web for you using this same Docker Compose configuration.