Installation
AiHummer installs host-native. Installation starts in your personal account
at my.aihummer.ru: you register, obtain a personal
install link and run a single command on your server. The install script
downloads a signed bundle for your architecture, lays out a single install root
under ~/.aihummer (in the home directory of the user who ran the installer),
registers systemd units, and optionally provisions sidecars. There are no
containers anywhere in this process.
[!NOTE] This is a host-native install — a release tarball running under systemd, not Docker. The gateway, sidecars and plugins each run as their own systemd service.
Step 1: get your personal install link
There is no public install script — the install link is personal and issued in your account portal:
- Register at my.aihummer.ru (email + password, confirmed with a 6-digit code from the email).
- Open the “Installation” screen and click “Get personal install link”.
- The portal shows a ready-to-run command with your personal link.
More about the portal itself (billing details, documents, plans) is on the Personal account page.
Step 2: one-command install
Copy the command from the “Installation” screen and run it on your server (Linux x86_64/arm64):
curl -fsSL "<your personal install link>" | sudo bash
The personal link looks like https://my.aihummer.ru/dl/<token>/install.sh, is
bound to your account and is valid for 30 days — when it expires, simply
mint a new one on the same screen. An already-installed instance keeps updating
through its link even after the token expires.
The script detects your CPU architecture, downloads the matching bundle along
with its .sha256 checksum and cosign .sig signature, verifies both, unpacks
the install root and registers the gateway service. See the
Changelog for the current release.
The personal link also binds the instance to your customer portal account: the installer stores the token from the link, the instance sends it on its first registration with the vendor, and the portal links the instance to your account automatically. Your e-mail immediately becomes the instance’s verified contact — no separate “attach and verify an e-mail” step in the Web UI, and the license is delivered with no manual steps.
[!WARNING] Your personal link is your key to the distribution. Do not publish it: anyone holding the link can download builds on your behalf until the token expires.
Install root layout
Everything lives under one directory, ~/.aihummer — in the home directory of
the user who ran the installer (under sudo that is the user who invoked
sudo, not root: e.g. /home/ivan/.aihummer). Files are owned by that user and
the services run as that user:
~/.aihummer/
├── bin/ gateway binary and the aihummer CLI
├── etc/ configuration (gateway.env)
├── share/ static assets (admin UI, widget)
├── sidecars/ optional STT/TTS/etc services
├── plugins/ installed marketplace plugins
├── systemd/ unit files (symlinked into /etc/systemd/system)
├── state/ runtime state
├── data/ blob/media storage
└── logs/ service logs
The systemd unit files generated into systemd/ are symlinked into
/etc/systemd/system/, so they are managed with regular systemctl commands.
Rootless install
sudo/root privileges are not required. If you run the install command
without sudo, the installer switches to rootless mode: units are registered
in the systemd --user scope (files in ~/.config/systemd/user), the
aihummer CLI and cosign land in ~/.aihummer/bin, and if
AIHUMMER_DATABASE_URL is not set the installer provisions a user-mode
PostgreSQL cluster inside the install root. Services are managed with
systemctl --user .... To have the services start at host boot (not only at
user login), enable lingering:
loginctl enable-linger $USER
Sidecar selection
The lightweight media sidecars — STT (faster-whisper), TTS (edge-tts) and
video — install out of the box, with no questions or flags: round-trip voice
works immediately. Any of them can be disabled with the environment variables
AIHUMMER_SKIP_STT=1, AIHUMMER_SKIP_TTS=1, AIHUMMER_SKIP_VIDEO=1.
For the remaining sidecars the installer asks interactively (on a tty), or you control them with flags — this is the full list:
| Flag | Effect |
|---|---|
--with-search / --with-browser |
Install SearXNG / headless Chrome natively, without asking |
--external-search=URL / --external-browser=URL |
Use an existing service at this URL instead of installing |
--no-search / --no-browser |
Skip this sidecar |
--with-embedder |
Install the semantic embedder (opt-in: pulls PyTorch — hundreds of MB) |
Without a tty and without a flag, search/browser are skipped. The embedder can
also be enabled with AIHUMMER_WITH_EMBEDDER=1; without it memory runs on
lexical fallback search. The UI language is set by AIHUMMER_LANG=ru|en
(otherwise the installer asks on a tty). The PostgreSQL connection is prompted
on a tty; for non-interactive installs set AIHUMMER_DATABASE_URL in advance.
On a tty the installer also offers restore from a backup.
# Install the gateway with native search and the embedder, without the browser
curl -fsSL "<your personal install link>" | sudo bash -s -- \
--with-search --with-embedder --no-browser
Because sidecars are addressed by URL, you can freely mix native and external ones and point several gateways at one shared sidecar.
Release channels
AiHummer ships on four channels: stable, alfa, beta and dev. The personal link from your account portal installs the stable channel — the standard path for all users.
| Channel | Access | Obfuscated |
|---|---|---|
| stable | Personal link from the account portal | — |
| alfa | Issued by the vendor (testing programs) | Yes |
| beta | Issued by the vendor (testing programs) | Yes |
| dev | Issued by the vendor | No (unobfuscated) |
The alfa/beta/dev channels are key-gated and intended for early-testing program
participants — the vendor grants access individually. Artifacts on every channel
ship as per-architecture tarballs together with a .sha256 checksum and a
cosign .sig signature — both are verified at install time and on every update.
Verify the installation
After the installer finishes, check the service and the readiness endpoint:
systemctl status aihummer-gateway
curl -fsS http://localhost:8780/healthz
curl -fsS http://localhost:8780/readyz
/healthz reports liveness and version; /readyz checks PostgreSQL and returns
503 while the database is unreachable. The bundled aihummer CLI also
provides aihummer status and aihummer doctor for a quick health overview.
Where to next
- First run: see First login to retrieve
the initial admin password from
~/.aihummer/etc/initial-admin-password.txt. - Tune the deployment: read Configuration.
- Want a guided first run? Use the Quickstart.