Fix production deployment: preserve .env file + add missing volume + simplified pipeline
This commit is contained in:
20
.github/workflows/ci-cd.yml
vendored
20
.github/workflows/ci-cd.yml
vendored
@@ -195,14 +195,26 @@ jobs:
|
|||||||
script: |
|
script: |
|
||||||
cd /opt/stiftung
|
cd /opt/stiftung
|
||||||
|
|
||||||
# Stash any local changes to avoid conflicts
|
# Check if production .env exists in root directory
|
||||||
git stash push -m "Auto-stash before deployment $(date)"
|
if [ ! -f .env ]; then
|
||||||
|
echo "ERROR: No production .env file found at /opt/stiftung/.env"
|
||||||
|
echo "Please create it manually using the env-production.template as reference"
|
||||||
|
echo "Steps:"
|
||||||
|
echo "1. cp env-production.template .env"
|
||||||
|
echo "2. nano .env # Edit with real production values"
|
||||||
|
echo "3. chmod 600 .env # Secure permissions"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Pull latest changes using Personal Access Token
|
echo "Production .env file found - proceeding with deployment"
|
||||||
|
|
||||||
|
# Pull latest code changes (.env is in .gitignore so won't be touched)
|
||||||
git pull https://$DEPLOY_TOKEN@github.com/remmerinio/stiftung-management-system.git main
|
git pull https://$DEPLOY_TOKEN@github.com/remmerinio/stiftung-management-system.git main
|
||||||
|
|
||||||
# Backup current compose.yml
|
# Backup current compose.yml
|
||||||
cp compose.yml compose.yml.backup
|
if [ -f compose.yml ]; then
|
||||||
|
cp compose.yml compose.yml.backup
|
||||||
|
fi
|
||||||
|
|
||||||
# Copy production docker compose file to the active compose.yml
|
# Copy production docker compose file to the active compose.yml
|
||||||
cp deploy-production/docker-compose.prod.yml compose.yml
|
cp deploy-production/docker-compose.prod.yml compose.yml
|
||||||
|
|||||||
@@ -137,3 +137,4 @@ volumes:
|
|||||||
paperless_media:
|
paperless_media:
|
||||||
paperless_export:
|
paperless_export:
|
||||||
paperless_consume:
|
paperless_consume:
|
||||||
|
media_files:
|
||||||
|
|||||||
52
env-production.template
Normal file
52
env-production.template
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# =============================================================================
|
||||||
|
# PRODUCTION ENVIRONMENT VARIABLES
|
||||||
|
# =============================================================================
|
||||||
|
# This template shows the required environment variables for production.
|
||||||
|
#
|
||||||
|
# SETUP INSTRUCTIONS:
|
||||||
|
# 1. SSH into production server: ssh user@your-server-ip
|
||||||
|
# 2. Navigate to stiftung directory: cd /opt/stiftung
|
||||||
|
# 3. Copy this template: cp env-production.template .env
|
||||||
|
# 4. Edit with real values: nano .env
|
||||||
|
# 5. Set secure permissions: chmod 600 .env
|
||||||
|
#
|
||||||
|
# IMPORTANT: Once created, this file will NEVER be overwritten by git deployments!
|
||||||
|
# The .env file is in .gitignore and will be preserved across all future deployments.
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
# DATABASE CONFIGURATION
|
||||||
|
POSTGRES_DB=stiftung
|
||||||
|
POSTGRES_USER=stiftung
|
||||||
|
POSTGRES_PASSWORD=your_secure_database_password_here
|
||||||
|
DB_HOST=db
|
||||||
|
DB_PORT=5432
|
||||||
|
|
||||||
|
# DJANGO CONFIGURATION
|
||||||
|
DJANGO_SECRET_KEY=your_50_character_secret_key_here
|
||||||
|
DJANGO_DEBUG=False
|
||||||
|
DJANGO_ALLOWED_HOSTS=www.vhtv-stiftung.de,vhtv-stiftung.de
|
||||||
|
LANGUAGE_CODE=de-de
|
||||||
|
TIME_ZONE=Europe/Berlin
|
||||||
|
|
||||||
|
# REDIS CONFIGURATION
|
||||||
|
REDIS_URL=redis://redis:6379/0
|
||||||
|
|
||||||
|
# PAPERLESS CONFIGURATION
|
||||||
|
PAPERLESS_API_URL=http://paperless:8000/api
|
||||||
|
PAPERLESS_API_TOKEN=your_paperless_api_token_here
|
||||||
|
PAPERLESS_SECRET_KEY=your_paperless_secret_key_here
|
||||||
|
PAPERLESS_ADMIN_USER=admin
|
||||||
|
PAPERLESS_ADMIN_PASSWORD=your_paperless_admin_password_here
|
||||||
|
PAPERLESS_ADMIN_MAIL=admin@vhtv-stiftung.de
|
||||||
|
|
||||||
|
# GRAMPS WEB CONFIGURATION
|
||||||
|
GRAMPSWEB_SECRET_KEY=your_grampsweb_secret_key_here
|
||||||
|
GRAMPSWEB_ADMIN_EMAIL=admin@vhtv-stiftung.de
|
||||||
|
GRAMPSWEB_ADMIN_PASSWORD=your_grampsweb_admin_password_here
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# GENERATE SECRET KEYS:
|
||||||
|
# =============================================================================
|
||||||
|
# Django Secret Key: python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
|
||||||
|
# Paperless Secret: openssl rand -base64 32
|
||||||
|
# GrampsWeb Secret: openssl rand -base64 32
|
||||||
Reference in New Issue
Block a user