Fosniedocsv0.1

Install

Install Fosnie with Docker Compose, on your own server.

This page covers a production-style Docker Compose install. For the fastest path see the Quickstart; for fully-local models, GPU hosts, or air-gapped installs see the Deployment guides.

Requirements

  • Docker with Docker Compose v2 (≥ 2.24).
  • RAM: ~8 GB with an external model API; ~16 GB for the fully-local stack (--local).
  • One published port8080 by default. Everything else (Postgres, Qdrant, Redis, the ML service) stays on Fosnie's internal network and is never exposed.

Option A – one-line install

Downloads a pinned release, generates secrets, and starts the stack.

curl -fsSL https://get.fosnie.dev | sh
# fully local – no API keys, all inference on this host:
curl -fsSL https://get.fosnie.dev | sh -s -- --local

Prefer to read before you run: download install.sh, review it, then sh install.sh.

Option B – manual (Docker Compose)

mkdir fosnie && cd fosnie
curl -fsSL -O https://github.com/Fosnie/fosnie/releases/latest/download/docker-compose.yml
curl -fsSL https://github.com/Fosnie/fosnie/releases/latest/download/example.env -o .env
# edit .env – see "Required settings" below
docker compose up -d

Required settings

Generate a fresh value for each – never ship the placeholders. Keep .env at mode 600.

VariableWhat it isGenerate with
POSTGRES_PASSWORDDatabase passwordopenssl rand -hex 24
MESSAGE_ENCRYPTION_KEYAt-rest encryption key (base64 of 32 bytes)openssl rand -base64 32
ML_SHARED_SECRETBackend ↔ ML service secretopenssl rand -hex 32

A set-but-invalid MESSAGE_ENCRYPTION_KEY fails boot on purpose. If it is left unset, direct messages are stored in plaintext – set it. See Configuration & env vars for the full list.

What gets started

The default profile is five containers:

ServiceRole
backendRust API – also serves the web app; the only container on port 8080
mlPython service – the only component that talks to a model
postgresApplication data and the audit log
qdrantVector store for retrieval
redisSessions, presence, real-time tickets (ephemeral)

Database migrations run inside the backend on boot – there is no separate migrate step. Data lives in named volumes and survives docker compose down and reboots (restart: unless-stopped).

First run

Open http://localhost:8080 and create the first account – it becomes the admin. By default Fosnie uses built-in email/password auth (AUTH_MODE=local); an onboarding checklist walks you through adding a model provider. To use your company IdP instead, set AUTH_MODE=keycloak – see Admin & teams.

Next steps

Was this page helpful?

On this page