BookinglyTech News
Infraestructura

Auto‑hosting de Evite con enlaces dedicados y visibilidad de asistentes

Un usuario busca alojar su propio sistema de invitaciones para un cumpleaños, con enlaces únicos por invitado y la posibilidad de ver quién aceptará.

2 min de lecturar/selfhosted0 vistas

Un nuevo hilo en r/selfhosted plantea cómo montar un servicio de RSVP propio, con enlaces personalizados para cada invitado y la opción de que los invitados vean quiénes asistirán.

El usuario, que no tiene experiencia con túneles de Cloudflare, quiere un formulario donde los asistentes confirmen su asistencia, indiquen alergias y cualquier acompañante. Además, le interesa que los invitados puedan ver la lista de confirmados. En el mensaje se menciona que, aunque soluciones como Google Forms son fáciles, prefieren algo más divertido y autónomo.

Para lograrlo, se recomienda montar un pequeño servidor web con una base de datos ligera (por ejemplo SQLite o PostgreSQL) y una aplicación de backend escrita en Python (Flask, FastAPI) o Node.js (Express). El flujo sería:

  1. Generar un token único por invitado y crear una URL que contenga ese token.
  2. El token se valida en el backend y redirige a un formulario HTML.
  3. Al enviar el formulario, se guarda la respuesta en la base de datos y se actualiza la lista visible.
  4. Los invitados pueden acceder a una vista pública que muestra los asistentes confirmados.

Para exponer el servicio sin pagar por un dominio, la recomendación es usar Cloudflare Tunnel (Argo Tunnel). Con él, puedes crear un túnel seguro a tu servidor local y obtener una URL pública. El túnel se mantiene activo mientras la máquina que lo ejecuta esté encendida, evitando la necesidad de un VPS.

En cuanto a la arquitectura, la aplicación debe estar aislada en un contenedor Docker. Un docker-compose.yml simple podría incluir los servicios app, db y nginx (para HTTPS). La base de datos puede persistir en un volumen, y la aplicación puede usar variables de entorno para la configuración.

Si el objetivo es mantenerlo ligero, se puede optar por una solución sin base de datos: almacenar las respuestas en un archivo JSON o en Redis, aunque la escalabilidad será limitada. Para un uso casual, esto puede ser suficiente.

En resumen, el proyecto requiere:

  • Generar URLs con tokens únicos.
  • Un formulario web sencillo.
  • Una base de datos ligera o archivo de persistencia.
  • Exponer el servicio con Cloudflare Tunnel.
  • Contenerizar la aplicación para facilitar la gestión.

Para los que quieran probar, el hilo original en Reddit ofrece un punto de partida y la comunidad puede aportar scripts y ejemplos de código.


La solución propuesta no solo cumple con la necesidad de un RSVP propio, sino que también permite experimentar con la infraestructura básica de hosting, bases de datos y túneles de acceso remoto.