Migração · Railway → Skiffly
Do Railway para a Skiffly em três passos.
Os conceitos correspondem um a um: workspace, projeto, ambiente, serviço, ${{Postgres.DATABASE_URL}}. A maioria dos documentos de API roda sem alterações e os comandos da CLI têm os mesmos nomes. O que muda é a quem você paga e onde seus dados ficam.
Três passos
- 1
Exporte o que o Railway sabe
Variáveis por serviço com
railway variables --kv; umpg_dumpde cada banco de dados. Descarte as entradasRAILWAY_*: a Skiffly fornece os equivalentesSKIFFLY_*. - 2
Implante na Skiffly
skiffly initem cada repositório, depoisskiffly up. Defina as variáveis, implante o template de Postgres, restaure o dump através doskiffly connect. - 3
Mova o domínio
Teste no domínio
*.skiffly.cloudgerado, adicione o domínio personalizado, troque o CNAME quando o certificado for emitido. Mantenha o Railway rodando até o DNS propagar.
# 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 recordsMesmas ferramentas, outro host
CLI
skiffly up, skiffly logs -f, skiffly variables set, skiffly domain, skiffly connect. Mesmos nomes da CLI do Railway onde o recurso existe.
Servidor MCP
Aponte o Claude Code, o Cursor ou o Codex para o servidor MCP da Skiffly e deixe o agente fazer a migração: skiffly mcp install claude. Os nomes das ferramentas espelham o servidor MCP do Railway.
API GraphQL
projects, deployments(input:), variables, serviceInstanceUpdate, templateDeployV2 e os demais campos compatíveis funcionam como estão. Troque o endpoint e o token.
Config as code
Um railway.ts do railway/iac vira .skiffly/skiffly.ts com defineRailway → defineSkiffly. Todo o resto mantém o nome.
Antes da virada
Comparar com o Railway- O app escuta em
$PORT(padrão 8080 quando não definida). - Nenhuma dependência de
*.railway.internalou de rede privada IPv6. - SMTP de saída na porta 25 é bloqueado; use a 587 com autenticação.
- Limites dos planos: Hobby 8 GB / 8 vCPU por serviço, Pro 32 GB / 32 vCPU.
- As pré-visualizações de PR são ativadas por projeto; forks são ignorados.
Comece a migração no plano Free
Um serviço sem cartão para testar o build. Recarregue quando estiver pronto para a virada.