Gramps Web ist eine webbasierte Variante von Gramps, einem Open-Source-Stammbaumprogramm. Es ermöglicht die Zusammenarbeit mehrerer Benutzer über einen lokalen oder Online-Server. Dadurch können Familienmitglieder oder Forscher gemeinsam an genealogischen Projekten arbeiten und Daten in Echtzeit austauschen.
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
Hardwaretechnisch solltet ihr auch nicht allzu schwachbrüstig aufgestellt sein, auf meinem vServer mit 4GB Speicher kam ich ganz schön in die Bredouille. Nachdem ich aber andere Container wie paperless und pdftools gestoppt hatte, lief das eigtl. ganz flüssig durch. Leider habe ich keine offiziellen Empfehlungen gefunden. Das Image wird aber sowohl für x86-64 als auch ARM-Architektur zur Verfügung gestellt.
Danke übrigens an espo, der sich eine Anleitung zu diesem Tool gewünscht hat, und mich dadurch darauf aufmerksam gemacht hat.
1. Ordner erstellen
Als erstes erstellen wir uns die nötigen Ordner:
mkdir -p /opt/containers/grampsweb/{cache,config,db,index,media,secret,thumb-cache,tmp,users}
Nun navigieren wir in den Ordner:
cd /opt/containers/grampsweb
2. Docker-compose erstellen
Wir erstellen die docker-compose Datei:
nano docker-compose.yml
Und fügen folgenden Inhalt ein:
services: grampsweb: &grampsweb container_name: grampsweb image: ghcr.io/gramps-project/grampsweb:latest restart: unless-stopped environment: GRAMPSWEB_TREE: "Mein Stammbaum" # will create a new tree if not exists GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://grampsweb_redis:6379/0" GRAMPSWEB_CELERY_CONFIG__result_backend: "redis://grampsweb_redis:6379/0" 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 labels: - "traefik.enable=true" - "traefik.http.routers.gramps.entrypoints=websecure" - "traefik.http.routers.gramps.rule=(Host(`stammbaum.meine-domain.de`))" - "traefik.http.routers.gramps.tls=true" - "traefik.http.routers.gramps.tls.certresolver=http_resolver" - "traefik.http.services.gramps.loadbalancer.server.port=5000" - "traefik.docker.network=proxy" - "traefik.http.routers.gramps.middlewares=default@file" networks: - proxy - default grampsweb_celery: <<: *grampsweb # YAML merge key copying the entire grampsweb service config container_name: grampsweb_celery depends_on: - grampsweb_redis command: celery -A gramps_webapi.celery worker --loglevel=INFO --concurrency=2 labels: [] networks: - default grampsweb_redis: image: docker.io/library/redis:7.2.4-alpine container_name: grampsweb_redis restart: unless-stopped networks: - default networks: proxy: external: true
Denkt daran, die Domain (stammbaum.meine-domain.de) in den traefik-labels entsprechend auf eure Domain abzuändern.
Das Original-File vom Projekt findet ihr hier.
3. Container hochfahren und die Einrichtung des Programms
Jetzt können wir unseren Container auch schon mit
docker compose up -d
hochfahren und im Browser das Interface unter unserer Domain aufrufen.
3.1 Admin-User einrichten
Wenn ihr alles richtig gemacht habt, solltet ihr nun eine GUI sehen, die euch auffordert einen Admin-User anzulegen:
Gebt eure Daten an und legt, wenn gewünscht, auch gleich die Einstellungen zum Mail-Versand fest. Die findet ihr direkt unter diesem Formular. Ihr habt auch die Möglichkeit, einen bestehenden Gramps-Stammbaum zu importieren.
Ansonsten scrollt ganz nach unten und klickt auf “Submit”
3.2 OPTIONAL: SMTP-Einstellungen festlegen
Wenn ihr das Formular für den Admin-User ausgefüllt habt, könnt ihr im Formular direkt darunter die Einstellungen für den SMTP-Server festlegen:
3.3 OPTIONAL: Bestehenden Stammbaum hochladen
Direkt darunter habt ihr mit einem Klick auf den Button die Möglichkeit, einen Stammbaum zu importieren, der mit Gramps erstellt wurde.
Der Link zur Dokumentation ist übrigens tot.
Fertig! Klickt auf Submit, anschließend auf Start und ihr werdet in die GUI weitergeleitet
Kleine Anmerkung: Das Interface war bei mir zuerst auf Englisch, nach einem versehentlichem Refresh der Seite hat es sich allerdings auf Deutsch umgestellt.
Wenn alles geklappt hat, solltet ihr zur Anwendung weitergeleitet werden:
Viel Spaß!