This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Configuratie

Alle configuratie gebeurt via omgevingsvariabelen. Elke variabele heeft een verstandige standaardwaarde, zodat SnapOtter direct werkt zonder er ook maar één in te stellen.

Omgevingsvariabelen

Server

VariabeleStandaardBeschrijving
PORT1349Poort waarop de server luistert.
RATE_LIMIT_PER_MIN1000Maximaal aantal verzoeken per minuut per IP. Stel in op 0 om rate limiting uit te schakelen.
CORS_ORIGIN(leeg)Door komma's gescheiden toegestane origins voor CORS, of leeg voor alleen dezelfde origin.
LOG_LEVELinfoUitgebreidheid van logging. Een van: fatal, error, warn, info, debug, trace.
TRUST_PROXYtrueVertrouw X-Forwarded-For-headers van een reverse proxy. Stel in op false als er geen proxy vóór zit.

Authenticatie

VariabeleStandaardBeschrijving
AUTH_ENABLEDfalseStel in op true om aanmelden te vereisen. De Docker-image gebruikt standaard true.
DEFAULT_USERNAMEadminGebruikersnaam voor het initiële adminaccount. Wordt alleen bij de eerste keer opstarten gebruikt.
DEFAULT_PASSWORDadminWachtwoord voor het initiële adminaccount. Wijzig dit na de eerste keer aanmelden.
MAX_USERS0 (onbeperkt)Maximaal aantal geregistreerde gebruikersaccounts. Stel in op 0 voor onbeperkt.
SESSION_DURATION_HOURS168Levensduur van de aanmeldsessie in uren (standaard 7 dagen).
SKIP_MUST_CHANGE_PASSWORD-Stel in op een niet-lege waarde om de verplichte wachtwoordwijzigingsprompt bij de eerste aanmelding over te slaan

Opslag

VariabeleStandaardBeschrijving
STORAGE_MODElocallocal of s3. S3/MinIO vereist een licentie met de s3_storage-functie.
DATABASE_URLpostgres://snapotter:snapotter@postgres:5432/snapotterPostgreSQL-connectiestring.
REDIS_URLredis://redis:6379Redis-connectiestring (gebruikt voor BullMQ-taakwachtrijen).
WORKSPACE_PATH./tmp/workspaceMap voor tijdelijke bestanden tijdens de verwerking. Wordt automatisch opgeschoond.
FILES_STORAGE_PATH./data/filesMap voor persistente gebruikersbestanden (geüploade afbeeldingen, opgeslagen resultaten).

Ingebedde modus

Draai de image zonder DATABASE_URL en zonder REDIS_URL en hij start zijn eigen PostgreSQL 17 en Redis binnen de container, gebonden aan loopback, met alle gegevens op het /data-volume. Dit herstelt de docker run-ervaring met één commando voor snelle start, homelab en upgrades vanaf 1.x. Het is een gemakspad, geen productiedeployment: draai voor productie de Compose-stack met 3 containers met aparte PostgreSQL en Redis. De ingebedde modus vereist dat de container als root draait en is niet compatibel met runtimes met een willekeurige UID (OpenShift, Kubernetes runAsNonRoot); gebruik daar Compose.

VariabeleStandaardBeschrijving
EMBEDDEDautoAutomatisch ingeschakeld wanneer zowel DATABASE_URL als REDIS_URL niet zijn ingesteld. Stel in op 0 om het uit te schakelen (de app faalt dan direct als er geen externe DATABASE_URL/REDIS_URL is ingesteld, in plaats van stilletjes een database binnen de container te starten).
REDIS_MAXMEMORY512mbGeheugenlimiet voor de ingebedde Redis (alleen in de ingebedde modus). Verlaag deze op hosts met beperkt geheugen, zoals een Raspberry Pi.

Upgraden vanaf 1.x: plaats je oude snapotter.db op /data/snapotter.db in het volume en de ingebedde modus importeert het bij de eerste keer opstarten in de ingebedde PostgreSQL. De import draait één keer; latere opstarts slaan deze over.

Opmerking over telemetrie: de ingebedde modus erft de analytics-standaard van de image net als elke andere configuratie. De gepubliceerde image wordt geleverd met analytics aan; bouw met --build-arg SNAPOTTER_ANALYTICS=off, of gebruik de admin-opt-out in de app, om het uit te schakelen.

Verwerkingslimieten

