Documentation ¶
Overview ¶
Spawn is a launcher with a web dashboard that runs commands with arguments listed in the textproto config.pbtxt file.
Install spawn standalone with:
go install ask.systems/daemon/spawn@latest
You can also use spawn as a subcommand of the combined ask.systems/daemon binary.
Spawn is run with root permissions so that it can open privileged files and ports for child servers, place child servers in a chroot, and set the user to run them as. This means we can avoid running any servers as root.
The dashboard provides a convenient way to restart servers and read the logs in real time.
Example config.pbtxt: (here showing two different repeated field styles)
command { binary: "portal" user: "www" ports: [80, 443] files: [ "/etc/letsencrypt/live/ask.systems/fullchain.pem", "/etc/letsencrypt/live/ask.systems/privkey.pem" ] auto_tls_certs: true args: [ "-http_port=-3", "-https_port=-4", "-tls_cert=5", "-tls_key=6", "-auto_tls_certs", "-cert_challenge_webroot=/cert-challenge/" ] } # Serve the favicon.ico for the URL. # Appears on the dashboard and in logs as host-favicon. command { binary: "host" user: "www" name: "favicon" args: "-portal_token=YOUR TOKEN HERE" args: "-web_root=/" args: "-url_path=/favicon.ico" }
Directories ¶
Path | Synopsis |
---|---|
Embedspawn lets you run the spawn binary main function inside another program
|
Embedspawn lets you run the spawn binary main function inside another program |
Click to show internal directories.
Click to hide internal directories.