Upgrade Process
Back Up
Back up your database and .env file before upgrading.# Database backup
docker compose exec db pg_dump -U postgres -Fc ondoki > backup-$(date +%Y%m%d).dump
# Save env
cp .env .env.backup
Pull Latest Code
cd ondoki-web
git pull origin master
Check for New Environment Variables
Compare your .env with .env.example for any new variables:Add any new required variables to your .env. Pull or Build New Images
Production (pre-built images):docker compose -f docker-compose.prod.yml pull
Development (build locally): Run Database Migrations
# Start just the database first
docker compose -f docker-compose.prod.yml up -d db
# Wait for it to be healthy, then run migrations
docker compose -f docker-compose.prod.yml run --rm backend alembic upgrade head
Start Updated Services
docker compose -f docker-compose.prod.yml up -d
Verify
# Check all services are healthy
docker compose -f docker-compose.prod.yml ps
# Check backend health
curl https://yourdomain.com/api/health
Rolling Back
If something goes wrong:
# Stop services
docker compose -f docker-compose.prod.yml down
# Restore database
docker compose -f docker-compose.prod.yml up -d db
docker compose exec -i db pg_restore -U postgres -d ondoki --clean < backup.dump
# Check out previous version
git checkout <previous-commit>
# Restart with previous images
docker compose -f docker-compose.prod.yml up -d
Alembic migrations may not have downgrade paths for all changes. Test upgrades in a staging environment first when possible.
Checking the Current Version
# Current git commit
git log --oneline -1
# Current database migration
docker compose exec backend alembic current
# Container image versions
docker compose -f docker-compose.prod.yml images