Using Systemd socket based activation to start Compiler Explorer

This document gives a short overview of how to use Systemd to automatically start Compiler Explorer when the web-interface is accessed.

You'll need to create two files in /etc/systemd/system/:

compiler-explorer.socket:

[Socket]
ListenStream=10240

[Install]
WantedBy=sockets.target

compiler-explorer.service:

[Service]
Type=simple
WorkingDirectory={{path_to_installation_directory}}/compiler-explorer
ExecStart=/usr/bin/node {{path_to_installation_directory}}/compiler-explorer/app.js
TimeoutStartSec=60
TimeoutStopSec=60
User={{run_as_this_user}}
Group={{run_as_this_group}}

Replace the bracketed {{}} placeholders with your system specifics.

Once the two above files are created Systemd needs to be made aware of the changes:

sudo systemctl daemon-reload

Now all that remains is to enable and start the new service:

sudo systemctl enable compiler-explorer.socket
sudo systemctl start compiler-explorer.socket

If all goes well you can now open the web-interface.