Docker host
Any server that runs Docker images. Ollama needs outbound internet once, to ollama pull
your models; after that everything is local.
Secretia is a distribution: it runs the official Ollama and Open WebUI images and adds a small branding layer. Pick the path that fits your host — a one-file Compose, or three separate services (the friendliest option on EasyPanel).
Docker host
Any server that runs Docker images. Ollama needs outbound internet once, to ollama pull
your models; after that everything is local.
Enough RAM
A 7–8B model needs roughly 4–5 GB. CPU-only works; a GPU is much faster.
A session secret
One long random string for Open WebUI (openssl rand -hex 32). For SSO, the Lockatus client
details (optional).
EasyPanel prefers separate services over a Compose. Create a project and three services:
ollama — App → Docker Image ollama/ollama:latest. Mount a volume at
/root/.ollama. No domain (internal).open-webui — App → Docker Image ghcr.io/open-webui/open-webui:main. Mount
/app/backend/data. Set the environment variables (below). No domain (internal).secretia — App → GitHub diegoparras/secretia, Build = Dockerfile. Set
OPEN_WEBUI_UPSTREAM=open-webui:8080. Assign your public domain → port 8080.Inside one project, services reach each other by name (http://ollama:11434,
open-webui:8080). The full checklist lives in the repo’s DEPLOY.md.
git clone https://github.com/diegoparras/secretia.git && cd secretiacp .env.example .env # set WEBUI_URL, WEBUI_SECRET_KEY and the OAUTH_* varsdocker compose up -dThe compose brings up Ollama, Open WebUI and the branding nginx together; only the branding
service is published (port 8080).
Want the simplest path? Run only ollama + open-webui and point your domain straight at
open-webui (port 8080). You keep the “Secretia” name and Lockatus login, but lose the magenta
accent — that’s what the branding service adds.
| Variable | Example | Description |
|---|---|---|
OLLAMA_BASE_URL | http://ollama:11434 | Where the model engine lives (internal hostname). |
WEBUI_NAME | Secretia | The app name shown in the UI. |
WEBUI_URL | https://your-domain | Public URL — used to build OIDC redirects. |
WEBUI_SECRET_KEY | (random) | Session/crypto key. openssl rand -hex 32. Keep it secret. |
ENABLE_SIGNUP | false | Local sign-up off — accounts come in through Lockatus. |
ENABLE_OAUTH_SIGNUP | true | Create a user automatically on first Lockatus login. |
OAUTH_CLIENT_ID | secretia | App slug registered in Lockatus. |
OAUTH_CLIENT_SECRET | (secret) | The secret registered in Lockatus. |
OPENID_PROVIDER_URL | …/.well-known/openid-configuration | Lockatus discovery URL. |
OPENID_REDIRECT_URI | https://your-domain/oauth/oidc/callback | Must match the one registered in Lockatus. |
The branding service takes one variable: OPEN_WEBUI_UPSTREAM (default open-webui:8080).
ollama service terminal, pull a model:ollama pull llama3.1:8b # or qwen2.5:7b, or llava:7b for imagesThe model appears in Secretia’s picker on its own.