Step-by-step guide for updating C³ CELERITY on production servers with minimal downtime.
Before any update:
-
Create a database backup
# Via panel UI: Dashboard → Backup → Download # Or manually via mongodump: docker exec hysteria-mongo mongodump --archive=/data/db/backup.archive --username=hysteria --password --authenticationDatabase=admin docker cp hysteria-mongo:/data/db/backup.archive ./backup-$(date +%Y%m%d-%H%M%S).archive
-
Check current version
docker logs hysteria-backend --tail 50 | grep -i version -
Check available disk space
df -h # Minimum 2GB free space for the new image -
Backup your .env file
cp .env .env.backup-$(date +%Y%m%d)
For production deployments using docker-compose.hub.yml:
cd /path/to/hysteria-paneldocker compose -f docker-compose.hub.yml downDowntime: ~10-30 seconds
docker compose -f docker-compose.hub.yml pulldocker compose -f docker-compose.hub.yml up -d# All containers should be "running"
docker compose -f docker-compose.hub.yml ps
# Check logs for errors
docker logs hysteria-backend --tail 100 -fcurl -I https://your-domain/panelFor deployments using docker-compose.yml with local build:
cd /path/to/hysteria-panelgit fetch origin
git status # check for uncommitted changes
git pull origin maindocker compose downdocker compose build --no-cache backendTime: 2-5 minutes depending on server
docker compose up -ddocker compose ps
docker logs hysteria-backend --tail 100 -fIf problems occur after update:
-
Edit
docker-compose.hub.yml:backend: image: clickdevtech/hysteria-panel:v1.2.3 # specify desired version
-
Apply changes:
docker compose -f docker-compose.hub.yml down docker compose -f docker-compose.hub.yml pull docker compose -f docker-compose.hub.yml up -d
# Find the previous working commit
git log --oneline -10
# Checkout
git checkout <commit-hash>
# Rebuild
docker compose build --no-cache backend
docker compose up -d# Restore from backup
docker cp ./backup.archive hysteria-mongo:/data/db/backup.archive
docker exec hysteria-mongo mongorestore --archive=/data/db/backup.archive --drop --username=hysteria --password --authenticationDatabase=admin- Check authentication — login to the panel
- Check nodes — all nodes should show
onlinestatus - Check subscriptions — open subscription URL in browser
- Check API — make a test request with API key
- Monitor logs for 10-15 minutes:
docker logs hysteria-backend -f --tail 50
# Check logs
docker logs hysteria-backend
# Common causes:
# - Error in .env file
# - MongoDB connection issue
# - Out of memory# Check MongoDB status
docker logs hysteria-mongo --tail 50
# Restart MongoDB
docker compose restart mongo# Check greenlock.d contents
ls -la greenlock.d/
# Restart with cache clear
docker compose down
docker compose up -d| Action | Frequency |
|---|---|
| Database backup | Daily (auto) + before updates |
| Check for updates | Weekly |
| Security patches | Within 48 hours |
| Major updates | After staging testing |
- Test on staging — duplicate environment for update testing
- Update during low-traffic hours — night/early morning in users' timezone
- Keep backups — at least 3 recent database backups
- Document changes — save records of versions and update dates
- Don't update everything at once — panel first, then nodes if needed
- Don't panic — data is safe in MongoDB
- Check logs:
docker logs hysteria-backend --tail 200 - Rollback to previous version
- Restore database from backup if needed
- Create a GitHub issue with problem description and logs