If you cannot use the install script, or you are installing on Windows, download a release archive from GitHub. Each archive contains one static binary plus license and readme files. Extract it and run, with no runtime to install.
Release artifacts
Artifact names follow a fixed pattern, <name>_<version>_<os>_<arch>, packed as .tar.gz on Linux and macOS and .zip on Windows.
| System | Architecture | File |
|---|---|---|
| Linux | amd64 | kiln_<version>_linux_amd64.tar.gz |
| Linux | arm64 | kiln_<version>_linux_arm64.tar.gz |
| Linux | armv7 | kiln_<version>_linux_armv7.tar.gz |
| Linux | armv6 | kiln_<version>_linux_armv6.tar.gz |
| macOS | amd64 | kiln_<version>_darwin_amd64.tar.gz |
| macOS | arm64 | kiln_<version>_darwin_arm64.tar.gz |
| Windows | amd64 | kiln_<version>_windows_amd64.zip |
| Windows | arm64 | kiln_<version>_windows_arm64.zip |
The lite variant is built for Linux only. Its archives use the kiln-lite prefix, cover amd64, arm64, armv7, and armv6, and the executable inside is named kiln-lite as well. See Lite, Core and Full.
Each archive contains the executable (kiln, or kiln.exe on Windows) plus LICENSE, NOTICE, README.md, and README.en.md. Every release also publishes a single SHA256SUMS covering all archives from that release.
Linux and macOS
Download the archive and the checksums
Get the archive for your platform from the Releases page, together with SHA256SUMS, into the same directory.
Verify the checksum
Do not continue on a mismatch; download again or switch sources.
sha256sum --ignore-missing -c SHA256SUMSgrep 'kiln_1.0.0_darwin_arm64.tar.gz' SHA256SUMS | shasum -a 256 -c -Unpack and put it on PATH
tar -xzf kiln_1.0.0_linux_amd64.tar.gz
sudo install -m 0755 kiln /usr/local/bin/kilnWithout sudo, use a user directory instead: install -m 0755 kiln ~/.local/bin/kiln, and make sure ~/.local/bin is on PATH.
Confirm it runs
kiln -versionThe output carries the version, commit, build time, and variant. A binary that refuses to start usually means the wrong architecture, or a target directory mounted noexec.
Run it
kiln -config kiln.tomlConfig syntax lives in Configuration, flags in the CLI reference.
On Apple Silicon, pick darwin_arm64. A shell running under Rosetta reports x86_64 from uname -m, and choosing the archive from that would leave you with a translated build.
To keep it running across reboots on Linux, the install script’s --service flag registers a systemd unit for you.
Windows
The Windows build ships its own service commands, so no external supervisor or wrapper is needed.
Unpack into a stable directory
Download kiln_<version>_windows_amd64.zip and unpack it somewhere permanent, for example C:\kiln. Check the hash against the matching line in SHA256SUMS.
Get-FileHash kiln_1.0.0_windows_amd64.zip -Algorithm SHA256Put the config next to it
Place kiln.toml in the same directory, for example C:\kiln\kiln.toml.
Register and start the service
Run these from an elevated terminal.
kiln.exe service install -config C:\kiln\kiln.toml
kiln.exe service start
kiln.exe service statusStopping and removing it is two more commands:
kiln.exe service stop
kiln.exe service uninstallremove is accepted as an alias for uninstall.
Subcommand flags
| Flag | Applies to | Description | Default |
|---|---|---|---|
-config |
install only |
Path to the config file, required; resolved to an absolute path and checked for readability before the service is created | — |
-name |
All subcommands | Service name, used to tell several instances apart on one host | Kiln |
-display |
install only |
Display name shown in the services UI | Kiln Streaming Gateway |
Running several instances means passing the same -name to every subcommand:
kiln.exe service install -config C:\kiln\edge.toml -name KilnEdge -display "Kiln Edge"
kiln.exe service start -name KilnEdgeinstall refuses to touch an existing service of the same name and exits with an error instead of overwriting it. start and stop wait up to 30 seconds for the state to settle. uninstall asks a running service to stop and waits up to 20 seconds before deleting the registration. status reports running, stopped, starting, stopping, paused, or unknown.
Autostart and restart policy
The installed service uses automatic start, so it comes up with the machine. It also carries a three-step recovery policy: restart after 5 seconds on the first failure, 15 seconds on the second, 60 seconds on the third, with the failure count resetting after 24 hours.
The service accepts the standard stop and shutdown requests and drains through the normal graceful shutdown path rather than being killed.
Working directory and relative paths
The service control manager starts processes in system32. When Kiln detects that it is running as a service, it resolves -config to an absolute path and changes the working directory to the folder holding that config. Relative paths such as data_dir = "./data" therefore still resolve against the config file, not against system32.
Installation records the absolute config path, so moving either the binary or the config means registering the service again. Running as a service without a -config value exits 2.
Logs
Standard output is discarded under the service control manager, so Kiln redirects stdout and stderr to kiln.log in the directory holding the config.
At every start, an existing kiln.log larger than 16 MB is renamed to kiln.log.1 before the new file is opened. Rotation keeps that single generation only, so archive it elsewhere if you need longer retention. Log format and fields are covered in Operations.
Firewall
Serving anything beyond localhost needs an inbound rule, since the Windows firewall blocks it by default:
New-NetFirewallRule -DisplayName "Kiln" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action AllowAbout FFmpeg
The Windows distribution ships without FFmpeg. With [packager].engine set to auto, the native engine is selected automatically and day-to-day use is unaffected. Install FFmpeg and add it to PATH only if the compatibility fallback is genuinely needed. See Media engine.
Uninstalling
kiln.exe service uninstall removes the service registration and nothing else. Everything under data_dir, along with kiln.log and the config file, stays where it is and has to be cleaned up by hand.