Krake installieren
Docker, Server-Binary, Kommandozeile, Desktop-App oder aus dem Quelltext gebaut.
Krake läuft als Server mit Web-Oberfläche (Docker oder einzelnes Binary), als Desktop-App oder als Kommandozeilen-Werkzeug. Such dir einen Weg aus; sie lassen sich kombinieren.
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
Öffne http://localhost:1516. Der Einrichtungsassistent legt das Admin-Konto an.
Click'n'Load (Port 9666, für Browser-Erweiterungen) funktioniert mit dem Container nicht: Der Dienst nimmt nur Verbindungen von dem Rechner an, auf dem er läuft, und das ist im Container der Container selbst. Es funktioniert, wenn krake-server oder die Desktop-App auf demselben Rechner läuft wie der Browser.
Dasselbe als Compose-Datei:
services:
krake:
image: ghcr.io/amigo-labs/krake:latest
ports:
- "1516:1516" # Web-Oberfläche
volumes:
- ./config:/config
- ./downloads:/downloads
- ./plugins:/etc/krake/plugins # optional: eigene Plugins
environment:
- KRAKE_BIND=0.0.0.0:1516
| Variable | Zweck |
|---|---|
KRAKE_BIND |
Adresse, auf der der Server lauscht. Standard ist nur Loopback, ein Container braucht deshalb 0.0.0.0:1516. |
KRAKE_SETUP_USER, KRAKE_SETUP_PASSWORD |
Legen das Admin-Konto beim Start an und überspringen den Assistenten. |
KRAKE_SETUP_PIN |
Der Assistent fragt zuerst nach dieser PIN. Setze sie, wenn der Server aus dem Internet erreichbar ist. |
KRAKE_TRUST_PROXY |
true hinter einem Reverse-Proxy, damit weitergeleitete Adressen gelten. |
KRAKE_AUTO_UPDATE_PLUGINS |
true installiert Plugin-Updates automatisch. |
Server-Binary
Lade krake-server für deine Plattform aus den Releases, entpacke es und starte es. Im Archiv liegt auch krake-plugin-host; beide Dateien gehören in denselben Ordner. Die Web-Oberfläche ist eingebaut.
./krake-server
Der Server legt seine Datenbank (krake.db) in dem Ordner an, aus dem er gestartet wird, und config.toml ebenfalls dort, außer KRAKE_CONFIG_DIR nennt einen anderen Ordner.
Kommandozeile
Unter Linux und macOS (x86_64 und aarch64):
curl -fsSL https://raw.githubusercontent.com/amigo-labs/amigo-krake/main/scripts/install.sh | bash
Das Skript nimmt krake aus dem neuesten Release, prüft die SHA-256-Prüfsumme und installiert nach /usr/local/bin (änderbar mit KRAKE_INSTALL_DIR). Unter Windows lädst du das CLI-Archiv aus den Releases.
Desktop-App
Installer für Windows, macOS und Linux hängen an jedem Release. Die App bringt den Server mit und zeigt dieselbe Oberfläche in einem eigenen Fenster.
Auf dem Handy
Die Web-Oberfläche läuft in jedem Handy-Browser. Um sie als App zu installieren und Links an sie zu teilen, muss der Server über HTTPS mit einem Zertifikat erreichbar sein, dem das Handy vertraut (zum Beispiel hinter einem Reverse-Proxy; setze KRAKE_TRUST_PROXY=true), und der Browser muss das Teilen an installierte Web-Apps unterstützen (Chrome unter Android kann das).
- Öffne
https://dein-serverim Browser des Handys. - Wähle „Zum Home-Bildschirm“ bzw. „App installieren“.
- Teile einen Link aus einer beliebigen App an Krake. Er landet in der Warteschlange.
Prüfsummen
Jedes Release enthält eine Datei SHA256SUMS mit der Prüfsumme jedes Downloads:
sha256sum --check --ignore-missing SHA256SUMS
Aus dem Quelltext bauen
Du brauchst Rust (die Version aus rust-toolchain.toml), Node.js mit pnpm, protoc und clang mit WebAssembly-Target.
# Debian / Ubuntu
sudo apt-get install protobuf-compiler clang lld
# macOS: Apples clang hat kein WebAssembly-Target, deshalb den Build auf das von Homebrew zeigen lassen
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 laufen in diesem Prozess; der Server sucht ihn neben sich
cargo run --bin krake-server
Ein Release-Build (--release, cargo install) braucht zwei Signaturschlüssel, KRAKE_UPDATE_PUBKEY_HEX und KRAKE_REGISTRY_PUBKEY_HEX. Sie legen fest, wessen Updates und Plugin-Registry das Binary vertraut. Mit eigenen Schlüsseln schlägt die Prüfung der offiziellen Updates und der Registry fehl. Debug-Builds laufen ohne Schlüssel und überspringen die Signaturprüfung mit einer Warnung.