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_URLinizia conhttps://. In semplicehttpsu un indirizzo locale funzionano lo stesso, ma chiunque si trovi sul percorso di rete può leggerli: usahttpsolo 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_BASEil 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.