Server

Top-level server: block. Controls the HTTP listener — JSON API, the bundled web UI, authentication, permissions, and runtime limits.

The HTTP listener has two sub-blocks of its own:

When server.enabled: false and server.ui.enabled: true snapr refuses to start — the UI cannot be served without a listener.

Fields

FieldTypeDefaultNotes
enabledbooltrueturn the HTTP listener off to run snapr as a scheduler-only daemon
addressstring0.0.0.0:8080listen address (host:port). Required when enabled: true.
secretstringJWT signing secret. Use env: for production.
defaultLanguageen|ruenUI default language
authobjectsee Authentication
logLimitsobjectsee Log limits
permissionsobjectsee Permissions
uiobjectsee UI

Scheduler-only mode

Set server.enabled: false to drop the HTTP listener entirely. Jobs still execute on their cron schedules and write logs to the host. Useful for:

  • minimal sidecars in a controlled environment
  • machines where the listener would be unreachable anyway
  • locking out manual runs and downloads at the binary level
server:
  enabled: false

jobs:
  - name: nightly
    schedule: '0 2 * * *'
    # ...

Example

server:
  enabled: true
  address: '0.0.0.0:8080'
  secret: env:SNAPR_JWT_SECRET
  defaultLanguage: en
  auth:
    enabled: true
    username: admin
    password: env:SNAPR_ADMIN_PASSWORD
    tokenExpiration: 60
  permissions:
    allowBackupDownload: true
    allowManualRun: true
    showConfig: true
  ui:
    enabled: true