Skip to main content
The Kernel needs a small set of settings before it can start its server and service system. These settings are defined at the top level of the TOML configuration file:

Listen

Listen is the network address where the Kernel starts its HTTP server. The default value, :8080, listens on port 8080 on all local interfaces. You can provide a specific host and port when the server should listen on a particular interface:

TLS

TLS enables HTTPS for the Kernel server. Set it to true when you need to encrypt traffic between the Kernel and clients or a reverse proxy on a private network:
When enabled, the Kernel creates a new self-signed certificate in memory each time it starts. The certificate is valid for localhost, 127.0.0.1, and ::1, and the server requires TLS 1.2 or later. The certificate and private key are not written to disk. Because the certificate is self-signed and changes after every restart, a reverse proxy or tunnel may not be able to verify it by default. Configure the proxy to use HTTPS for the upstream connection and explicitly allow the untrusted origin certificate. Only do this when the proxy can reach the Kernel through a trusted private network. For example, configure an NGINX upstream with TLS verification disabled:
Keep TLS = false when TLS terminates at the reverse proxy and the connection from that proxy to the Kernel does not need encryption.

ServiceDir

ServiceDir is the directory that the Kernel scans for .plg service packages. The service manager uses this directory to discover the services available to Arupa. The path can be absolute or relative to the process working directory. In the example configuration, services means a services directory next to the directory from which Arupa is started.

ServiceTempDir

ServiceTempDir is the writable temporary directory used while the Kernel loads services. Arupa extracts service packages into this directory before it starts them. The directory must be writable by the Arupa process. It is separate from ServiceDir: keep the original .plg packages in ServiceDir, and use ServiceTempDir for the Kernel’s extracted runtime files.