Self-hosted AI assistant with memory, recipes, secure connections, and agentic operator workflows.
3.6K
ARIA is a lean, modular, self-hosted AI assistant with memory, recipes, secure connections, LLM-assisted action planning, and a browser-first UI.
This Docker page is intentionally simple:
Repository and full documentation:
https://github.com/FischermanCH/A.R.I.A.https://github.com/FischermanCH/A.R.I.A./wikihttps://github.com/FischermanCH/A.R.I.A./tree/main/docs/setuphttps://github.com/FischermanCH/A.R.I.A./blob/main/CHANGELOG.mdhttps://fischerman.ch/projects/a-r-i-a-adaptive-reasoning-intelligence-agent/Current public alpha release on Docker Hub:
0.1.0-alpha511Current public alpha focus:
Generate suitable values on Unix:
openssl rand -hex 32
openssl rand -hex 32
aria-setupIf you want the easiest install and the easiest future updates, use:
aria-setupIt:
docker-compose.yml.envaria-stack.sh for status, logs, health, and updatesaria-updater, so admin users can later start a controlled update from /updatesManaged installs also support the same controlled update flow from chat for admin users:
zeige update statusstarte updatebestätige update <token>Install:
curl -fsSL https://raw.githubusercontent.com/FischermanCH/A.R.I.A./main/aria-setup -o aria-setup
chmod +x aria-setup
sudo ./aria-setup
If you already know the target values and want a fully unattended run:
sudo ./aria-setup \
--stack-name aria-main \
--install-dir /opt/aria/aria-main \
--http-port 8800 \
--public-url http://localhost:8800 \
--non-interactive
By default this creates:
/opt/aria/aria/docker-compose.yml/opt/aria/aria/.env/opt/aria/aria/aria-stack.sh/opt/aria/aria/storage/Useful commands afterwards:
cd /opt/aria/aria
./aria-stack.sh ps
./aria-stack.sh logs
./aria-stack.sh health
./aria-stack.sh update
Managed update rules:
./aria-stack.sh update recreates only the aria servicearia-setup upgrade --install-dir /opt/aria/aria./aria-stack.sh repair or ./aria-stack.sh update-all only when release notes say so/updatesThe same managed update helper can also be used from chat by admin users.
Before larger upgrades, create a configuration snapshot in ARIA under:
/config/backupUse this if you want to manage Compose yourself.
Use:
docker-compose.public.ymlDo not use:
docker-compose.ymlReason:
docker-compose.yml is the local repo/dev stackdocker-compose.public.yml is the public runtime stackmkdir -p /opt/aria-manual
cd /opt/aria-manual
curl -fsSL https://raw.githubusercontent.com/FischermanCH/A.R.I.A./main/docker-compose.public.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/FischermanCH/A.R.I.A./main/.env.example -o .env
.envMinimum values:
ARIA_QDRANT_API_KEY=replace-with-a-long-random-key
SEARXNG_SECRET=replace-with-a-long-random-key
ARIA_HTTP_PORT=8800
ARIA_PUBLIC_URL=http://localhost:8800
Optional LLM / embedding environment overrides should usually stay empty when you manage saved provider profiles inside ARIA. Only set them if you deliberately want Docker to force the live runtime values.
docker compose up -d
This starts:
ariaqdrantsearxngsearxng-valkeyQdrant stays internal by default and is not published on host ports in the public sample.
Copy/paste-ready docker-compose.public.yml:
services:
qdrant:
image: qdrant/qdrant:latest
restart: unless-stopped
environment:
QDRANT__SERVICE__API_KEY: ${ARIA_QDRANT_API_KEY}
volumes:
- qdrant_storage:/qdrant/storage
searxng-valkey:
image: valkey/valkey:8-alpine
restart: unless-stopped
volumes:
- searxng_valkey:/data
searxng:
image: searxng/searxng:latest
restart: unless-stopped
depends_on:
- searxng-valkey
environment:
FORCE_OWNERSHIP: "false"
SEARXNG_SECRET: ${SEARXNG_SECRET}
SEARXNG_LIMITER: "false"
SEARXNG_VALKEY_URL: "valkey://searxng-valkey:6379/0"
entrypoint:
- /bin/sh
- -lc
- |
umask 077
mkdir -p /etc/searxng
python - <<'PY'
import json
import os
from pathlib import Path
secret = os.environ.get("SEARXNG_SECRET", "ultrasecretkey")
valkey_url = os.environ.get("SEARXNG_VALKEY_URL", "valkey://searxng-valkey:6379/0")
lines = [
"use_default_settings: true",
"",
"general:",
' instance_name: "ARIA Search"',
"",
"search:",
" safe_search: 1",
' autocomplete: ""',
" formats:",
" - html",
" - json",
"",
"server:",
f" secret_key: {json.dumps(secret)}",
" limiter: false",
" image_proxy: true",
"",
"valkey:",
f" url: {json.dumps(valkey_url)}",
"",
]
Path("/etc/searxng/settings.yml").write_text("\\n".join(lines), encoding="utf-8")
PY
exec /usr/local/searxng/entrypoint.sh
volumes:
- searxng_cache:/var/cache/searxng
aria:
image: fischermanch/aria:alpha
restart: unless-stopped
depends_on:
- qdrant
- searxng
ports:
- "${ARIA_HTTP_PORT:-8800}:8800"
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
ARIA_ARIA_HOST: "0.0.0.0"
ARIA_ARIA_PORT: "8800"
ARIA_PUBLIC_URL: ${ARIA_PUBLIC_URL:-http://localhost:8800}
ARIA_QDRANT_URL: http://qdrant:6333
ARIA_QDRANT_API_KEY: ${ARIA_QDRANT_API_KEY}
volumes:
- aria_config:/app/config
- aria_prompts:/app/prompts
- aria_data:/app/data
- qdrant_storage:/qdrant/storage:ro
volumes:
qdrant_storage:
searxng_cache:
searxng_valkey:
aria_config:
aria_prompts:
aria_data:
Before larger upgrades, create a configuration snapshot in ARIA under:
/config/backupFor a normal ARIA release update:
cd /opt/aria-manual
docker compose pull aria
docker compose up -d --no-deps aria
If the release notes say the stack layout changed:
cd /opt/aria-manual
curl -fsSL https://raw.githubusercontent.com/FischermanCH/A.R.I.A./main/docker-compose.public.yml -o docker-compose.yml
docker compose up -d
Important:
docker compose commands for manual installs; the browser /updates button and chat-driven update flow are part of the managed install path./aria-stack.sh repair is the supported recovery pathFor multi-stack hosts or older installs pinned to a fixed image tag, the host helper can inspect and update exactly one Compose project:
docker/aria-host-update.sh detect
docker/aria-host-update.sh update --project <name> --dry-run
docker/aria-host-update.sh update --project <name> --target-image fischermanch/aria:<version>
The helper recreates only the aria service and preflights the intended host port before recreate. If another process already owns that port, it aborts safely before touching the running stack.
ARIA includes a browser-based configuration backup under:
/config/backupThat backup contains:
config.yamlIt does not contain:
data/ssh_keysUseful chat shortcuts after setup:
suche im internet nach rabbit r1 neuigkeitenzeige statszeige aktivitätenexportiere config backuparia-setupdocker-compose.public.ymlFor new public installs, prefer aria-setup unless you explicitly want to manage the compose directory yourself.
Content type
Image
Digest
sha256:54a87a942…
Size
245 MB
Last updated
3 months ago
docker pull fischermanch/aria:alpha