---
title: "Manual install & Windows service"
description: "Download a release archive, verify it, run it, and register Kiln as a Windows service."
---

> Documentation Index
> Fetch the complete documentation index at: https://kiln.wbxdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manual install & Windows service

If you cannot use the [install script](/en/start/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](/en/guide/variants/).

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.

> **Stronger provenance**
>
> The release pipeline signs build provenance for every binary, so beyond the checksum you can run `gh attestation verify` to confirm an artifact really came from this repository's release workflow.

## Linux and macOS

1. **Download the archive and the checksums**

   Get the archive for your platform from the [Releases](https://github.com/babywbx/Kiln) page, together with `SHA256SUMS`, into the same directory.
2. **Verify the checksum**

   Do not continue on a mismatch; download again or switch sources.

### Linux

```bash
    sha256sum --ignore-missing -c SHA256SUMS
```
### macOS

```bash
    grep 'kiln_1.0.0_darwin_arm64.tar.gz' SHA256SUMS | shasum -a 256 -c -
```

3. **Unpack and put it on PATH**

```bash
tar -xzf kiln_1.0.0_linux_amd64.tar.gz
sudo install -m 0755 kiln /usr/local/bin/kiln
```

   Without sudo, use a user directory instead: `install -m 0755 kiln ~/.local/bin/kiln`, and make sure `~/.local/bin` is on `PATH`.
4. **Confirm it runs**

```bash
kiln -version
```

   The 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`.
5. **Run it**

```bash
kiln -config kiln.toml
```

   Config syntax lives in [Configuration](/en/reference/config/), flags in the [CLI reference](/en/reference/cli/).

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`](/en/start/install-script/) flag registers a systemd unit for you.

## Windows

The Windows build ships its own service commands, so no external supervisor or wrapper is needed.

1. **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`.

```powershell
Get-FileHash kiln_1.0.0_windows_amd64.zip -Algorithm SHA256
```
2. **Put the config next to it**

   Place `kiln.toml` in the same directory, for example `C:\kiln\kiln.toml`.
3. **Register and start the service**

   Run these from an elevated terminal.

```powershell
kiln.exe service install -config C:\kiln\kiln.toml
kiln.exe service start
kiln.exe service status
```

Stopping and removing it is two more commands:

```powershell
kiln.exe service stop
kiln.exe service uninstall
```

`remove` 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:

```powershell
kiln.exe service install -config C:\kiln\edge.toml -name KilnEdge -display "Kiln Edge"
kiln.exe service start -name KilnEdge
```

`install` 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.

> **Elevation required**
>
> Every service subcommand opens the service control manager with full access, so an unelevated terminal fails to connect. Install and uninstall in particular must run from an administrator prompt. Service management exists only in the Windows build; on other platforms the `service` subcommand prints a notice and exits 2.

### 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](/en/guide/operations/).

### Firewall

Serving anything beyond localhost needs an inbound rule, since the Windows firewall blocks it by default:

```powershell
New-NetFirewallRule -DisplayName "Kiln" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow
```

### About 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](/en/guide/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.

## Next steps

- **Create your first channel** — Write a minimal config and get it serving.
- **An easier install** — On Linux and macOS, one command handles installs and upgrades.
- **It will not start** — Startup failures, port conflicts, and permission problems.

Source: https://kiln.wbxdocs.com/en/start/binary/index.mdx
