I moved my whole server off Easypanel with one command, and five things broke
Description and use
The author migrated a server from Easypanel to Tugport with a single command, but five issues arose: literal env templates, placeholder domains, network pool overlaps, cosmetic 409 errors, and Telegram bot conflicts. After fixes, migration succeeded, requiring manual adjustments and health‑check tuning.
Problem
Migrating a production server from Easypanel to Tugport caused five operational issues that required manual fixes.
Outcome
The migration succeeded with 54 services running, but required manual intervention for five bugs and adjustments to health checks and image pinning.
Workflow
- Run "tugport migrate easypanel --dry-run" to preview changes.
- Execute "tugport migrate easypanel" to perform the migration.
- Fix literal env templates by setting variables manually.
- Remove conflicting placeholder domains and network pools.
- Address cosmetic 409 errors and Telegram bot conflicts.
- Adjust database health check intervals and pin image versions.
- Clean up remaining Easypanel resources and set new backup schedules.
- Verify deployments and webhook configurations.
Evidence
I moved my main server from Easypanel to Tugport, the deploy panel I've been building.
Five things broke along the way, and I'll go through each of them below.
Easypanel's env templates were copied literally.
Placeholder domains confused the health checks.
"Pool overlaps." My CI runner is a Compose stack that pins its subnet, and the stopped old stack was still holding that network.
A harmless "already attached" 409 on rerun was printed as an error.
Telegram bots fought over updates.
Databases are now checked every 30 seconds with a 15-second timeout.
Every database image on the server is pinned to an exact version, and the migrator pins moved databases to the exact image they ran under Easypanel.
- Record date: 2026-10-27T17:11:10.454Z