feat: Add Gramps Web genealogy integration

- Add Gramps Web service to both development and production compose files
- Configure Django-Gramps API integration environment variables
- Update production environment template with Gramps configuration
- Enable genealogy features for foundation family tree management
- Gramps Web will be accessible at /ahnenforschung in production
This commit is contained in:
Stiftung Development
2025-10-15 20:18:20 +02:00
parent b9544048e6
commit c1c6824364
3 changed files with 48 additions and 5 deletions

View File

@@ -47,6 +47,9 @@ services:
- PAPERLESS_DESTINATAERE_TAG_ID=1 - PAPERLESS_DESTINATAERE_TAG_ID=1
- PAPERLESS_LAND_TAG_ID=3 - PAPERLESS_LAND_TAG_ID=3
- PAPERLESS_ADMIN_TAG_ID=2 - PAPERLESS_ADMIN_TAG_ID=2
- GRAMPS_URL=http://grampsweb:5000
- GRAMPS_USERNAME=admin@localhost
- GRAMPS_PASSWORD=gramps_dev_password
ports: ports:
- "8081:8000" - "8081:8000"
volumes: volumes:
@@ -80,9 +83,29 @@ services:
- db - db
- redis - redis
grampsweb:
image: ghcr.io/gramps-project/grampsweb:latest
ports:
- "8090:5000"
environment:
- GRAMPSWEB_SECRET_KEY=dev-grampsweb-secret-key-not-for-production
- GRAMPSWEB_ADMIN_EMAIL=admin@localhost
- GRAMPSWEB_ADMIN_PASSWORD=gramps_dev_password
- GRAMPSWEB_TREE=Stiftung
- GRAMPSWEB_BASE_URL=/ahnenforschung
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://redis:6379/0
- GRAMPSWEB_CELERY_CONFIG__result_backend=redis://redis:6379/0
- GRAMPSWEB_RATELIMIT_STORAGE_URI=redis://redis:6379/1
- GRAMPSWEB_NEW_DB_BACKEND=sqlite
volumes:
- gramps_data_dev:/app/data
depends_on:
- redis
volumes: volumes:
dbdata_dev: dbdata_dev:
paperless_data_dev: paperless_data_dev:
paperless_media_dev: paperless_media_dev:
paperless_export_dev: paperless_export_dev:
paperless_consume_dev: paperless_consume_dev:
gramps_data_dev:

View File

@@ -53,6 +53,10 @@ services:
- PAPERLESS_DESTINATAERE_TAG_ID=${PAPERLESS_DESTINATAERE_TAG_ID} - PAPERLESS_DESTINATAERE_TAG_ID=${PAPERLESS_DESTINATAERE_TAG_ID}
- PAPERLESS_LAND_TAG_ID=${PAPERLESS_LAND_TAG_ID} - PAPERLESS_LAND_TAG_ID=${PAPERLESS_LAND_TAG_ID}
- PAPERLESS_ADMIN_TAG_ID=${PAPERLESS_ADMIN_TAG_ID} - PAPERLESS_ADMIN_TAG_ID=${PAPERLESS_ADMIN_TAG_ID}
- GRAMPS_URL=${GRAMPS_URL}
- GRAMPS_USERNAME=${GRAMPS_USERNAME}
- GRAMPS_PASSWORD=${GRAMPS_PASSWORD}
- GRAMPS_API_TOKEN=${GRAMPS_API_TOKEN}
ports: ports:
- "8081:8000" - "8081:8000"
volumes: volumes:
@@ -70,6 +74,10 @@ services:
- DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY} - DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY}
- DJANGO_DEBUG=${DJANGO_DEBUG} - DJANGO_DEBUG=${DJANGO_DEBUG}
- REDIS_URL=${REDIS_URL} - REDIS_URL=${REDIS_URL}
- GRAMPS_URL=${GRAMPS_URL}
- GRAMPS_USERNAME=${GRAMPS_USERNAME}
- GRAMPS_PASSWORD=${GRAMPS_PASSWORD}
- GRAMPS_API_TOKEN=${GRAMPS_API_TOKEN}
depends_on: depends_on:
- redis - redis
- db - db
@@ -86,6 +94,10 @@ services:
- DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY} - DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY}
- DJANGO_DEBUG=${DJANGO_DEBUG} - DJANGO_DEBUG=${DJANGO_DEBUG}
- REDIS_URL=${REDIS_URL} - REDIS_URL=${REDIS_URL}
- GRAMPS_URL=${GRAMPS_URL}
- GRAMPS_USERNAME=${GRAMPS_USERNAME}
- GRAMPS_PASSWORD=${GRAMPS_PASSWORD}
- GRAMPS_API_TOKEN=${GRAMPS_API_TOKEN}
depends_on: depends_on:
- redis - redis
- db - db

View File

@@ -1,17 +1,19 @@
# ============================================================================= # =============================================================================
# PRODUCTION ENVIRONMENT VARIABLES # PRODUCTION ENVIRONMENT VARIABLES TEMPLATE
# ============================================================================= # =============================================================================
# This template shows the required environment variables for production. # ⚠️ THIS IS A TEMPLATE ONLY - DO NOT PUT REAL SECRETS HERE!
# #
# SETUP INSTRUCTIONS: # SETUP INSTRUCTIONS:
# 1. SSH into production server: ssh user@your-server-ip # 1. SSH into production server: ssh user@your-server-ip
# 2. Navigate to stiftung directory: cd /opt/stiftung # 2. Navigate to stiftung directory: cd /opt/stiftung
# 3. Copy this template: cp env-production.template .env # 3. Copy this template: cp env-production.template .env
# 4. Edit with real values: nano .env # 4. Edit with REAL values: nano .env
# 5. Set secure permissions: chmod 600 .env # 5. Set secure permissions: chmod 600 .env
# #
# IMPORTANT: Once created, this file will NEVER be overwritten by git deployments! # 🔒 SECURITY:
# The .env file is in .gitignore and will be preserved across all future deployments. # - The real .env file stays ONLY on the production server
# - This template is safe to commit to Git (no real secrets)
# - Git deployments will NEVER overwrite your real .env file
# ============================================================================= # =============================================================================
# DATABASE CONFIGURATION # DATABASE CONFIGURATION
@@ -51,6 +53,12 @@ GRAMPSWEB_SECRET_KEY=your_grampsweb_secret_key_here
GRAMPSWEB_ADMIN_EMAIL=admin@vhtv-stiftung.de GRAMPSWEB_ADMIN_EMAIL=admin@vhtv-stiftung.de
GRAMPSWEB_ADMIN_PASSWORD=your_grampsweb_admin_password_here GRAMPSWEB_ADMIN_PASSWORD=your_grampsweb_admin_password_here
# GRAMPS API CONNECTION (for Django integration)
GRAMPS_URL=http://grampsweb:5000
GRAMPS_USERNAME=admin@vhtv-stiftung.de
GRAMPS_PASSWORD=your_grampsweb_admin_password_here
GRAMPS_API_TOKEN=your_gramps_api_token_if_needed
# ============================================================================= # =============================================================================
# GENERATE SECRET KEYS: # GENERATE SECRET KEYS:
# ============================================================================= # =============================================================================