-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Helix is a private alpha with no supported binary release. Evaluate it on a private network with backups and a clear rollback path. Do not forward its dashboard port to the public internet or use live data as a first test.
The repository is licensed under AGPL-3.0-or-later; that does not turn this
source workflow into a supported distribution.
Building the complete source requires Rust 1.88 or newer, Node.js 22.12 or newer, and npm. Full host and native-server controls additionally require a reviewed Linux broker configuration and Docker on the Linux host.
-
Loopback preview on the machine you cloned. This is enough to create the
owner, see Home greet your name, and use read-only dashboard pages.
Broker-backed host, storage, network, and native-server controls stay
unavailable until
helix-privdis configured on Linux. - Private LAN on a Linux server you control. Copy the examples, replace every placeholder with that host's address, groups, and storage roots, then follow the container deployment guide. This is not a one-command installer.
The local package flow in Installation is a scoped lifecycle test. For a first server, use Compose plus the broker unit rather than that package.
From the repository root:
cd frontend
npm ci --no-audit --no-fund
npm run build
cd ..
cargo build --locked --release --workspace --all-features
npm run check and the workspace test/clippy gates are the contributor
verification path. They are not required just to produce frontend/dist and
the release binaries.
This path works on Windows, macOS, and Linux. Host mutations still need the Linux broker.
From the repository root in a Bash shell (Git Bash or WSL is fine on Windows):
mkdir -p .helix-data/development
./target/release/helixctl \
--data-dir "$(pwd)/.helix-data/development" \
setup-token
./target/release/helixd \
--listen 127.0.0.1:8080 \
--data-dir "$(pwd)/.helix-data/development" \
--web-root "$(pwd)/frontend/dist"Open the loopback URL printed by the daemon. Paste the one-time token and create the owner with a login you will remember and a display name. Home greets that name. The token expires after 15 minutes and is invalidated when replaced or consumed.
Do not put the token or password in .env, shell history, logs, screenshots,
or source.
The repository contains a constrained dashboard/gateway Compose example and a separate systemd example for the root broker. Every bind address, Host, Origin, client CIDR, broker group, socket, and managed storage root must match the target host before anything starts.
- Copy
.env.exampleto.env. Replace192.168.1.10and192.168.1.0/24with this server's private IPv4, the origin you will type in a browser, and the subnet those browsers sit on. Set the two distinct broker/terminal GIDs and the persistent data/backup directories. Wildcards are not allowed. - Copy
deploy/privd.example.jsonto/etc/helix/privd.json. Replace every/srv/...path with directories you created on this host. Do not copy the example roots blindly./as an analysis root is for largest-file scans, not a custom-JAR import boundary. - Keep
ReadWritePathsindeploy/helix-privd.servicealigned with those same directories. - Follow the container deployment guide and the current security model.
The optional Hooks installer can install and start the exact Tailscale package on an eligible Debian/Ubuntu host, but the owner must authenticate it and explicitly configure the secondary private gateway. Helix does not open router ports for the dashboard.
After the first owner exists:
- type your city on the Home weather widget;
- use the scratchpad note for ISP details, port forwards, or weekend plans, not passwords;
- open Edit layout to add shortcuts and rearrange widgets;
- create the first native Minecraft server from Servers → New server (Helix Native stays separate from any AMP import);
- pick a theme and navigation order in Settings.
Never post setup tokens, passwords, cookies, CSRF proofs, private addresses, hostnames, storage paths, server logs, or world data in an issue or screenshot.