Deployment guide

Deploy Hedy on your own infrastructure.

Hedy is a private-deployment AI employee. It runs where you run — a VM with Docker Compose for a pilot, Helm on Kubernetes for high availability, or fully air-gapped with local models. A pilot is up in about 30 minutes. Nothing here is a cloud sign-up; the whole stack lands inside your boundary.

Pick a mode

Best forHowHA
Docker ComposePilot / single teamdocker compose up -d on one VMSingle node
Kubernetes (Helm)Production / scaleHelm chart into your clusterMulti-replica, StatefulSet
Air-gappedNo-internet networksCompose/Helm + local vLLM or Ollama; offline Ed25519 licenceEither
Managed gatewayZero model configRoute model calls to Hedy's gateway; everything else stays yoursEither

Self-hosted / BYO is the flagship — your keys, your models, zero sub-processors. Managed trades that for zero-config speed and changes the data-residency facts; see the security model.

Before you start

P-01

A host you control

A Linux VM in your VPC (a pilot is comfortable on ~2 vCPU / 8 GB; size up for heavier retrieval). Docker + Compose, or a Kubernetes cluster for Helm.

P-02

A chat channel

A Feishu or Lark app (first-class), or Slack. This is where the employee lives and answers.

P-03

Model access

Your own API keys — Anthropic- or OpenAI-compatible, or Chinese providers such as DeepSeek, Qwen, Kimi and GLM — or a local vLLM / Ollama endpoint for air-gapped. Or run Managed and skip this.

P-04

A knowledge source

Point Hedy at a wiki, Git, Notion or Confluence. Optional on day one; retrieval falls back to full-text until embeddings are configured.

P-05

An Ed25519 licence file

Verified offline — no phone-home. Drop it in before first start (air-gap friendly).

Pilot in ~30 minutes (Compose)

01

Get the release & licence

Pull the pinned semver images (never latest) and place your licence.json. Repository ships only an .env.example — secrets are injected, never committed.

02

Fill .env

Set your channel credentials, model keys (or point at local vLLM/Ollama), and a strong internal token. Bind published ports to 127.0.0.1 behind your reverse proxy.

03

docker compose up -d

Postgres, Redis, the control plane, the LLM gateway and the agent come up. Health checks gate readiness.

04

Connect the channel

Add the app to your Feishu/Lark or Slack workspace; the employee introduces itself and runs a self-check.

05

Point at knowledge & ask

Add a source, ask a question — the answer comes back cited, scoped to what the asker may see. First deliverable in minutes.

What deployment gives you, by design

D-01

Loopback-bound, behind your proxy

Published ports bind to 127.0.0.1; your reverse proxy terminates TLS. Docker port publishing bypasses host firewalls — loopback binding is the reliable boundary.

D-02

Secrets are environment-only

Credentials enter through deployment-environment injection. The repository ships an example file; the agent is hard-ruled never to store credential values in memory, files or logs.

D-03

One metering chokepoint

Every model call routes through a single gateway that owns quota, cost accounting and degrade policy — so spend is measurable per team and project, and nothing bypasses it.

D-04

Append-only audit from the first action

Every action is recorded with actor, object and reasoning — no update or delete path, for the agent or for admins.

Operate: upgrade, back up, stay offline

O-01

Upgrades preserve memory

Images are pinned semver. Learned knowledge and the employee's memory live in preserved, backup-able volumes — an upgrade never resets what the employee has learned.

O-02

Backup & restore scripts included

Ship with backup/restore/upgrade runbooks; your data is your Postgres, on your host.

O-03

Licence lifecycle, offline

Ed25519 state machine: active → grace (read-only) → expired. Verified locally, no external call — air-gap ready.

Talk through your deployment Read the security model

Questions

What are the minimum specs for a pilot?
A single Linux VM with roughly 2 vCPU and 8 GB RAM runs a comfortable Compose pilot. Heavier retrieval and larger knowledge bases benefit from more memory; production runs on Kubernetes via Helm with multiple replicas.
Can it run fully air-gapped?
Yes. Point the gateway at a local vLLM or Ollama endpoint inside the boundary; licensing is offline via Ed25519 with no phone-home. Anthropic- and OpenAI-compatible APIs — including Chinese providers such as DeepSeek, Qwen, Kimi and GLM — work identically when reachable.
How long does a first deployment take?
About 30 minutes for a Compose pilot: place the licence, fill .env, docker compose up -d, connect a channel, point at one knowledge source. Production Helm deployments take longer to wire into your cluster and IdP.
Do upgrades lose the employee's memory or learned knowledge?
No. Images are pinned semver, and learned knowledge and memory live in preserved, backup-able volumes independent of the image layer — upgrading the image does not reset what the employee has learned.
How are secrets and model keys handled?
Environment injection only. The repository ships an .env.example with no real values; the agent is hard-ruled never to write credential values into memory, files or logs, and model keys are used only server-side behind the gateway.