AiHummer docs
v1.0.x
RU EN

Installation

v1.0.x · updated 2026-06-26

AiHummer installs host-native. The install script pulls a signed, per-architecture bundle from the CDN, lays out a single install root under /home/.aihummer, 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.

One-line install

Run the installer as root and pin the version you want:

curl -fsSL http://cdn.aihummer.ru:9000/cdn/install.sh | sudo bash -s -- --version vX.Y.Z

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. Replace vX.Y.Z with the release you intend to deploy.

Install root layout

Everything lives under one directory, /home/.aihummer:

/home/.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 under systemd/ are symlinked into /etc/systemd/system/, so they are managed with ordinary systemctl commands.

Choosing sidecars

The installer can provision sidecars natively or attach an existing instance by URL. Run it interactively to be prompted for each sidecar, or drive it with flags:

FlagEffect
--with-<name>Install this sidecar natively (e.g. --with-stt, --with-tts)
--external-<name>=URLUse an existing sidecar at this URL instead of installing one
--no-<name>Skip this sidecar
--allInstall every available sidecar
# Install the gateway with native STT/TTS and an external SearXNG
curl -fsSL http://cdn.aihummer.ru:9000/cdn/install.sh | sudo bash -s -- \
  --version vX.Y.Z \
  --with-stt --with-tts \
  --external-searxng=https://searx.internal.example

Because sidecars are reached by URL, you can mix native and external freely, and point several gateways at one shared sidecar.

Release channels

AiHummer ships on four channels. Only stable is publicly served; the others are unpublished and key-gated.

ChannelPublishedObfuscatedInstaller
stableYes — public install.shinstall.sh
alfaNo — key-gatedYesinstall-alfa.sh
betaNo — key-gatedYesinstall-beta.sh
devNo — key-gatedNo (unobfuscated)install-dev.sh

Non-stable channels require a channel key, passed either as a flag or an environment variable:

# Install a key-gated alfa build
curl -fsSL http://cdn.aihummer.ru:9000/cdn/install-alfa.sh | sudo bash -s -- \
  --version vX.Y.Z --key <CHANNEL_KEY>
# Equivalent via environment
AIHUMMER_CHANNEL_KEY=<CHANNEL_KEY>
# or
AIHUMMER_RELEASE_TOKEN=<CHANNEL_KEY>

For the key-gated channels the artifacts live behind a secret CDN path as a per-architecture tarball accompanied by its .sha256 checksum and a cosign .sig signature, both verified during install.

[!WARNING] The alfa and beta builds are obfuscated; the dev build is unobfuscated. Treat channel keys as secrets — anyone with a key can pull unpublished builds.

Verifying the install

After the installer finishes, check the service and the readiness endpoint:

systemctl status aihummer-gateway
curl -fsS http://localhost:8765/healthz
curl -fsS http://localhost:8765/readyz

/healthz reports liveness and version; /readyz checks PostgreSQL and returns 503 until the database is reachable. The bundled aihummer CLI also exposes aihummer status and aihummer doctor for a quick health overview.

Where to next

  • First run: see First login to retrieve the one-time admin password.
  • Tune the deployment: read Configuration.
  • Want to walk the first run step by step? Use the Quickstart.