Supervisor¶
Supervisor es un sistema de control de procesos que facilita iniciar, parar y reiniciar tu aplicación de Vapor.
Instalación¶
Supervisor puede instalarse en Linux mediante los manejadores de paquetes.
Ubuntu¶
sudo apt-get update
sudo apt-get install supervisor
CentOS y Amazon Linux¶
sudo yum install supervisor
Fedora¶
sudo dnf install supervisor
Configuración¶
Cada aplicación de Vapor en tu servidor debería tener su propio fichero de configuración. Para un proyecto Hello
de ejemplo, el fichero de configuración estaría localizado en /etc/supervisor/conf.d/hello.conf
[program:hello]
command=/home/vapor/hello/.build/release/App serve --env production
directory=/home/vapor/hello/
user=vapor
stdout_logfile=/var/log/supervisor/%(program_name)-stdout.log
stderr_logfile=/var/log/supervisor/%(program_name)-stderr.log
Tal y como hemos especificado en nuestro fichero de configuración, el proyecto Hello
se encuentra en la carpeta "home" del usuario vapor
. Asegúrate de que directory
apunta al directorio raíz de tu proyecto, donde está el fichero Package.swift
.
La marca (flag) --env production
deshabilitará el registro detallado.
Entorno¶
Puedes exportar variables a tu aplicación de Vapor con Supervisor. Para exportar varios valores de entorno, ponlos todos en una línea. Según Supervisor documentation:
Los valores que contengan caracteres no alfanuméricos deberán ir entrecomillados (p.ej. KEY="val:123",KEY2="val,456"). De lo contrario, entrecomillar los valores es opcional pero recomendado.
environment=PORT=8123,ANOTHERVALUE="/something/else"
Las variables exportadas pueden usarse en Vapor mediante Environment.get
let port = Environment.get("PORT")
Inicio¶
Ahora ya puedes cargar e iniciar tu aplicación.
supervisorctl reread
supervisorctl add hello
supervisorctl start hello
Nota
El comando add
puede haber iniciado ya tu aplicación.