Aviso
⚠️
Este proyecto no es de mi autoría. Lo encontré en un tutorial (del cual no recuerdo todos los detalles) y lo adapté para facilitar el despliegue. Existe otro template similar en Railway. Utilízalo como punto de partida y, si encuentras algún problema, contribuye con mejoras.
- Cuenta en Railway: Asegúrate de tener una cuenta activa en Railway.
- Configuración Local: Tu proyecto Reflex debe ejecutarse correctamente en local.
- Repositorio en GitHub: Tu proyecto debe estar alojado en GitHub para poder desplegarlo en Railway.
-
Clonar el Repositorio:
git clone https://github.com/Seikened/template_reflex_on_rialway
-
Renombrar y Organizar:
Una vez descargado, renombra la carpeta de la aplicación para que coincida con el nombre de tu proyecto. Por ejemplo, si la carpeta actual se llamaplantilla, cámbiala por el nombre deseado. Actualiza también el archivo principal (por ejemplo,plantilla.py) según corresponda. -
Integrar Tu Aplicación:
Si tu proyecto ya tiene estructura (assets, configuraciones personalizadas, etc.), reemplaza la carpetaplantillapor la carpeta de tu proyecto. Asegúrate de migrar cualquier configuración de turxconfig.pya esta plantilla de configuración.
A continuación, se muestra un ejemplo de configuración utilizando Reflex:
import reflex as rx
import os
"""
Utiliza el dominio público proporcionado por Railway o tu propio dominio (configurado en Railway)
"""
public_domain = "www.change-me.com"
class ReflextemplateConfig(rx.Config):
pass
config = ReflextemplateConfig(
app_name="plantilla", # Cambia 'plantilla' por el nombre de tu proyecto
show_built_with_reflex=True,
telemetry_enabled=False,
frontend_port=3000, # Puerto frontend por defecto
backend_port=8000, # Puerto backend por defecto
# Utiliza el dominio público en producción
api_url=f'https://{public_domain}/backend' if os.getenv("RAILWAY_ENVIRONMENT") == "production" else "http://127.0.0.1:8000"
)Consejo 💡:
Actualiza app_name y public_domain para que reflejen tu proyecto y asegúrate de que la configuración coincida con la estructura de tu aplicación.
-
Configurar Variables de Entorno:
Antes de desplegar, crea una variable en Railway:ENV="prod"
- Configurar el Dominio Público:
Una vez creado el proyecto en Railway, ve a la sección "Public Networking". Copia el dominio que se te proporciona y reemplazapublic_domainen tu configuración con ese valor (a menos que tengas un dominio personalizado).
Consejo 💡:
El primer dominio example.up.rialway.app lo brinda Railway, pero puedes configurar tu propio dominio, como www.example.com. Sea cual sea la opción, asegúrate de cambiarlo en elrxconfig.py.
-
Instalar Reflex:
Asegúrate de instalar Reflex y cualquier otra librería necesaria:pip install reflex
-
Actualizar Requerimientos:
Verifica que tu archivorequirements.txt(o similar) incluya la última versión de Reflex y las dependencias de tu proyecto.
Nota 📝:
No modifiques elcaddyfileynixpackage.tomlsi vienen con el template; están configurados para un despliegue sin complicaciones.
-
Crear un Proyecto en Railway:
- Inicia sesión en Railway y haz clic en Create New Project.
- Selecciona GitHub Repo como método de despliegue.
- Elige el repositorio y la rama correcta (la rama debe contener tu template actualizado).
-
Commit y Push de Cambios:
Una vez actualizada tu aplicación (nombre, estructura, dominio, etc.), realiza commit y push de tus cambios a GitHub. Railway redeplegará tu proyecto automáticamente. -
Verificar el Despliegue:
- Revisa los logs en Railway para confirmar que tanto el backend como el frontend se están ejecutando correctamente.
- Prueba tu aplicación mediante la URL pública proporcionada.
-
Resolución de Problemas:
Si encuentras algún inconveniente:- Verifica que el despliegue local (
reflex run) funcione sin errores. - Revisa que todas las variables de entorno y configuraciones estén correctamente establecidas.
- Confirma que los nombres de las carpetas y archivos en el repositorio coinciden con la configuración.
- Verifica que el despliegue local (
-
Contribuciones:
Si encuentras errores o mejoras:- Abre un issue o envía un pull request en el repositorio.
- Dale estrella al repositorio si te resulta útil; es un recurso comunitario y tus aportes son bienvenidos.
¡Si te sirvió, no olvides dejar una ⭐ al repo!
Este template está diseñado como un punto de partida sencillo para desplegar proyectos Reflex en Railway. Los pasos anteriores te guiarán desde la configuración local hasta un despliegue en vivo. Personalízalo según las necesidades de tu proyecto y comparte tus mejoras con la comunidad.

