Running it
Eight commands cover everything. They work the same whether you installed with Docker or as systemd services.
The commands
| Command | What it does |
|---|---|
sovrgnnet status | Is everything healthy? |
sovrgnnet url | What address do people use? |
sovrgnnet start | Turn it on |
sovrgnnet stop | Turn it off — your data stays |
sovrgnnet restart | Off and on again |
sovrgnnet logs | Watch what it's doing |
sovrgnnet backup | Save a copy of everything |
sovrgnnet update | Get the latest version |
On the Docker install, run them from inside the repository folder as
./sovrgnnet. On the LXC install they're on your PATH from
anywhere.
Backups
sovrgnnet backup writes a single archive into
backups/ containing four things: a dump of the database
(accounts, servers, channels, messages), the Matrix homeserver's own
store, the actual bytes of every shared file, and your settings.
Nightly, at 3am:
crontab -e
# then add:
0 3 * * * cd /path/to/sovrgnnet && ./sovrgnnet backup >/dev/null 2>&1
Restoring
On the same machine or a brand new one, install SOVRGNnet as normal,
put your backup file in backups/, then:
./scripts/restore.sh
It lists what it found, tells you exactly what's about to be
overwritten, and makes you type restore before touching
anything. Test it before you need it — a backup you've never restored
is a hypothesis, not a backup.
Updating
sovrgnnet update
Pulls the latest code, rebuilds, and restarts. Database changes apply themselves — the app brings its own schema up to date on every boot, so there's never a migration command to remember.
Take a backup first if the instance holds anything you'd miss. It's one command and it costs a minute.
Adding people
Invite links are the way in. A server owner or admin clicks the invite icon and gets a link that works for anyone, including on private servers. Public servers also show up under Discover.
Roles
| Role | Can |
|---|---|
| Owner | Everything, including handing out admin. Can't be removed or demoted by anyone. |
| Admin | Create channels, create invite links, plus everything a moderator can do. |
| Moderator | Delete anyone's messages, remove and ban members. |
| Member | Read, post, edit and delete their own messages, react, share files. |
Two rules the server enforces regardless of what the interface shows: you can only act on someone ranked below you, and you can't grant a role at or above your own. That's what stops two admins removing each other, or a moderator demoting whoever promoted them.
Moderators can delete messages but never edit them. Rewriting what somebody said, under their name, isn't a moderation power worth having.
Removing someone
Remove from server takes them out; they can return through an invite or public discovery. Ban takes them out and keeps them out — recorded both in the app and on the Matrix rooms, so neither route back in works.
When something is red
sovrgnnet status # which piece is unhappy?
sovrgnnet logs # what is it saying?
The app keeps restarting
Almost always the database. The app applies its own migrations at startup and exits deliberately if it can't reach PostgreSQL, so a restart loop usually means the database didn't come up. Check the database service first, then the logs.
Messages send but nobody receives them
That's the Matrix homeserver. On the LXC install:
journalctl -u conduit -n 50. On Docker:
./sovrgnnet logs matrix.
Uploads fail
The IPFS node. Files cap at 50 MB per upload. After an unclean shutdown
IPFS sometimes leaves a stale lock — remove repo.lock from
its data directory and restart.
Starting completely over
On the Docker install, docker compose down -v erases
everything — all accounts, all messages, all files — and then
./install.sh sets it up fresh. There is no undo. Back up
first.