Skip to content

SOVRGN

Independent communications infrastructure you operate —

messaging on Matrix, files on IPFS, running on a computer you control.

One command to install.

No domain required, no account with anybody, no landlord.

SOVRGN is open source software by Formicaria.

Matrix + IPFS + Freedom

v0.5.1 alpha — messaging, files, invites, roles, and moderation work; channels can now be end-to-end encrypted, off by default

SOVRGN client — running on your own node

The test

What "sovereign" means here

Not a slogan. A property you can test:

If sovrgnnet.cc disappeared tomorrow, a correctly configured instance keeps running. Its members keep talking, its backups keep restoring, its operator keeps control of the data.

Everything centralized is therefore optional and off by default. The identity service, the instance directory, Cloudflare — none of them are required, and an instance that uses none of them is a complete instance. That constraint shapes the whole architecture rather than sitting in the marketing. Read the manifesto →

Install

Three lines and about ten minutes

On any spare computer — an old laptop, a Raspberry Pi, a mini PC in a closet. The installer generates every password, sets up the database, and tells you where to point your browser.

git clone https://github.com/Formicaria/SOVRGNnet.cc.git sovrgnnet
cd sovrgnnet
./install.sh

It asks one real question: whether this is just for your house, or whether friends should reach it over the internet. Pick the second and you get a public https:// link in about a minute — with no account anywhere and no domain of your own. Full walkthrough →

operator@node — sovrgnnet
$ ./install.sh
 Docker is ready (docker compose)
 Public link, no account needed.
 Settings saved to .env (passwords generated for you)
 Homeserver configured
 The app is running.
SOVRGNnet is live.
  Open   https://your-node.trycloudflare.com

Features

Why run your own?

Every major chat platform rents your community back to you. SOVRGN takes the parts worth keeping — communities, channels, the flow of a good conversation — and puts them on foundations nobody can take away.

Runs on your metal

Docker Compose or plain systemd services — your choice. A homelab node, a Proxmox container, or a small VPS is all it takes. Every infrastructure image is pinned, so two installs a month apart are the same software.

Open protocols underneath

Every message is a Matrix event on your own homeserver. Files are content-addressed on your own IPFS node. Neither is a format we invented, and neither locks you in.

Identity you control

Accounts live in your database, not a third-party auth cloud. Single sign-on exists and is off by default; an instance that never enables it never contacts us at all.

Files without a middleman

Attachments pin to your own IPFS node and stream back through the app with membership checks. No upload service, no dead links, no CIDs leaking outside a channel.

Familiar where it counts

Community rail, channel list, message pane, member list. Invites, roles, reactions, editing. You already know how to use it.

One app, every instance

A native desktop client for Linux, macOS, and Windows. One window holds every instance you're in — your own and your friends' — each signed in separately, credentials in the OS keychain. Everything also works in a browser.

Leaving is a decision, not a loss

Backups carry a manifest and a checksum per component, verified before a restore touches anything. Move an instance to another machine and its identity, rooms, and history come with it.

MIT, end to end

The whole platform is open source. Read it, fork it, run your own instance for your own people.

How it works

A thin layer over boring, proven pieces

SOVRGN owns instance identity, membership, roles, and moderation; Matrix owns message transport; IPFS owns file content. Postgres indexes it all.

01 · A community is a Space

Creating a community creates a Matrix Space on your homeserver; every channel is a room inside it, starting with #general.

02 · The client owns its Matrix session

The app provisions a Matrix account per user, and each client holds its own device-scoped session — syncing directly where the homeserver is reachable, falling back to the instance where it isn't. Encrypted channels keep their keys on your devices, never on the server.

03 · Nothing listens on your router

Public access, when you want it, runs over an outbound-only tunnel. No forwarded ports, no exposed home IP.

04 · Instances negotiate

A client asks any instance what it can do before offering a feature, so an older instance degrades by explaining rather than by breaking. The protocol is versioned separately from the application, so instances upgrade on their own schedule.

The longer version, including what's deliberately not there →

Architecture

Your instance is the center

SOVRGN installs onto one machine you control. That instance speaks Matrix for messaging and IPFS for files, serves the interface to your members and their devices, and — when you decide to — federates outward on your terms.

SOVRGN instance architecture Your instance at the center, connected outward to Matrix for messaging, IPFS for files, the members of your community, the devices they connect from, and — off by default and untested — federation with other instances. SOVRGN INSTANCE your hardware MatrixMessaging IPFSFiles MembersYour community DevicesClients you own FederationOff by default, untested

Every solid edge stays on hardware you own. Federation is the one dashed edge, because it is the one that leaves — and it is off by default and untested.

Protocol

Anyone can write another implementation

Nothing about this codebase's language, framework, or database is normative. What matters is the protocol — and there's a suite that checks whether something speaks it.

pnpm conformance https://any-instance.example

It verifies the descriptor, version compatibility, capability negotiation, health endpoints, and self-consistency — including whether an instance is claiming a security property its architecture can't actually provide. No credentials needed, so it's safe to point at an instance you don't operate. The protocol specification →

Status

Where it stands today

What is built, what is coming, and what to tell the people you run it for.

A channel is plaintext unless somebody turned encryption on. That's the default, and in a plaintext channel messages are readable by whoever administers the instance — which for most operators is only themselves, on their own homeserver. An administrator can permanently encrypt a channel: keys then live on members' devices and the server holds ciphertext it cannot read. Metadata is never encrypted, and none of this makes it Signal. If you run an instance for other people, tell them where it stands.

Also missing today: voice and video, mobile apps, federation between instances (possible, off by default, untested), an instance directory, and session revocation — sessions are stateless and last a year. There has been no independent security audit. This is alpha software written in the open; the threat model and roadmap state the gaps plainly rather than leaving them to be discovered.

The stack

Chosen for longevity and self-hostability, not fashion

Every piece is something you could still run, unmodified, in ten years — on hardware you already own.

React 19 tRPC 11 PostgreSQL Drizzle ORM Matrix · Dendrite IPFS · Kubo Tauri 2 (desktop) Docker Compose systemd (no-Docker install) Cloudflare Tunnel (optional)