Storage backends
Sentinel works with six backends out of the box. SQLite is the default, zero setup. Switch to anything else with one config line.
| Backend | When to use |
|---|---|
| SQLite | Default. Embedded, single file. Perfect for solo servers and small teams. |
| H2 | Embedded alternative when SQLite is restricted on your host. |
| MySQL | Production grade. Recommended for servers with 50+ daily players. |
| MariaDB | Drop-in for MySQL. Fully supported. |
| PostgreSQL | Modern, fast, JSON-friendly. |
| MongoDB | NoSQL backend. Sentinel mirrors relational data into the embedded SQLite store as a transition path while v1.1 finishes the native Mongo DAOs. |
Switching backends
One line in config.yml:
storage:
type: "mysql" # change this
remote:
host: "127.0.0.1"
port: 3306
database: "sentinel"
user: "sentinel"
password: "your-password"
Then restart the server. Sentinel runs the schema migrations against the new backend on first boot.
Switching backends does not copy your existing data. If you want to keep your punishments, staff, and audit log, export from the old backend and import into the new one before switching, or stay on the same backend and rely on Sentinel's automatic backups for data continuity.
Migrations
Sentinel tracks its schema version in a schema_version
table. Every plugin update applies missing steps idempotently —
your data carries forward without intervention.
Backups
For SQLite, Sentinel uses VACUUM INTO to take consistent
snapshots into plugins/NexoraSentinel/backups/. For other
backends, use your DB's native dump tool. Backups appear in the
dashboard's Backups page where you can restore in one click.