Install Krake
Docker, server binary, command line, desktop app, or built from source.
Krake runs as a server with a Web UI (Docker or a single binary), as a desktop app, or as a command-line tool. Pick one; they can be combined.
Docker
docker run -d --name krake \
-p 1516:1516 \
-v ./config:/config -v ./downloads:/downloads \
-e KRAKE_BIND=0.0.0.0:1516 \
ghcr.io/amigo-labs/krake:latest
Open http://localhost:1516. The setup wizard creates the admin account.
Click'n'Load (port 9666, for browser extensions) does not work with the container: the listener only accepts connections from the machine it runs on, which inside a container is the container itself. It works when krake-server or the desktop app runs on the same machine as the browser.
The same as a compose file:
services:
krake:
image: ghcr.io/amigo-labs/krake:latest
ports:
- "1516:1516" # Web UI
volumes:
- ./config:/config
- ./downloads:/downloads
- ./plugins:/etc/krake/plugins # optional: your own plugins
environment:
- KRAKE_BIND=0.0.0.0:1516
| Variable | Purpose |
|---|---|
KRAKE_BIND |
Address the server listens on. The default is loopback only, so a container needs 0.0.0.0:1516. |
KRAKE_SETUP_USER, KRAKE_SETUP_PASSWORD |
Create the admin account at start and skip the wizard. |
KRAKE_SETUP_PIN |
The wizard asks for this PIN first. Set it when the server is reachable from the internet. |
KRAKE_TRUST_PROXY |
true behind a reverse proxy, so forwarded addresses are trusted. |
KRAKE_AUTO_UPDATE_PLUGINS |
true installs plugin updates automatically. |
Server binary
Download krake-server for your platform from the releases, unpack it and run it. The archive also holds krake-plugin-host; keep both files in the same folder. The Web UI is built in.
./krake-server
The server keeps its database (krake.db) in the folder it is started from, and config.toml there too unless KRAKE_CONFIG_DIR names another folder.
Command line
On Linux and macOS (x86_64 and aarch64):
curl -fsSL https://raw.githubusercontent.com/amigo-labs/amigo-krake/main/scripts/install.sh | bash
The script takes krake from the latest release, checks its SHA-256 checksum and installs it to /usr/local/bin (change with KRAKE_INSTALL_DIR). On Windows, download the CLI archive from the releases.
Desktop app
Installers for Windows, macOS and Linux are attached to each release. The app bundles the server and opens the same interface in its own window.
On your phone
The Web UI works in any phone browser. To install it as an app and share links to it, the server must be reachable over HTTPS with a certificate the phone trusts (for example behind a reverse proxy; set KRAKE_TRUST_PROXY=true), and the browser must support sharing to installed web apps (Chrome on Android does).
- Open
https://your-serverin the phone's browser. - Choose "Add to Home Screen" / "Install app".
- Share a link from any app to Krake. It lands in the queue.
Checksums
Every release carries a SHA256SUMS file with the checksum of each download:
sha256sum --check --ignore-missing SHA256SUMS
Build from source
You need Rust (the version in rust-toolchain.toml), Node.js with pnpm, protoc, and clang with a WebAssembly target.
# Debian / Ubuntu
sudo apt-get install protobuf-compiler clang lld
# macOS: Apple's clang has no WebAssembly target, so point the build at Homebrew's
brew install protobuf llvm
export CC_wasm32_unknown_unknown="$(brew --prefix llvm)/bin/clang"
export AR_wasm32_unknown_unknown="$(brew --prefix llvm)/bin/llvm-ar"
pnpm install && pnpm build:web-ui
cargo build --bin krake-plugin-host # plugins run in this process; the server looks for it next to itself
cargo run --bin krake-server
A release build (--release, cargo install) needs two signing keys, KRAKE_UPDATE_PUBKEY_HEX and KRAKE_REGISTRY_PUBKEY_HEX. They decide whose updates and plugin registry the binary trusts. With keys of your own, the official updates and registry fail verification. Debug builds run without keys and skip signature checks with a warning.