Stellifyit: la infraestructura de esta web

Esta web y su panel privado viven en un solo servidor, conectado por un túnel a los servicios que tengo en casa. No es un producto: es el sitio donde aplico lo que cuento en los artículos de seguridad, y lo que haría con la web de un cliente.

Infraestructura propia, en producción

¿Necesitas un servidor o una web montados así, y que alguien los mantenga?

Cuéntame qué necesitas

¿Qué corre en el servidor?

Un frontend en React servido por nginx, una API en FastAPI con PostgreSQL, y Redis con Celery para las tareas en segundo plano. Cada pieza es un contenedor de Docker Compose con su comprobación de salud, y el despliegue es un único comando que reconstruye y vuelve a levantar lo que ha cambiado.

Los cambios de esquema de la base de datos viajan como migraciones de Alembic y se aplican solos al arrancar la API, así que un despliegue nunca deja el código por delante de las tablas.

¿Cómo ve un buscador estas páginas?

Cada página pública se genera como HTML estático durante el build, con su título, su descripción, su URL canónica y sus datos estructurados ya dentro. Un rastreador que no ejecuta JavaScript ve lo mismo que una persona.

Una URL que no existe devuelve un 404 de verdad, y las secciones retiradas devuelven 301 o 410 según tengan sucesora o no, para que el buscador no siga reintentándolas.

¿Cómo se conecta con lo que tengo en casa?

Algunos servicios, como el bloqueador de DNS o la nube de ficheros, corren en un equipo de casa que no abre ningún puerto a internet. El servidor llega a ellos por un túnel WireGuard y los publica detrás del mismo nginx y del mismo certificado, con las decisiones que explico en el artículo sobre WireGuard.

Los puntos de entrada públicos de la API tienen sus propios límites de peticiones: el inicio de sesión, las reservas y el chat no comparten cuota con el resto, para que un abuso en uno no tumbe los demás.

Stack

  • Docker Compose
  • nginx
  • Let's Encrypt
  • FastAPI
  • PostgreSQL
  • Redis
  • Celery
  • React
  • WireGuard