Railway es la opción más fácil para desplegar VendingKit sin configuraciones complicadas.
- Ve a https://railway.app
- Regístrate con GitHub (recomendado) o email
- Crea un nuevo proyecto
- En Railway, haz clic en "New Project"
- Selecciona "GitHub Repo"
- Conecta tu repositorio de VendingKit
- Autoriza Railway a acceder a GitHub
En Railway, ve a Settings → Environment
Agrega estas variables (copia del .env):
ANTHROPIC_API_KEY=sk-ant-api03-[tu-clave]
META_ACCESS_TOKEN=EAAMEgKMKMlABRRgirCcuisIqB8RufTtUx1OpM8KpLvsvxEbJ5ZCi4AwIDpFEaXAZBi6ZBF5oo1DBsdrH3X3jAZBbLxIJZANtgTie0stwpYwMmQxNxOjRYgh3wAY2oto3WCsuM4ZBXjlyeFKdfwGGzppzDZCeTKdS26Uqe3VZBJ4lOZBAXiFZAkOY9ZA4Y1NBNuLDvBNZBkZAh4TppnvFVDZC6XLwKyxtF9sXQrWnH70rAJWNXSVfgtv9m4s3jUYP4DQUgIvtSP3LjrzxsnepkSFBSMXMp7
META_PHONE_NUMBER_ID=905292252675991
META_VERIFY_TOKEN=Vending-key-123
GOOGLE_SHEETS_ID=15R_caZHMICAbMHTeqirMHrtaX5BhkH8WdrHGrW3dvUY
GOOGLE_CALENDAR_EMAIL=josery@gmail.com
PORT=8000
DEBUG=False
Railway detectará:
Dockerfile→ Construirá la imagenrequirements.txt→ Instalará dependenciasrailway.json(si existe) → Configuración personalizada
- Haz un
git pusha tu rama principal - Railway detectará cambios automáticamente
- Iniciará el build y despliegue
- Tu app estará live en ~3-5 minutos
Una vez desplegado en Railway:
En Railway:
- Ve a tu proyecto
- Busca la sección Deployments
- Copia la URL (algo como
https://vendingkit-prod.railway.app)
-
Ve a https://developers.facebook.com/apps/849375467811408/whatsapp-business/wa-dev-console/
-
En Configuration → Webhook:
- Callback URL:
https://vendingkit-prod.railway.app/webhook - Verify Token:
Vending-key-123 - Subscribe to:
messages
- Callback URL:
-
Haz clic en Verify and Save
Meta enviará un GET para verificar tu servidor. Si todo está bien:
✓ Webhook successfully verified
railway logs -frailway statusrailway env listCada vez que hagas git push:
- Railway detecta cambios
- Reinicia el build automáticamente
- El app se actualiza sin downtime
Para forzar un redeploy sin cambios:
railway redeployRevisa logs:
railway logs -fBusca errores como:
- Módulos faltantes → Actualiza
requirements.txt - Credenciales inválidas → Verifica
.env - Puerto incorrecto → Railway asigna puerto automáticamente
- Verifica que la URL sea correcta
- Prueba con
curl:
curl https://tu-app.railway.app/health- Si falla, revisa logs de Railway
Railway usa un sistema de archivos efímero. Para persistencia:
Opción A: Usa PostgreSQL
- En Railway, agrega servicio PostgreSQL
- Actualiza
memory.pypara usarpsycopg2
Opción B: Sincroniza con Google Sheets
- Todos los incidentes se guardan automáticamente en Sheets
- SQLite es solo cache local
Recomendamos Opción B para VendingKit.
Railway ofrece:
- Gratis: Primeros $5 USD/mes
- Pago: $0.10 por CPU-hour, $0.05 por GB-hour
Para VendingKit (bajo uso):
- ~$0.50-2 USD/mes
✅ Usa variables de entorno para credenciales
✅ Mantén .env fuera de Git (añade a .gitignore)
✅ Usa HTTPS (Railway lo hace automáticamente)
✅ Limpia logs regularmente
❌ Hardcodea credenciales en código
❌ Hagas commit del .env
❌ Compartas tokens públicamente
❌ Ejecutes comandos SQL sin validar
- Cuenta en Railway creada
- Repositorio conectado a Railway
- Variables de entorno configuradas
- Build completado exitosamente
- App está en status "Running"
- URL pública obtenida
- Webhook configurado en Meta
- Webhook verificado en Meta ✓
- Prueba manual de mensaje enviado
- Incidente aparece en Google Sheets
Tu VendingKit está ahora en producción. Los clientes pueden enviar mensajes por WhatsApp y el agente responderá automáticamente.
Próximos pasos:
- Invita operadores a usar el bot
- Monitorea incidentes en Google Sheets
- Ajusta prompts si es necesario
- Escala según demanda
¿Preguntas? Revisa los logs de Railway o contacta soporte.