Configuration

Sentinel ships a small config.yml for bootstrap settings. Day-to-day toggles live in the dashboard so you don't have to restart the server every time you change something.

What lives in config.yml

The bootstrap settings: anything Sentinel needs before the dashboard is up. Web bind, port, storage backend, defaults for new accounts. Everything else (server name, themes, retention, watchers, recipes, custom pages) is editable from the dashboard.

Web server

web:
  bind: "0.0.0.0"
  port: 8766
  public-url: ""
  auto-open: false
  • bind: 0.0.0.0 for LAN/WAN, 127.0.0.1 to keep it local-only.
  • port: 8766 by default to avoid clashing with NexoraSMP's 8765.
  • public-url: set this if you proxy via a domain so chat links use the right URL.

Authentication

auth:
  session-days: 14
  pairing-code-minutes: 5
  require-2fa: false
  lockout-threshold: 6
  lockout-minutes: 15

Storage backend

One line picks the database. Full details on the storage page.

storage:
  type: "sqlite"  # sqlite | h2 | mysql | mariadb | postgres | mongodb
  pool: { min: 2, max: 8 }
  sqlite: { file: "sentinel.db" }
  remote:
    host: "127.0.0.1"
    port: 3306
    database: "sentinel"
    user: "sentinel"
    password: ""
  mongodb:
    uri: "mongodb://127.0.0.1:27017"
    database: "sentinel"

Activity stream

activity:
  broadcast-joins: true
  track-chat: true
  chat-history-size: 500
  activity-history-size: 200

Themes

themes:
  default: "sentinel"  # sentinel | eclipse | aurora | nebula | matrix | solar | daylight | contrast
  allowed: []          # empty = all themes available; or whitelist a subset

Punishments

punishments:
  defaults:
    mute: "30m"
    tempban: "1d"
  console-anonymous: false

Inbox

inbox:
  auto-priority-active-punishments: 2
  ticket-sla:
    first-response: 240   # minutes
    resolution: 1440

Inventory snapshots

snapshots:
  interval-minutes: 5      # how often online players are snapshotted
  retention-days: 14       # snapshots older than this are pruned

Backups

backups:
  every-hours: 24          # auto-backup the datastore every N hours
  keep: 14                 # keep this many backups, prune older

Advanced

advanced:
  trust-forwarded-for: false  # honor X-Forwarded-For from a reverse proxy
  audit-retention-days: 365   # 0 = forever
  log-requests: false