Files
nlcc-itinerary/docker-compose.yml
Joshua Ryder 3474ca7013 refactor: Use external Docker named volume for data persistence
Changes:
- Replace bind mount (./data) with external named volume (nlcc-data)
- Volume must be created before first run: docker volume create nlcc-data
- Improves portability and follows Docker best practices
- Better separation between code and data

Benefits:
- Data persists across container rebuilds and updates
- Easier backup and restore operations
- Platform-agnostic (works same on Linux/Windows/macOS)
- Managed by Docker's volume system
- No permission issues with bind mounts

README Updates:
- Added volume creation step to installation instructions
- Documented volume management commands (create, inspect, backup, restore)
- Added backup/restore examples using alpine container
- Clarified data persistence behavior

Note: Existing deployments using ./data bind mount will need to:
1. Backup existing data: cp -r ./data ./data-backup
2. Create volume: docker volume create nlcc-data
3. Restart container: docker-compose up -d
4. Copy data to volume if needed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 17:46:07 -05:00

27 lines
834 B
YAML

services:
nlcc-itinerary:
image: glcr.rydertech.us/ryder/nlcc-itinerary:latest
container_name: nlcc-itinerary
ports:
- "3002:3000"
volumes:
- nlcc-data:/app/data
environment:
- NODE_ENV=production
- SITE_URL=https://nlcc.rydertech.us
# Optional: Customize admin username (default: "admin")
# - ADMIN_USERNAME=admin
# Optional: Set custom admin password (otherwise auto-generated)
# - ADMIN_PASSWORD=your-secure-password
# Email configuration for password resets and notifications
- EMAIL_HOST=smtp.example.com
- EMAIL_PORT=587
- EMAIL_USER=noreply@example.com
- EMAIL_PASSWORD=your-email-password
- EMAIL_FROM=New Life Christian Church <noreply@example.com>
restart: unless-stopped
volumes:
nlcc-data:
external: true