Despliegue con servidor Caddy
Caddy proporciona alojamiento de archivos estáticos con aprovisionamiento automatizado de HTTPS a través de Let’s Encrypt.
Generación de Caddyfile
Genera un Caddyfile preconfigurado con los parámetros de tu proyecto:
npx @docmd/core deploy --caddy
El deployer configura:
- Dirección del host: Inyecta el nombre de dominio a partir de
config.url. - Directorio raíz: Apunta a
config.out(./site). - Reglas SPA: Añade directivas
try_filescondicionalmente cuandolayout.spa: true.
Esquema de configuración
Caddyfile
docs.example.com {
root * ./site
file_server
# Reserva SPA (condicional según layout.spa)
try_files {path} {path}/ /index.html
# Cabeceras de seguridad
header {
X-Content-Type-Options "nosniff"
X-Frame-Options "SAMEORIGIN"
-Server
}
# Enrutamiento de 404 personalizado
handle_errors {
rewrite * /404.html
file_server
}
# Caché de recursos estáticos
@static {
file
path *.ico *.css *.js *.gif *.jpg *.jpeg *.png *.webp *.avif *.svg *.woff *.woff2 *.eot *.ttf *.otf
}
header @static Cache-Control "public, max-age=15552000, immutable"
}
Ejecución del despliegue
- Compila la salida estática:
npx @docmd/core build - Transfiere los recursos compilados y el
Caddyfileal servidor de destino. - Inicia Caddy:
caddy run --config Caddyfile
Certificados TLS automáticos
Al especificar un dominio público en url, Caddy aprovisiona y renueva certificados TLS automáticamente sin necesidad de scripts externos.