
Экспортируйте всё, что знает Railway
Переменные каждого сервиса через railway variables --kv; pg_dump каждой базы данных. Уберите записи RAILWAY_*: Skiffly предоставляет эквиваленты SKIFFLY_*.

Миграция · Railway → Skiffly
Понятия совпадают один к одному: рабочее пространство, проект, окружение, сервис, ${{Postgres.DATABASE_URL}}. Большинство API-документов работают без изменений, а команды CLI носят те же имена. Меняется лишь то, кому вы платите и где живут ваши данные.
Экспорт, деплой, переключение. Терминал ниже — весь переезд от начала до конца.

Переменные каждого сервиса через railway variables --kv; pg_dump каждой базы данных. Уберите записи RAILWAY_*: Skiffly предоставляет эквиваленты SKIFFLY_*.

skiffly init в каждом репозитории, затем skiffly up. Задайте переменные, разверните шаблон Postgres, восстановите дамп через skiffly connect.

Проверьте на сгенерированном домене *.skiffly.cloud, добавьте собственный домен, переключите CNAME, когда сертификат будет выпущен. Не выключайте Railway, пока DNS не обновится.

Переменные каждого сервиса через railway variables --kv; pg_dump каждой базы данных. Уберите записи RAILWAY_*: Skiffly предоставляет эквиваленты SKIFFLY_*.

skiffly init в каждом репозитории, затем skiffly up. Задайте переменные, разверните шаблон Postgres, восстановите дамп через skiffly connect.

Проверьте на сгенерированном домене *.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 recordsskiffly up, skiffly logs -f, skiffly variables set, skiffly domain, skiffly connect. Те же имена, что и в Railway CLI, везде, где функция существует.
Направьте Claude Code, Cursor или Codex на MCP-сервер Skiffly и поручите переезд агенту: skiffly mcp install claude. Имена инструментов повторяют MCP-сервер Railway.
projects, deployments(input:), variables, serviceInstanceUpdate, templateDeployV2 и другие совместимые поля работают как есть. Поменяйте эндпоинт и токен.
railway.ts из railway/iac превращается в .skiffly/skiffly.ts заменой defineRailway → defineSkiffly. Всё остальное сохраняет свои имена.
$PORT (по умолчанию 8080, если не задан).*.railway.internal или приватной сети IPv6.
Приложение и база без карты, чтобы проверить сборку. Пополните баланс, когда будете готовы переключиться.