VariabeleStandaardBeschrijving
MAX_UPLOAD_SIZE_MB100Maximale bestandsgrootte per upload in megabytes. Stel in op 0 voor onbeperkt.
MAX_BATCH_SIZE100Maximaal aantal bestanden in één batchverzoek. Stel in op 0 voor onbeperkt.
CONCURRENT_JOBS0 (auto)Aantal batchtaken dat parallel draait. Stel in op 0 om automatisch te detecteren op basis van beschikbare CPU-cores.
MAX_MEGAPIXELS0 (onbeperkt)Maximaal toegestane beeldresolutie in megapixels. Stel in op 0 voor onbeperkt.
MAX_WORKER_THREADS0 (auto)Maximaal aantal worker-threads voor beeldverwerking. Stel in op 0 om automatisch te detecteren op basis van beschikbare CPU-cores.
PROCESSING_TIMEOUT_S0 (geen limiet)Maximale verwerkingstijd per verzoek in seconden. Stel in op 0 voor geen timeout.
MAX_PIPELINE_STEPS20Maximaal aantal stappen in een pijplijn. Stel in op 0 voor geen limiet.
MAX_CANVAS_PIXELS0 (geen limiet)Maximale canvasgrootte in pixels voor uitvoerafbeeldingen. Stel in op 0 voor geen limiet.
MAX_SVG_SIZE_MB0 (onbeperkt)Maximale SVG-bestandsgrootte in megabytes. Stel in op 0 voor onbeperkt.
MAX_SPLIT_GRID100Maximale rasterdimensie voor de tool om afbeeldingen te splitsen.
MAX_PDF_PAGES0 (onbeperkt)Maximaal aantal PDF-pagina's voor PDF-naar-image-conversie. Stel in op 0 voor onbeperkt.

Opschoning

VariabeleStandaardBeschrijving
FILE_MAX_AGE_HOURS72Hoe lang niet-opgeslagen verwerkingsresultaten (ruwe uploads en tooluitvoer) worden bewaard vóór automatische verwijdering. Bestanden die je expliciet opslaat in de Files-bibliotheek worden niet beïnvloed en blijven bestaan totdat je ze verwijdert.
CLEANUP_INTERVAL_MINUTES60Hoe vaak de opschoontaak draait.

Weergave

VariabeleStandaardBeschrijving
DEFAULT_THEMElightStandaardthema voor nieuwe sessies. light of dark.
DEFAULT_LOCALEenStandaardtaal van de interface.
DEFAULT_TOOL_VIEWsidebarStandaard toollay-out. sidebar of fullscreen.

Docker-permissies

VariabeleStandaardBeschrijving
PUID999Draai het containerproces als deze UID. Stel in om overeen te komen met je hostgebruiker voor bind mounts (id -u).
PGID999Draai het containerproces als deze GID. Stel in om overeen te komen met je hostgroep voor bind mounts (id -g).

Docker-voorbeeld

yaml
services:
  SnapOtter:
    image: snapotter/snapotter:latest
    ports:
      - "1349:1349"
    volumes:
      - SnapOtter-data:/data
      - SnapOtter-workspace:/tmp/workspace
    environment:
      - AUTH_ENABLED=true
      - DEFAULT_USERNAME=admin
      - DEFAULT_PASSWORD=changeme
      - DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
      - REDIS_URL=redis://redis:6379
      - MAX_UPLOAD_SIZE_MB=200
      - CONCURRENT_JOBS=4
      - FILE_MAX_AGE_HOURS=12
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    restart: unless-stopped

  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_USER: snapotter
      POSTGRES_PASSWORD: snapotter
      POSTGRES_DB: snapotter
    volumes:
      - SnapOtter-pgdata:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U snapotter"]
      interval: 10s
      timeout: 5s
      retries: 12

  redis:
    image: redis:8-alpine
    command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
    volumes:
      - SnapOtter-redisdata:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 12

volumes:
  SnapOtter-data:
  SnapOtter-workspace:
  SnapOtter-pgdata:
  SnapOtter-redisdata:

Volumes

De Docker Compose-stack gebruikt vier volumes:

  • /data (app) - AI-modellen, Python-venv en gebruikersbestanden. Koppel dit om geüploade bestanden en geïnstalleerde AI-bundels te behouden bij herstarts.
  • /tmp/workspace (app) - Tijdelijke opslag voor bestanden die worden verwerkt. Dit mag vluchtig zijn, maar het koppelen ervan voorkomt dat de beschrijfbare laag van de container volloopt.
  • SnapOtter-pgdata (postgres) - PostgreSQL-datamap. Deze bevat alle relationele gegevens (gebruikers, instellingen, pijplijnen, taken, auditlog). Maak een back-up via pg_dump of een volumesnapshot.
  • SnapOtter-redisdata (redis) - Redis append-only-bestand voor duurzame taakwachtrijen.