Saltar a contenido

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.