Orlok

Variabili d'ambiente

Tutte le impostazioni del pacchetto Docker, quali devi compilare tu e quali imposta compose al posto tuo.

Orlok legge le sue impostazioni da .env.production, che compose.yaml passa ai container. Parti dall'esempio contenuto nel pacchetto:

cp .env.production.example .env.production
docker compose --env-file .env.production up -d --build

Non fare mai commit del file compilato: contiene le chiavi che proteggono i tuoi dati.

Obbligatorie

Variabile Cos'è
ORLOK_PUBLIC_URL L'indirizzo che le persone usano per aprire Orlok, es. https://orlok.example.com o http://192.168.1.20:8080. Si usa nei link inviati via email e per controllare da dove arrivano i caricamenti. Dietro un reverse proxy, è l'indirizzo del proxy.
ORLOK_SECRET_KEY Una chiave di 32 byte, codificata in base64, che cifra a riposo le chiavi API dei provider di modelli e le credenziali delle persone. Generala con openssl rand -base64 32.
POSTGRES_PASSWORD La password dell'utente del database. Finisce dentro un URL di connessione, quindi usa caratteri sicuri per gli URL: openssl rand -hex 24.
ORLOK_RUNNER_TOKEN Il token condiviso dall'app e dal runner. Casuale, di almeno 32 caratteri: openssl rand -hex 32.

Se ne manca una, docker compose si ferma prima di avviare qualsiasi cosa e ti dice quale.

Tieni la chiave segreta fuori dal database, e fanne un backup. Orlok non la salva mai. Senza, le chiavi dei provider e le credenziali salvate non si possono decifrare, e un backup del solo database non basta a recuperarle. Vedi Backup.

I cookie seguono l'indirizzo. I cookie di accesso sono marcati come sicuri solo quando ORLOK_PUBLIC_URL inizia con https://. In semplice http su un indirizzo locale funzionano lo stesso, ma chiunque si trovi sul percorso di rete può leggerli: usa http solo su una rete di cui ti fidi. Vedi HTTPS.

Facoltative

Variabile Default Cos'è
ORLOK_PORT 8080 La porta dell'host pubblicata dall'app. Dentro il container l'app ascolta sulla 3000.
POSTGRES_USER orlok L'utente del database, creato al primo avvio.
POSTGRES_DB orlok Il database, creato al primo avvio.
ORLOK_EMBEDDINGS_THREADS metà dei core, al massimo 8 Thread del modello di embedding integrato che indicizza la wiki per la ricerca.
ORLOK_APP_IMAGE orlok:latest Il nome dell'immagine dell'app da costruire o scaricare. Compare anche in fondo al menu, così vedi a colpo d'occhio quale versione è in esecuzione.
ORLOK_RUNNER_IMAGE orlok-runner:latest Il nome dell'immagine del runner da costruire o scaricare.

POSTGRES_USER e POSTGRES_DB hanno effetto solo su un volume del database vuoto: cambiarli dopo non rinomina un utente o un database esistente.

Impostate da compose

compose.yaml imposta queste variabili per i container. Non serve metterle in .env.production.

Variabile Container Valore
DATABASE_URL app Composto da utente, password e database di Postgres.
ORLOK_RUNNER_URL app http://runner:3100, sulla rete interna condivisa solo con il runner.
ORLOK_IMAGE app Il valore di ORLOK_APP_IMAGE: un container non può leggere il tag della propria immagine.
ORLOK_RUNNER_SANDBOX_UID_BASE runner 20000: ogni job gira con un utente dedicato, a partire da questo id.

Lascia attiva la sandbox. Senza ORLOK_RUNNER_SANDBOX_UID_BASE il runner funziona lo stesso, ma ogni job gira con l'utente del runner e il runner scrive un avviso nel log. Il pacchetto la imposta per te.

Limiti del runner

Il runner applica limiti di risorse a ogni comando che avvia e a ogni server MCP locale. compose.yaml non passa queste variabili, quindi valgono i default. Per cambiarle, aggiungile all'ambiente del runner in un compose.override.yaml accanto a compose.yaml, che Docker Compose legge in automatico:

services:
  runner:
    environment:
      ORLOK_RUNNER_MAX_JOBS: "4"
Variabile Default Cosa limita
ORLOK_RUNNER_MAX_JOBS 8 Comandi in esecuzione nello stesso momento; gli altri aspettano il loro turno.
ORLOK_RUNNER_MAX_MCP_SESSIONS 16 Server MCP locali (quelli avviati come comando) in esecuzione nello stesso momento. I server MCP remoti non contano.
ORLOK_RUNNER_LIMIT_MEMORY_MB 4096 Memoria di ogni processo.
ORLOK_RUNNER_LIMIT_CPU_SECONDS 900 Tempo di CPU di ogni comando. I server MCP non hanno limite di CPU, perché restano attivi.
ORLOK_RUNNER_LIMIT_FILE_MB 1024 Dimensione di ogni file scritto da un processo.
ORLOK_RUNNER_LIMIT_OPEN_FILES 1024 File aperti da ogni processo.
ORLOK_RUNNER_LIMIT_PROCESSES 256 Processi dell'utente di ogni job. Si applica solo con la sandbox attiva.

Imposta un limite a 0 per disattivarlo.