Guía de Despliegue
🚀 Guía de Despliegue
Sección titulada «🚀 Guía de Despliegue»Desplegar una aplicación construida con ZunoFramework implica compilar tu código C++ con CMake, configurar TLS si es necesario, y ejecutar el binario resultante en un entorno seguro y confiable. Esta guía cubre los pasos esenciales para un despliegue listo para producción.
🛠️ Compilación con CMake
Sección titulada «🛠️ Compilación con CMake»ZunoFramework se integra mediante FetchContent
en CMake. Aquí tienes un ejemplo mínimo:
cmake_minimum_required(VERSION 3.20)project(MiAplicacionZuno)
set(CMAKE_CXX_STANDARD 20)set(CMAKE_BUILD_TYPE Release)
include(FetchContent)FetchContent_Declare(zunoGIT_REPOSITORY https://github.com/ZunoFramework/zuno.gitGIT_TAG main)FetchContent_MakeAvailable(zuno)
add_executable(miapp main.cpp)target_link_libraries(miapp PRIVATE zuno)
Para compilar tu proyecto:
mkdir -p buildcd buildcmake ..cmake --build . --config Release
Esto generará un binario optimizado (por ejemplo, miapp
) listo para producción.
🔐 Configuración de TLS
Sección titulada «🔐 Configuración de TLS»Si tu aplicación utiliza app.useTLS()
, asegúrate de que los archivos de certificado y clave estén presentes y sean legibles:
app.useTLS({ "certs/server.crt", "certs/server.key"});
Recomendaciones para producción:
- Usa certificados de una autoridad confiable (como Let’s Encrypt).
- Establece permisos seguros:
chmod 600
para claves privadas. - Evita rutas codificadas—considera usar archivos de configuración.
⚠️ Configuración por Variables de Entorno (Planeado)
Sección titulada «⚠️ Configuración por Variables de Entorno (Planeado)»El soporte para variables de entorno aún no está implementado en ZunoFramework. Por ahora, los valores de configuración como puertos, rutas o flags deben definirse directamente en el código o cargarse desde un archivo de configuración personalizado.
En el futuro se podrá hacer algo como:
# Aún no soportadoexport ZUNO_ENV=productionexport ZUNO_PORT=8080
Mantente atento a futuras versiones para esta funcionalidad.
🧩 Ejecución como Servicio
Sección titulada «🧩 Ejecución como Servicio»Para mantener tu aplicación corriendo en producción, puedes usar un gestor de procesos como systemd
:
[Unit]Description=Aplicación Web ZunoAfter=network.target
[Service]ExecStart=/opt/zuno/miappRestart=alwaysUser=www-data
[Install]WantedBy=multi-user.target
Luego habilita e inicia el servicio:
sudo systemctl enable zuno-appsudo systemctl start zuno-app
📈 Logs y Monitoreo
Sección titulada «📈 Logs y Monitoreo»Zuno incluye un sistema de logging integrado a través de zuno::log
. En producción, puedes redirigir la salida a un archivo o integrarte con herramientas externas:
./miapp >> /var/log/zuno.log 2>&1
También puedes integrarte con:
- journald (vía systemd)
- Fluent Bit o Logrotate
- Prometheus (usando métricas personalizadas)
🧪 Verificación de Salud
Sección titulada «🧪 Verificación de Salud»Implementa una ruta simple para verificar el estado de la aplicación:
app.get("/health", {}, [](const zuno::Request& req, zuno::Response& res) { res.json({{"status", "ok"}});});
Puedes usar esta ruta con balanceadores de carga o monitores de disponibilidad.
¿Necesitas ayuda con un entorno de despliegue específico? Únete a la conversación en GitHub o consulta la guía de Configuración Avanzada.