Updating
Bittery publishes new Docker images to ghcr.io/bittery-org with every release. Database migrations run automatically on server startup — no manual migration step is needed.
Docker Compose
Choose the target release
cd ~/bittery
sed -i 's/^BITTERY_RELEASE=.*/BITTERY_RELEASE=0.5.1/' .env
docker compose pull
Restart the services
COMPOSE_PROFILES=builtin-db docker compose up -d
Adjust COMPOSE_PROFILES to match your setup (e.g. builtin-db,storage,cache).
Verify
docker compose ps
All services should show (healthy) within a minute.
Tip
You can combine both steps into a single command:
docker compose pull && COMPOSE_PROFILES=builtin-db docker compose up -d
Railway
- Go to your Railway project dashboard
- Set the server and web image tags to the same exact release
- Redeploy both services together
Rollback
If something goes wrong after an update, you can roll back to a specific version:
# Set the previous exact release for both images, then recreate the pair:
sed -i 's/^BITTERY_RELEASE=.*/BITTERY_RELEASE=0.5.0/' .env
docker compose pull
docker compose up -d
Warning
Database migrations are forward-only. If you roll back to an older server version, ensure the database schema is still compatible. For major version upgrades, always back up your database first.
Never mix server and web releases during an update or rollback. Rollback means deploying the
previous compatible /api/v1 server and web pair.
Monitoring
Check the health of your instance at any time:
# Service status
docker compose ps
# Server logs
docker compose logs -f server
# Health endpoint
curl https://your-domain.com/healthz