AiHummer
English
Log in
v1.0.x
{ }Swagger

Installation

v1.0.x · updated 2026-07-10

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.

There is no public install script — the install link is personal and issued in your account portal:

  1. Register at my.aihummer.ru (email + password, confirmed with a 6-digit code from the email).
  2. Open the “Installation” screen and click “Get personal install link”.
  3. 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.