Files
Stiftung Development f4f7d26d36 fix: Update CI/CD deployment to use active compose.yml file
- Fix deployment script to copy docker-compose.prod.yml to compose.yml (not docker-compose.yml)
- Update all docker-compose commands to use -f compose.yml explicitly
- Rename legacy deploy-synology/docker-compose.yml to .old
- This should fix the deployment issue where VPS wasn't getting updated
2025-09-15 23:02:24 +02:00
..

Stiftung Application - Synology NAS Deployment

Overview

This guide will help you deploy the Stiftung application on a Synology NAS using Docker.

Prerequisites

  • Synology NAS with DSM 7.0+ (recommended)
  • Docker package installed from Synology Package Center
  • At least 4GB RAM available
  • At least 10GB free disk space
  • SSH access enabled (optional but recommended)

Quick Start

  1. Copy the entire deploy-synology folder to your Synology NAS
  2. SSH into your NAS or use File Station
  3. Navigate to the deployment folder
  4. Run: docker-compose up -d
  5. Access the application at: http://YOUR_NAS_IP:8081

Detailed Steps

Step 1: Install Docker Package

  1. Open Package Center on your Synology NAS
  2. Search for "Docker"
  3. Install the Docker package
  4. Wait for installation to complete

Step 2: Copy Deployment Files

  1. Copy the deploy-synology folder to your NAS
    • Use File Station to upload via web interface
    • Or use SMB/AFP to mount and copy via network
    • Or use SSH/SCP for command line transfer

Step 3: Configure Environment

  1. Edit docker-compose.yml if needed (ports, volumes)
  2. Edit .env file with your specific settings
  3. Ensure backup directories exist and have proper permissions

Step 4: Deploy

  1. SSH into your NAS: ssh admin@YOUR_NAS_IP
  2. Navigate to deployment folder: cd /volume1/docker/stiftung
  3. Start the application: docker-compose up -d
  4. Check status: docker-compose ps

Step 5: Verify Deployment

  1. Check container logs: docker-compose logs web
  2. Test web access: http://YOUR_NAS_IP:8081
  3. Verify database connection
  4. Test backup functionality

Configuration Files

Environment Variables (.env)

  • DATABASE_URL: PostgreSQL connection string
  • PAPERLESS_URL: Paperless-ngx API URL
  • GRAMPSWEB_URL: Gramps Web API URL
  • SECRET_KEY: Django secret key
  • DEBUG: Set to False for production

Ports

  • 8081: Main web application
  • 5432: PostgreSQL database (internal)
  • 6379: Redis (internal)
  • 5000: Gramps Web (internal)

Volumes

  • ./data/db: PostgreSQL data
  • ./data/redis: Redis data
  • ./data/uploads: File uploads
  • ./data/backups: Backup files
  • ./data/gramps: Gramps data

Maintenance

Backup

  • Application creates automatic backups
  • Manual backup: docker-compose exec web python manage.py backup
  • Restore: docker-compose exec web python manage.py restore backup_file.tar.gz

Updates

  1. Stop containers: docker-compose down
  2. Pull new images: docker-compose pull
  3. Start containers: docker-compose up -d

Logs

  • View logs: docker-compose logs -f [service_name]
  • Rotate logs: Configure log rotation in DSM

Troubleshooting

Common Issues

  1. Port conflicts: Change ports in docker-compose.yml
  2. Permission errors: Check folder permissions (755 for directories, 644 for files)
  3. Database connection: Verify PostgreSQL container is running
  4. Memory issues: Increase NAS memory or reduce container memory limits

Support

  • Check container logs: docker-compose logs [service_name]
  • Verify container status: docker-compose ps
  • Check resource usage in DSM Resource Monitor

Security Notes

  • Change default passwords
  • Use HTTPS in production (reverse proxy with Let's Encrypt)
  • Regular security updates
  • Firewall configuration
  • Backup encryption