Skip to main content

Configuration

Command-line options

waylo [options]

waylo above is the server as the service runs it. In practice you set these at install time./waylo-<version>-linux-x64.run -- --port 9000 — or afterwards by editing ExecStart in ~/.config/systemd/user/waylo.service and reloading:

systemctl --user daemon-reload && systemctl --user restart waylo
OptionDefaultDescription
--port=N8080HTTP/WebSocket server port.
--width=N1920Capture width.
--height=N1080Capture height.
--no-httpsoffServe plain HTTP/WS instead of HTTPS/WSS.
--virtualoffAlways stream a virtual monitor, even when physical monitors are attached (headless mode).
--fps=N15Default frame rate (clients override per session).
--quality=N75Default JPEG quality (clients override per session).
--help, -hShow help.

Frame rate and quality are normally chosen per session on the login screen and from the toolbar, so --fps / --quality only set the starting defaults. See Performance.

Examples

waylo --port=9000 # different port
waylo --width=1280 --height=720 # lower resolution to save bandwidth
waylo --no-https # plain HTTP (TLS is the default)
waylo --virtual # headless / virtual display

Environment variables

VariableEquivalentNotes
WAYLO_HTTPS=false--no-httpsTurn TLS off.
WAYLO_VIRTUAL=true--virtualHeadless/virtual monitor.
NODE_ENV=productionSet by the service unit.

TLS (HTTPS)

TLS is on by default. Waylo serves HTTPS and wss://, generating a self-signed certificate under certs/ if one isn't present; set WAYLO_TLS_CERT and WAYLO_TLS_KEY to point at your own instead. Browsers warn once about a self-signed certificate — accept it to continue, or use the desktop client, which shows the fingerprint and pins it.

The default is worth keeping: besides encrypting the login and the stream, a secure context is what lets the browser expose WebCodecs, and without it the session falls back to MJPEG at a higher bandwidth cost.

--no-https (or WAYLO_HTTPS=false) serves plain HTTP instead. That is the right choice when Waylo sits behind a TLS-terminating reverse proxy — the client detects the page scheme and uses wss:// automatically when the page was loaded over HTTPS.

For most deployments, reaching Waylo over an SSH tunnel or VPN is simpler and safer than exposing it publicly; see Security.

Per-session settings

Set on the login screen and changeable mid-session from the toolbar's ⚙️ row: frame rate, quality, fullscreen-on-connect, auto-capture pointer, multi-monitor, reduced effects, and lock-on-disconnect. Changes apply to all connected clients immediately and are remembered in the browser for next time.

Auto-login

Unattended setup writes auto-login into your display manager and installs a lock-on-login startup entry. To configure it by hand instead:

GDM (/etc/gdm3/custom.conf on Debian/Ubuntu, /etc/gdm/custom.conf on Fedora):

[daemon]
AutomaticLoginEnable=true
AutomaticLogin=yourusername

LightDM (/etc/lightdm/lightdm.conf):

[Seat:*]
autologin-user=yourusername
autologin-user-timeout=0

See Unattended Access for the service and locked-screen pieces that go with auto-login.