Boat Rudder
Inicio | Blog | Docs | Acerca de
Esp Dark

Documentación

Todo lo necesario para entender Boat Rudder, usarlo y modificarlo. Las páginas están agrupadas según a qué viniste: arrancar, entender cómo funciona, usarlo en el día a día, modificar el código o consultar un dato puntual.




Empezar aquí

¿Recién llegás a Boat Rudder? Estas tres páginas te llevan de cero a un servidor funcionando.

Qué es Boat Rudder
La idea del CMS retrocompatible: un solo sitio servido a todos los navegadores jamás hechos, desde teléfonos WAP hasta HTML5.

Instalación rápida
Clonar, instalar las dependencias, compilar y dejar el servidor respondiendo en tu máquina.

Requisitos y dependencias
C17, libsodium, el driver C de MongoDB, ImageMagick y las plataformas donde Boat Rudder compila.




Entender

Los conceptos detrás del código. Leelos antes de cambiar nada.

Epochs: un sitio, todos los navegadores
Los cinco epochs, cómo se detecta el navegador desde su User-Agent y cómo cada bloque de contenido degrada en vez de desaparecer.

Arquitectura
Capas, el modelo de hilos, el árbol de directorios y las decisiones de seguridad que dan forma al servidor.

Ciclo de vida de una petición
De accept() al último byte escrito: listener, hilo de conexión, router, renderizador.

El modelo de contenido
Entradas, bloques de contenido tipados, categorías, menú, idiomas y medios, y cómo encajan entre sí.

Plantillas y temas
La convención de plantillas por epoch, el namespace CSS boat-rudder- y cómo se compone una página.




Usar

Poner el servidor a andar y publicar contenido: para operadores y editores.

Configuración
Cada clave de configs/settings.conf, qué hace y qué pasa si la omitís.

Compilar, correr y desplegar
Las acciones de boat_rudder_builder.sh, los modos debug y producción, y la instalación como servicio systemd.

HTTPS y certificados
Generar un certificado local para desarrollo y conectar uno real en producción.

MongoDB: puesta en marcha y backups
Arrancar la base, volcarla y restaurarla con los scripts incluidos.

El panel de administración
Login, sesiones, los roles Administrador y Autor, y un recorrido por cada pantalla de administración.

Crear y editar contenido
El editor de entradas: metadatos, cabecera, bloques, reordenamiento arrastrando, autoguardado y publicación.

Los catorce tipos de bloque
Qué hace cada bloque, el campo extra que lleva y cómo se ve en cada epoch.

Biblioteca de medios y galerías
Subir, organizar en directorios, el optimizador de imágenes y la ruta pública de galerías.

Categorías, menú, idiomas y usuarios
Las cuatro pantallas mantenedoras que definen la navegación, la traducción y quién puede entrar.




Modificar

Trabajar sobre el código fuente. Recetas y las reglas que no se discuten.

Mapa del código fuente
Qué vive en cada carpeta de src/ y por qué vive ahí.

Guía de estilo C y reglas de seguridad
Nombres, formato, memoria, cadenas, enteros y el checklist CERT con el que se revisa cada cambio.

Añadir un tipo de bloque
Paso a paso: el renderizador público, el formulario del editor y una plantilla para cada uno de los cinco epochs.

Añadir una ruta o un módulo
Registrarla en el router, protegerla con un rol de sesión y devolver errores conscientes del epoch.

Trabajar con plantillas de epoch
Editar marcado y CSS sin romper los epochs retro que no tienen ni lo uno ni lo otro.




Referencia

Tablas de consulta para cuando ya sabés lo que estás haciendo.

Referencia de rutas
Toda ruta pública y de panel, su método y la guarda que la protege.

Colecciones de la base
La forma de cada colección de MongoDB que Boat Rudder lee y escribe.

Hoja de ruta y estado
Qué está implementado hoy y qué queda por delante.


Boat Rudder