I moved my whole server off Easypanel with one command, and five things broke
Описание и применение
Автор перенёс сервер с Easypanel на Tugport одним командой, но столкнулся с пятью проблемами: статические шаблоны переменных, домены-заглушки, пересечение сетевых пулов, ошибочные 409 и конфликт Telegram‑ботов. После исправлений миграция завершилась успешно, но потребовались ручные корректировки и настройка проверки здоровья и pinning образов.
Задача
Migrating a production server from Easypanel to Tugport caused five operational issues that required manual fixes.
Результат
The migration succeeded with 54 services running, but required manual intervention for five bugs and adjustments to health checks and image pinning.
Рабочий процесс
- 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.
Доказательства
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.
- Дата записи: 2026-10-27T17:11:10.454Z