46 lines
2.1 KiB
YAML
46 lines
2.1 KiB
YAML
services:
|
|
gateway:
|
|
# Defaults to a self-built image; to use a prebuilt release image instead:
|
|
# OPENSQUILLA_GATEWAY_IMAGE=ghcr.io/opensquilla/opensquilla:latest docker compose up -d
|
|
# Full container guide: docs/docker.md
|
|
image: ${OPENSQUILLA_GATEWAY_IMAGE:-opensquilla:local}
|
|
environment:
|
|
# In-container bind address. Keep it 0.0.0.0 — Docker port publishing
|
|
# needs the wildcard bind, and what the network can actually reach is
|
|
# decided by `ports` below, not by this value.
|
|
OPENSQUILLA_LISTEN: "0.0.0.0"
|
|
# Administering a containerized gateway through the Web UI (/control/)
|
|
# requires token auth, even from this host. Enable it with:
|
|
# OPENSQUILLA_AUTH_MODE: token
|
|
# OPENSQUILLA_AUTH_TOKEN: ${OPENSQUILLA_AUTH_TOKEN:?generate one with openssl rand -hex 32}
|
|
# and put the value in a git-ignored .env next to this file.
|
|
# See docs/docker.md for the /control/?token=... login flow.
|
|
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
|
|
BRAVE_SEARCH_API_KEY: ${BRAVE_SEARCH_API_KEY:-}
|
|
TZ: ${TZ:-UTC}
|
|
volumes:
|
|
# Config, state, logs, and workspace persist in a Docker-managed
|
|
# named volume mounted at the image's OPENSQUILLA_STATE_DIR. The
|
|
# image pre-creates that path owned by the non-root container user,
|
|
# so persistence works consistently on Linux, macOS, Windows, and WSL2.
|
|
- opensquilla-state:/var/lib/opensquilla
|
|
ports:
|
|
# Published on the host loopback only: the gateway is reachable from
|
|
# this machine and invisible to the rest of the network. To reach the
|
|
# Web UI from other devices (home server / NAS), publish on all
|
|
# interfaces AND configure token auth above first:
|
|
# - "18791:18791"
|
|
# Exposure is controlled here — do not change OPENSQUILLA_LISTEN.
|
|
# Never forward this port to the internet; see docs/docker.md.
|
|
- "127.0.0.1:18791:18791"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "curl --fail --silent --show-error http://127.0.0.1:18791/healthz || exit 1"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 10s
|
|
retries: 3
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
opensquilla-state:
|