- Implement Docker image-based deployment (Option 1) * Code immutable in image, no volume override * Eliminated init-data.sh manual step * Simplified deployment process - Unified persistence in data/ folder * Moved nginx.conf and nginx-custom-domains.conf to data/ * All runtime configs and data in single location * Clear separation: repo (source) vs data/ (runtime) - Archive legacy features * Groups blueprint and templates removed * Legacy playlist routes redirected to content area * Organized in old_code_documentation/ - Added network migration support * New migrate_network.sh script for IP changes * Regenerates SSL certs for new IP * Updates database configuration * Tested workflow: clone → deploy → migrate - Enhanced deploy.sh * Creates data directories * Copies nginx configs from repo to data/ * Validates file existence before deployment * Prevents incomplete deployments - Updated documentation * QUICK_DEPLOYMENT.md shows 4-step workflow * Complete deployment workflow documented * Migration procedures included - Production ready deployment workflow: 1. Clone & setup (.env configuration) 2. Deploy (./deploy.sh) 3. Migrate network (./migrate_network.sh if needed) 4. Normal operations (docker compose restart)
3.3 KiB
3.3 KiB
Nginx Config Files Moved to Data Folder
Date: January 17, 2026
Purpose: Complete persistence isolation - all Docker runtime files in data/ folder
What Changed
Files Moved
./nginx.conf→./data/nginx.conf./nginx-custom-domains.conf→./data/nginx-custom-domains.conf
docker-compose.yml Updated
volumes:
- ./data/nginx.conf:/etc/nginx/nginx.conf:ro # ✅ NOW in data/
- ./data/nginx-custom-domains.conf:/etc/nginx/conf.d/custom-domains.conf:rw # ✅ NOW in data/
- ./data/nginx-ssl:/etc/nginx/ssl:ro
- ./data/nginx-logs:/var/log/nginx
- ./data/certbot:/var/www/certbot:ro
Complete Data Folder Structure (Now Unified)
/data/
├── app/ # Flask application (in Docker image, not mounted)
├── instance/ # Database & config
│ ├── digiserver.db
│ └── server.log
├── uploads/ # User uploads
│ └── app/static/uploads/...
├── nginx.conf # ✅ Nginx main config
├── nginx-custom-domains.conf # ✅ Custom domain config
├── nginx-ssl/ # SSL certificates
│ ├── cert.pem
│ └── key.pem
├── nginx-logs/ # Nginx logs
│ ├── access.log
│ └── error.log
└── certbot/ # Let's Encrypt certificates
Benefits
✅ Unified Persistence: All runtime configuration in /data
✅ Easy Backup: Single data/ folder contains everything
✅ Consistent Permissions: All files managed together
✅ Clean Repository: Root directory only has source code
✅ Deployment Clarity: Clear separation: source (./app) vs runtime (./data)
Testing Results
- ✅ Nginx started successfully with new config paths
- ✅ HTTP requests working (port 80)
- ✅ HTTPS requests working (port 443)
- ✅ No configuration errors
Updating Existing Deployments
If you have an existing deployment:
# 1. Copy configs to data/
cp nginx.conf data/nginx.conf
cp nginx-custom-domains.conf data/nginx-custom-domains.conf
# 2. Update docker-compose.yml
# (Already updated - change volume paths from ./ to ./data/)
# 3. Restart nginx
docker-compose restart nginx
# 4. Verify
curl http://localhost
curl -k https://localhost
Important Notes
If You Edit Nginx Config
# Edit the config in data/, NOT in root
nano data/nginx.conf
nano data/nginx-custom-domains.conf
# Then restart nginx
docker-compose restart nginx
Root Files Now Optional
The old nginx.conf and nginx-custom-domains.conf in the root can be:
- Deleted (cleanest - all runtime files in data/)
- Kept (reference/backup - but not used by containers)
Recommendations
- Delete root nginx config files for cleaner repository
- Keep in
.gitignoreif you want to preserve them as backups - All active configs now in
data/folder which can be.gitignored
Related Changes
Part of ongoing simplification:
- ✅ Option 1 Implementation - Dockerfile-based code deployment
- ✅ Groups feature archived
- ✅ Legacy playlist routes simplified
- ✅ Nginx configs now in data/ folder
All contributing to:
- Cleaner repository structure
- Complete persistence isolation
- Production-ready deployment model