Supervisor is a process control system that makes it easy to start, stop, and restart your Vapor app.
Supervisor can be installed through package managers on Linux.
sudo apt-get update sudo apt-get install supervisor
CentOS and Amazon Linux¶
sudo yum install supervisor
sudo dnf install supervisor
Each Vapor app on your server should have its own configuration file. For an example
Hello project, the configuration file would be located at
[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
As specified in our configuration file the
Hello project is located in the home folder for the user
vapor. Make sure
directory points to the root directory of your project where the
Package.swift file is.
--env production flag will disable verbose logging.
You can export variables to your Vapor app with supervisor. For exporting multiple environment values, put them all on one line. Per Supervisor documentation:
Values containing non-alphanumeric characters should be quoted (e.g. KEY="val:123",KEY2="val,456"). Otherwise, quoting the values is optional but recommended.
Exported variables can be used in Vapor using
let port = Environment.get("PORT")
You can now load and start your app.
supervisorctl reread supervisorctl add hello supervisorctl start hello
add command may have already started your app.