# Current method (still works)
docker compose up --build
# New method (equivalent)
./scripts/deploy.sh development
# Deploy latest images to staging
./scripts/deploy.sh staging
# Deploy specific version to staging
./scripts/deploy.sh staging v1.2.3
# Deploy specific version to production
./scripts/deploy.sh production v1.2.3
No separate files needed! All environments have sensible defaults:
# Use defaults (works out of the box)
./scripts/deploy.sh staging
./scripts/deploy.sh production v1.2.3
# Override specific variables
export POSTGRES_PASSWORD=secure-password
export NEXTAUTH_SECRET=production-secret
./scripts/deploy.sh production v1.2.3
✅ No Manual File Changes: No more editing docker-compose.yaml for different environments
✅ Environment Isolation: Separate configurations for dev/staging/production
✅ Version Control: Deploy specific image versions with confidence
✅ Automated CI/CD: GitHub Actions automatically deploy to staging on main branch pushes
✅ Security: Proper secrets management for production
Sirius/ ├── docker-compose.yaml # Base configuration ├── docker-compose.override.yaml # Development (auto-loaded) ├── docker-compose.staging.yaml # Staging environment ├── docker-compose.production.yaml # Production environment ├── docker-compose.user.yaml # Simplified user setup └── scripts/ └── deploy.sh # Deployment script
main branch automatically deploy to stagingmain-YYYYMMDD-{commit}docker compose up --build still works./scripts/deploy.sh developmentScript not executable:
chmod +x scripts/deploy.sh
Need custom configuration:
# Override variables before deployment
export POSTGRES_PASSWORD=mypassword
export NEXTAUTH_SECRET=mysecret
./scripts/deploy.sh staging
Docker not running:
# Start Docker Desktop or Docker daemon
sudo systemctl start docker # Linux
# Show deployment script help
./scripts/deploy.sh help
# Check service status
docker compose ps
# View logs
docker compose logs -f [service_name]
For detailed information, see: documentation/README.deployment-strategy.md