Installer Reference
Waylo ships as a self-extracting .run archive built with
makeself. It bundles a pinned Node runtime, the prebuilt
frontend, and prebuilt native dependencies, so the target machine needs no
Node, npm, compiler, or network.
Running the installer
Run it as your normal desktop user (not sudo — the systemd user service
must live in your graphical session; the installer uses sudo only for system
packages):
./waylo-<version>-linux-<arch>.run # interactive
./waylo-<version>-linux-<arch>.run -- -y # non-interactive, defaults
./waylo-<version>-linux-<arch>.run -- --uninstall # remove
Arguments after -- are passed to the installer.
Options
| Option | Description |
|---|---|
--prefix DIR | Install location (default ~/.local/share/waylo). |
--port N | Port for the service (default 8080). |
--no-https | Serve plain HTTP instead of HTTPS (TLS is the default). |
--use-system-node | Use the system Node instead of the bundled one (needs npm + a build toolchain; runs npm install). |
--no-deps | Don't install system packages. |
--no-service | Don't install/start the systemd user service. |
--no-extension | Don't install the locked-screen extension. |
-y, --yes | Assume "yes" to all prompts. |
--uninstall | Remove the service and the install prefix. |
-h, --help | Show help. |
What it does
- Checks for a GNOME session (warns if absent).
- With
--no-depsoff, detects the package manager (apt/dnf/pacman/zypper) and offers to install GStreamer plugins and an OpenSSH server, and ensuressshdis running. - Copies Waylo into the prefix using the bundled Node and prebuilt dependencies.
- Installs the systemd user service (via
install-service.js, run under the bundled Node so the service's Node matches the native-module ABI) and offers to enable linger. - Best-effort installs the
allow-locked-remote-desktopextension. - Prints how to connect.
The service unit lives at a fixed per-user path
(~/.config/systemd/user/waylo.service), so --uninstall removes the Waylo
service regardless of --prefix.
System Node instead of the bundle
--use-system-node skips the bundled runtime and installs against the target's
own Node (≥ 16). This requires npm and a C/C++ toolchain on the target so the
native modules can build, and pulls dependencies from the network — the opposite
of the self-contained default. Use it only when you specifically want to share
the system Node.