You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.3 KiB
67 lines
2.3 KiB
# Servicio de systemd para el servidor de la web.
|
|
#
|
|
# Copiar a /etc/systemd/system/senzapaura.service y luego:
|
|
#
|
|
# sudo systemctl daemon-reload
|
|
# sudo systemctl enable --now senzapaura
|
|
# sudo systemctl status senzapaura
|
|
# journalctl -u senzapaura -f # para ver qué está pasando
|
|
#
|
|
# La web es un servidor de Node, no archivos sueltos: cada página se genera
|
|
# sabiendo quién la pide —si ha entrado, qué lleva en el carrito, qué ha
|
|
# comprado—, así que hay un proceso vivo permanentemente. Nginx se pone delante;
|
|
# esto es lo que mantiene el proceso en pie.
|
|
|
|
[Unit]
|
|
Description=Senza Paura — web
|
|
Documentation=file:///var/www/senzapaura/README.md
|
|
# La web no arranca sin base de datos, así que espera a que Postgres esté listo.
|
|
After=network-online.target postgresql.service
|
|
Wants=network-online.target
|
|
StartLimitIntervalSec=60
|
|
StartLimitBurst=5
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=senzapaura
|
|
Group=senzapaura
|
|
WorkingDirectory=/var/www/senzapaura/current
|
|
|
|
# Las claves y la cadena de conexión viven aquí, fuera del repositorio.
|
|
# Debe ser 600 y de este usuario: contiene la clave de Stripe.
|
|
EnvironmentFile=/var/www/senzapaura/.env
|
|
Environment=HOST=127.0.0.1
|
|
Environment=PORT=3000
|
|
Environment=MEDIA_DIR=/var/www/senzapaura/media/audio
|
|
Environment=ESCUCHA_DIR=/var/www/senzapaura/media/escucha
|
|
Environment=ONDA_DIR=/var/www/senzapaura/media/ondas
|
|
Environment=IMAGEN_DIR=/var/www/senzapaura/media/imagenes
|
|
|
|
ExecStart=/usr/bin/node build/index.js
|
|
Restart=always
|
|
RestartSec=5
|
|
|
|
# Si se cae en bucle, que pare y se note, en vez de reiniciarse para siempre
|
|
# consumiendo la máquina.
|
|
|
|
# --- Cerrojos ---------------------------------------------------------------
|
|
# Un servidor web es lo que primero se intenta reventar. Estas líneas no cuestan
|
|
# nada y limitan lo que un proceso comprometido podría tocar.
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ProtectKernelTunables=true
|
|
ProtectKernelModules=true
|
|
ProtectControlGroups=true
|
|
RestrictSUIDSGID=true
|
|
# Lo único que necesita escribir es la carpeta de medios si algún día se sube
|
|
# audio desde el propio servidor. El resto del disco queda de solo lectura.
|
|
ReadWritePaths=/var/www/senzapaura/media
|
|
|
|
# Sin acceso a otras redes que no sean IP: no hace falta nada más.
|
|
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|