LoomSignal
Docs← Back to site
Installation

Up and running on your own box

LoomSignal ships as one self-contained binary. There is no database to provision and no cloud account to create — you download it, run a guided setup, and it stands the service up for you.

loomsignal init — guided setup
1Model
Pick an embedding model (or run fully offline). The key is verified live.
2Network
Loopback, private IP, VPN overlay, or public — your call.
3Access
Mint the first read token for your agents.
4Sources
Connect your tools and git repos, guided.
On a systemd host it installs, starts & verifies the service — /readyz

Quickstart

Download the binary for your platform, then let the wizard do the rest. On a systemd host it installs, enables and verifies the service in the last step.

install & set up
# 1 · make the binary runnable and put it on PATH
chmod +x loomsignal
sudo mv loomsignal /usr/local/bin/

# 2 · guided setup — model, network, access, sources
loomsignal init

# 3 · confirm it's live
curl -s localhost:8787/readyz

Prefer to script it? The wizard has a non-interactive path that takes the same choices as flags:

unattended
loomsignal init --non-interactive \
  --model gemini --api-key-file ./embedding.key \
  --data-dir /var/lib/loomsignal --consumer bot

Choose your build

STATIC BINARYOne ~15 MB file, no dependencies. Cross-compiles to Linux, macOS and Windows (amd64 / arm64). Full-text search always works; vector search runs in pure Go. The recommended way to install.
DOCKER IMAGEBundles the native accelerated vector engine. Best when you want maximum semantic-search performance or prefer running everything in a container.
STATIC MUSL — SOONA fully static, distro-agnostic release archive is on the roadmap. Until then, the binary and Docker image cover every platform.
It runs comfortably on a small VM. The service is a single process with an embedded store — no external database, queue or search cluster to operate.

Where things live

Configuration is layered: built-in defaults, then a config file, then LOOM_* environment variables (which win). Sensible defaults mean most installs never touch a config file.

config.yaml
Root installs use /etc/loomsignal/; user installs use ~/.config/loomsignal/.
data dir
Defaults to /var/lib/loomsignal — the embedded store plus a portable markdown mirror of your context.
health
127.0.0.1:8787 serves /healthz, /readyz and /metrics.
MCP endpoint
Stdio by default; opens a hardened HTTP transport only when you explicitly bind a listen address.
secrets
Model keys and access tokens live in permission-locked files, never inline in config or git.

Networking, your call

The setup wizard walks you through the topology that fits: bound to loopback only, reachable on a private network, tunnelled over a VPN overlay, or exposed publicly with TLS. The safe default keeps everything local, and the HTTP surface stays closed unless you open it.

Next: Operation