versión dos
Cuando saqué la versión uno de este blog en verano escribí que el siguiente paso era convertir "un blog bonito" en "un sistema autoalojado de verdad". La versión dos fue ese paso, y ya está terminada, así que aquí va todo en una sola entrada.
El blog tiene su propia oficina de correos. Un pequeño servicio de correo es ahora dueño de todo lo que sale del sitio como email, con una bandeja de salida robusta para que nada se pierda si SMTP tiene un mal día. Eso desbloqueó un montón de cosas que llevaba tiempo queriendo: correos de registro con enlaces de verificación, mensajes del formulario de contacto llegando a mi bandeja, responderlos directamente desde el panel de administración, y ahora restablecer la contraseña. Si olvidas la tuya por fin hay un enlace de "¿olvidaste tu contraseña?". El enlace funciona una vez, muere en una hora, y pedir uno no revela nada sobre si una dirección tiene cuenta aquí, la respuesta se ve idéntica en ambos casos.
Todos los errores, un solo sitio. Auth, blog y correo tenían cada uno su propio registro de errores, y la vista de administración tenía que coserlos en el navegador. Ahora un pequeño servicio de logs lo recoge todo. Cada servicio sigue escribiendo primero en local y envía por lotes en segundo plano, así que si el servicio de logs está caído no se pierde nada, las filas esperan y van después. Lo paré a propósito, lancé errores al sitio, lo arranqué de nuevo, y vi llegar todo exactamente una vez. Muy satisfactorio.
Copias de seguridad que de verdad corren. Backups de base de datos y de medios con horario, controles de restauración en el panel y un chequeo de salud que protesta si un backup se queda viejo. Probé una restauración completa, incluido el caso en que faltaba una base de datos entera. No quieres que la primera prueba de restauración sea la de verdad.
Push para desplegar. Hacer merge a main ahora construye todo, corre los tests y renueva el sitio en vivo por sí solo. Llegar ahí fue su propia pequeña saga, el primer despliegue falló por una clave de host que faltaba, el segundo por un secreto que faltaba, y una variable vacía en la configuración de producción resultó haber estado apagando en silencio todas las funciones de correo todo el tiempo. Esa dolió. Ahora todo funciona, y cada despliegue deja un borrador de notas de versión en el panel para que deje de olvidarme de lo que salió.
El panel de administración maduró. Se había convertido en trece elementos planos de menú y tres estilos de botón distintos tras un año de ir añadiendo cosas. Lo reconstruí: navegación agrupada que se pliega, un solo juego de controles en todas partes, tablas donde el botón de borrar de verdad parece peligroso, y la gestión de usuarios en un diálogo en vez de cinco controles embutidos en una fila de tabla. La página de ajustes habla en humano ahora en vez de mostrar claves de configuración en crudo.
Entradas en tres idiomas, con ayuda. El blog es trilingüe desde el trabajo de i18n, pero mantener en, no y es sincronizados a mano es la parte que hace que la gente lo deje. Ahora hay un botón de traducir en el editor que rellena el otro idioma como borrador que yo reviso y corrijo antes de publicar. Nunca corre solo y una visita a una página nunca lo dispara, las traducciones ocurren una vez, cuando yo lo pido, y se guardan. La política de privacidad dice exactamente qué sale del servidor y cuándo, porque eso me importa.
Una galería de fotos. Vivo en una isla que se ve así y camino mucho, así que el blog ahora también es una colección de fotos. Subida masiva, álbumes, miniaturas para que nadie descargue un original de 12 MB solo para ver una cuadrícula, y cada foto tiene su propia página con su pie. Los originales siguen sirviendo dentro de las entradas.
Series y correos de respuesta. Las entradas pueden pertenecer a una serie ordenada con una caja de "parte 2 de 7" y enlaces a la anterior y la siguiente, que es lo que la historia en siete partes sobre construir este sitio siempre quiso ser. Y si alguien responde a tu comentario puedes recibir un correo, uno solo aunque se apunten cinco, con un interruptor para apagarlo en los ajustes de tu cuenta. Por ahora esos correos solo llegan en inglés, porque el sitio nunca guarda a propósito qué idioma es tu cuenta. Puede que vuelva sobre eso.
La versión uno fui yo aprendiendo a construir un blog. La versión dos fui yo aprendiendo a operarlo. La diferencia resultó mayor de lo que esperaba, y casi toda es invisible, lo cual he decidido que es el punto. Lo siguiente: probablemente un boletín, quizá federación, seguro más fotos.