Windows
Run Lific on Windows from a release binary, with Cargo, or under WSL 2.
Lific runs natively on Windows. The server, web UI, CLI, REST API, MCP server, and backups all work. SQLite is bundled into the binary. Credentials are stored in the Windows Credential Manager. Every release ships a Windows binary, and CI runs the full test suite on Windows.
One feature is not available on native Windows: there is no Windows service integration. lific service commands require systemd or launchd. Use Task Scheduler or a terminal to keep the server running.
There are two setup paths. Native setup runs Lific directly on Windows. WSL 2 runs the Linux binary and adds systemd service support.
Native setup
Install Lific
Download lific-windows-x86_64.exe from GitHub Releases, rename it to lific.exe, and put it in a directory on your PATH. Each release also publishes sha256sums.txt; verify the download against it:
Get-FileHash lific-windows-x86_64.exe -Algorithm SHA256Confirm the install:
lific --versionInstall with Cargo instead
Building from crates.io works too, and is the path to take if you want a binary for an architecture the releases do not cover.
Install rustup from rustup.rs. Use the default MSVC host toolchain (stable-x86_64-pc-windows-msvc), which needs the Visual Studio Build Tools. The rustup installer offers to install them; if you skip that step, install the "Desktop development with C++" workload from the Visual Studio Build Tools installer.
Lific requires Rust 1.88 or later.
cargo install lificThe crates.io package includes the prebuilt web UI. Bun is not required for this step. Compilation takes several minutes.
The binary is installed to %USERPROFILE%\.cargo\bin\lific.exe. rustup adds that directory to PATH.
Initialize the instance
lific init --no-serviceUse --no-service on Windows. Plain lific init tries to install a background service, finds no supported service manager, and reports an error for that step. The rest of the initialization still completes.
On a fresh install, lific init asks how you want to sign in. Login-free mode sets [auth] required = false, sets [server] host = "127.0.0.1", turns on browser auto-login, and creates a passwordless first administrator, after stating that anyone who can reach the server can administer it. Password mode keeps [auth] required = true, leaves the bind host unchanged, and creates the first administrator with the password you choose. Either way, init asks for your name and creates that administrator directly. Pass --auth-mode login-free or --auth-mode passwords, with --name and --password, to skip the menu in a script.
lific init creates these files on Windows:
| File | Path |
|---|---|
| Configuration | %APPDATA%\lific\lific.toml |
| Database | %LOCALAPPDATA%\lific\lific.db |
Use --here to create a directory-local instance with .\lific.toml and .\lific.db instead.
Run the server
lific startThe default port is 3456. Open http://127.0.0.1:3456 in a browser. Press Ctrl+C to stop the server.
The built-in default bind host is 0.0.0.0, which accepts connections from the local network. Windows Defender Firewall asks for permission the first time the server listens. Login-free initialization already writes 127.0.0.1; otherwise, set the host in lific.toml to restrict the server to the local machine:
[server]
host = "127.0.0.1"
port = 3456From here the Quickstart applies unchanged: sign in as the administrator that lific init created, then create a project and an issue.
Start automatically (optional)
Lific does not register a Windows service. Task Scheduler can start the server at logon. In PowerShell:
$action = New-ScheduledTaskAction -Execute (Get-Command lific).Source -Argument "start"
$trigger = New-ScheduledTaskTrigger -AtLogOn
Register-ScheduledTask -TaskName "Lific" -Action $action -Trigger $triggerThe task starts the server at the next logon. Start it immediately with Start-ScheduledTask -TaskName "Lific". Remove it with Unregister-ScheduledTask -TaskName "Lific".
A task created this way runs in your session and shows a console window. Closing that window stops the server. To run the server without a window, open Task Scheduler, edit the task, and select "Run whether user is logged on or not". That option requires your account password when saving.
WSL 2 setup
WSL 2 runs the Linux release binary. This path adds the systemd service integration, so lific init can install a service that restarts on failure.
Install a distribution if you do not have one:
wsl --installInside the distribution, confirm systemd is enabled. /etc/wsl.conf must contain:
[boot]
systemd=trueRecent Ubuntu WSL images ship with this enabled. If you add it manually, run wsl --shutdown from Windows and reopen the distribution.
Then follow the Linux instructions from Installation: download lific-linux-x86_64, make it executable, place it on PATH, and run lific init. The service install step works because systemd is present.
WSL 2 forwards localhost, so http://localhost:3456 works from a Windows browser while WSL is running.
One caveat: WSL shuts down its virtual machine when no WSL sessions or processes remain. A server inside WSL is reachable only while WSL is running. Keep a WSL terminal open, or start the distribution before use.
Build from source (native)
Building from source on Windows requires Rust 1.88 or later. Building the web UI additionally requires Bun, which ships Windows builds.
git clone https://github.com/VoidNullable/lific
cd lific
cd web; bun install; bun run build; cd ..
cargo build --releaseThe binary is written to target\release\lific.exe.
To build without the web UI, create an empty web\dist directory instead of running Bun. The binary still provides the CLI, REST API, MCP server, OAuth, and backups.
mkdir web\dist
cargo build --release