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.0for LAN/WAN,127.0.0.1to 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