Миграция · Railway → Skiffly
С Railway на Skiffly за три шага.
Понятия совпадают один к одному: рабочее пространство, проект, окружение, сервис, ${{Postgres.DATABASE_URL}}. Большинство API-документов работают без изменений, а команды CLI носят те же имена. Меняется лишь то, кому вы платите и где живут ваши данные.
Три шага
- 1
Экспортируйте всё, что знает Railway
Переменные каждого сервиса через
railway variables --kv;pg_dumpкаждой базы данных. Уберите записиRAILWAY_*: Skiffly предоставляет эквивалентыSKIFFLY_*. - 2
Разверните на Skiffly
skiffly initв каждом репозитории, затемskiffly up. Задайте переменные, разверните шаблон Postgres, восстановите дамп черезskiffly connect. - 3
Перенесите домен
Проверьте на сгенерированном домене
*.skiffly.cloud, добавьте собственный домен, переключите CNAME, когда сертификат будет выпущен. Не выключайте Railway, пока DNS не обновится.
# 1. export
railway variables --kv > vars.env
pg_dump "$RAILWAY_DATABASE_URL" -Fc -f db.dump
# 2. deploy
skiffly init && skiffly up
skiffly deploy --template postgres
skiffly connect postgres --print # → pg_restore -d <url> db.dump
skiffly variables set --skip-deploys $(grep -v '^RAILWAY_' vars.env | xargs)
skiffly variables set 'DATABASE_URL=${{Postgres.DATABASE_URL}}'
skiffly redeploy
# 3. cut over
skiffly domain app.example.com # prints the CNAME + TXT recordsТе же инструменты, другой хост
CLI
skiffly up, skiffly logs -f, skiffly variables set, skiffly domain, skiffly connect. Те же имена, что и в Railway CLI, везде, где функция существует.
MCP-сервер
Направьте Claude Code, Cursor или Codex на MCP-сервер Skiffly и поручите переезд агенту: skiffly mcp install claude. Имена инструментов повторяют MCP-сервер Railway.
GraphQL API
projects, deployments(input:), variables, serviceInstanceUpdate, templateDeployV2 и другие совместимые поля работают как есть. Поменяйте эндпоинт и токен.
Config as code
railway.ts из railway/iac превращается в .skiffly/skiffly.ts заменой defineRailway → defineSkiffly. Всё остальное сохраняет свои имена.
Перед переключением
Сравнить с Railway- Приложение слушает
$PORT(по умолчанию 8080, если не задан). - Нет зависимости от
*.railway.internalили приватной сети IPv6. - Исходящий SMTP на порту 25 заблокирован; используйте 587 с аутентификацией.
- Лимиты планов: Hobby — 8 ГБ / 8 vCPU на сервис, Pro — 32 ГБ / 32 vCPU.
- PR-превью включаются на уровне проекта; форки игнорируются.
Начните переезд на бесплатном тарифе
Один сервис без карты, чтобы проверить сборку. Пополните баланс, когда будете готовы переключиться.