Ir al contenido
Un esquife con vela turquesa remolca una barcaza de cajas luminosas desde un puerto gris hacia un faro, de noche

Migración · Railway → Skiffly

De Railway a Skiffly en tres pasos.

Los conceptos se corresponden uno a uno: espacio de trabajo, proyecto, entorno, servicio, ${{Postgres.DATABASE_URL}}. La mayoría de documentos de la API corre sin cambios y los comandos de la CLI comparten nombre. Lo que cambia es a quién pagas y dónde viven tus datos.

La ruta

Tres pasos

Exportar, desplegar, cambiar. La terminal de abajo es toda la mudanza, de principio a fin.

Una grúa del muelle baja una caja luminosa a un pequeño bote amarrado en un embarcadero de noche
01 · EXPORTAR

Exporta lo que Railway sabe

Variables por servicio con railway variables --kv; un pg_dump de cada base de datos. Quita las entradas RAILWAY_*: Skiffly provee los equivalentes SKIFFLY_*.

Un cobertizo para botes iluminado en ámbar cálido desde dentro, un bote en la rampa con algunas chispas y un brillo turquesa
02 · DESPLEGAR

Despliega en Skiffly

skiffly init en cada repositorio y luego skiffly up. Define las variables, despliega la plantilla de Postgres, restaura el dump por skiffly connect.

Un faro barre con su haz un bote de vela turquesa amarrado a un muelle con un cartel iluminado
03 · CAMBIO

Mueve el dominio

Prueba en el dominio generado *.skiffly.cloud, agrega el dominio propio, cambia el CNAME cuando se emita el certificado. Mantén Railway funcionando hasta que el DNS se propague.

terminal
# 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
Lista de control

Antes de cambiar el DNS

Comparar con Railway
  • La app escucha en $PORT (8080 por defecto si no lo defines).
  • Nada depende de *.railway.internal ni de red privada IPv6.
  • El SMTP saliente por el puerto 25 está bloqueado; usa 587 con autenticación.
  • Límites de plan: Hobby 8 GB / 8 vCPU por servicio, Pro 32 GB / 32 vCPU.
  • Las vistas previas de PR se activan por proyecto; los forks se ignoran.
Amanecer en mar abierto: un bote con vela turquesa avanza hacia el horizonte por una línea punteada de carta náutica dibujada sobre el mar

Empieza la mudanza en el plan gratuito

Una app y una base de datos sin tarjeta para probar el build. Recarga cuando estés listo para cambiar el DNS.