Repository navigation
Configuration
github-actions[bot] edited this page Oct 4, 2026
·
2 revisions
Docveta works without any configuration: it listens on port 8080, keeps data in a data folder
and asks for the database in the browser. Change settings in a file called docveta.conf,
one NAME=value per line:
# docveta.conf
DOCVETA_LISTEN=:9000
DOCVETA_BASE_URL=https://docs.example.com
DOCVETA_OCR_DEVICE=gpuRestart Docveta after changing it (Windows service: sc stop Docveta / sc start Docveta; Linux:
sudo systemctl restart docveta; macOS: run install.sh again).
- Environment variables win over everything (useful in Docker and systemd).
-
docveta.confnext to the program (or the file named inDOCVETA_CONFIG). The installers create it with the data folder, port and OCR device:- Windows installer:
C:\Program Files\Docveta\docveta.conf - Linux
install.sh:/opt/docveta/docveta.conf - macOS
install.sh:~/Applications/Docveta/docveta.conf
- Windows installer:
-
docveta.confin the data folder, which Docveta writes itself: the database connection from the setup page and the generated secret key. It contains passwords, so keep it private and include it in backups.
| Setting | Default | Meaning |
|---|---|---|
DOCVETA_LISTEN |
:8080 |
Address and port to listen on. :8080 = all network interfaces; 127.0.0.1:8080 = this computer only |
DOCVETA_BASE_URL |
http://localhost:8080 |
The address people type to open Docveta, and whether cookies are secure (https://…). While it is left at a localhost address, Docveta uses the address each browser opened it with (for single sign-on, invitations and share links) and remembers it for links in emails and push notifications; administrators can change that remembered address in Admin → System |
DOCVETA_DATA_DIR |
./data |
Folder for documents (blobs/), temporary uploads, logs and the data docveta.conf
|
DOCVETA_DATABASE_URL |
set by the setup page | PostgreSQL connection, postgres://user:password@host:5432/docveta?sslmode=prefer. See Database
|
DOCVETA_SECRET_KEY |
generated | Encrypts stored passwords (email, single sign-on). At least 32 characters. If you lose it, those passwords must be entered again |
| Setting | Default | Meaning |
|---|---|---|
DOCVETA_OCR_DEVICE |
auto |
auto, gpu, igpu, npu or cpu. See OCR engines
|
DOCVETA_OCR_GPU_ID |
— | Use a specific graphics adapter by number (docveta-ocr --list-devices) |
DOCVETA_LOCAL_OCR |
auto |
auto starts the engine in the ocr folder next to Docveta; off doesn't; or a path to an engine program |
DOCVETA_MODELS_DIR |
ocr/models |
Where the bundled engine finds its models |
| Setting | Default | Meaning |
|---|---|---|
DOCVETA_TRUSTED_PROXIES |
— | Comma-separated IPs/networks of your reverse proxy, so Docveta sees real client addresses (e.g. 127.0.0.1,172.16.0.0/12) |
DOCVETA_ALLOW_LOCAL_TARGETS |
false |
Allow everyone's notification channels (Gotify, ntfy, webhooks) to reach addresses on your local network. Channels set up by administrators always may. The same switch is in Admin → System |
DOCVETA_METRICS_TOKEN |
— | Lets Prometheus scrape /metrics from outside your local network with Authorization: Bearer <token>. Without it, /metrics only answers local-network addresses |
DOCVETA_SESSION_IDLE |
720h |
Sign out after this long without activity (30 days) |
DOCVETA_SESSION_MAX |
2160h |
Sign out after this long at the latest (90 days) |
| Setting | Default | Meaning |
|---|---|---|
DOCVETA_MAX_UPLOAD_MB |
500 |
Largest file accepted |
DOCVETA_TRASH_RETENTION |
720h |
How long deleted documents stay in the trash (30 days) |
DOCVETA_PDF_WORKERS |
2 |
PDFs inspected in parallel (each needs 50–100 MB of memory) |
DOCVETA_JOB_WORKERS |
4 |
Background jobs in parallel |
| Setting | Default | Meaning |
|---|---|---|
DOCVETA_LOG_LEVEL |
info |
debug, info, warn or error
|
DOCVETA_LOG_FORMAT |
text in a terminal, json otherwise |
text is easier to read, json suits log collectors |
DOCVETA_OPEN_BROWSER |
true |
On Windows and macOS, open the browser when Docveta is started by hand |
DOCVETA_CONFIG |
docveta.conf next to the program |
Path to the main settings file |
Durations use Go's format: 30m, 12h, 720h.
Everything else is changed in Docveta itself, by an administrator:
- Administration → Single sign-on: OpenID Connect (Authentik, Keycloak, Google, …)
- Administration → Email: SMTP server for email notifications
- Administration → Processing: OCR engines, routing, retries
- Administration → Users, Settings → Notifications, Space settings
docveta doctor # configuration, database, disk, OCR engines, stored files
docveta doctor --verify-blobs # also re-checks every stored file for damage (slow)Run it from the same folder or environment Docveta uses (Windows service:
"C:\Program Files\Docveta\docveta.exe" doctor in an administrator prompt; Linux service:
sudo -u docveta DOCVETA_CONFIG=/opt/docveta/docveta.conf /opt/docveta/docveta doctor).