🇪🇺 AGPL-3.0 · Self-Hosted · Matrix

The Matrix client with
organized spaces · persistent voice · forum channels

Atrio is a self-hosted, open-source Matrix client. Built for organizations that need more than flat chat rooms — and don't want to depend on proprietary cloud services.

Matrix Protocol LiveKit Voice AGPL-3.0 Self-Hosted Docker Compose
What's working

Built and running

Atrio is in active hardening — these features are implemented and working in the current codebase.

💬

Spaces & Channels

Three-level hierarchy: spaces contain text, voice, and forum channels. Full message history with threads and reactions.

🎤

Voice & Video (LiveKit)

Persistent voice channels with multi-participant video, screen sharing, device selection, and voice reactions. Self-hosted WebRTC.

💌

Direct Messages

1:1 and group DMs. Encrypted by default using matrix-sdk-crypto-wasm.

📋

Forum Channels

Channels configured as forums — posts with tags, sorting, filtering, and threaded replies. Not available in Element.

🛡️

Role-Based Access Control

Custom bitflag permission system with per-channel overrides. Roles with position, color, and hoist. Goes beyond Matrix power levels.

🔐

End-to-End Encryption

DMs and message channels encrypted by default using Rust-based matrix-sdk-crypto-wasm. Key backup and cross-device verification are on the roadmap.

🔑

OIDC Single Sign-On

Keycloak-based SSO — one institutional login for the full deployment.

🗓️

Calendar (per-server)

Month/week/day views, event CRUD, recurring events. CalDAV sync is on the roadmap.

📣

Notifications

Per-room settings, DND mode, keyword alerts, web push via VAPID service worker.

📊

Polls

Create polls in any channel. Vote and see live results in the timeline.

🔍

Audit Log

Administrative actions logged per space — role changes, kicks, bans, channel edits, invites. Not in Element.

🌐

Internationalization

English, German, French, Spanish. Browser language auto-detection.

Structure

Built for how organizations actually work

Atrio maps to real organizational structures — departments, teams, roles, and access levels — not just flat chat rooms.

Space

A Space maps to a department, school, team, or organization. Each Space has its own channels, members, roles, and settings. Access is controlled via Matrix room join rules on the homeserver.

e.g. Engineering Dept, School IT, City Administration

Channels

Three channel types within a Space: Text for async discussion, Voice for persistent audio/video rooms, and Forum for structured posts with tags and threads.

e.g. #announcements, Meeting Room 1, Knowledge Base

Roles & Permissions

Custom roles with granular permission flags — post, invite, moderate, manage channels, administer. Overridable per channel. Role changes, kicks, bans, and channel edits are recorded in the audit log.

e.g. Admin, Teacher, Student, Guest
Example deployment: A university runs one Synapse instance with separate Spaces per faculty. Staff log in via Keycloak SSO. Each faculty's channels are access-controlled via Matrix room join rules. Administrators see an audit trail of role changes, kicks, and channel edits.
What's next

Roadmap

Current focus: async and performance hardening, UI/UX polish. These features are planned but not yet implemented.

📁 Nextcloud File Integration

Browse and share files from a connected Nextcloud instance inside Atrio rooms. Folder permissions tied to Matrix room membership.

📅 Calendar Sync via ICS

Subscribe to ICS feeds from Nextcloud Calendar, school timetable systems, or any CalDAV server. Sync events into the Atrio calendar.

🔑 E2EE Key Backup

Secure key backup (SSSS) and cross-device verification flow, so encrypted messages are accessible on new devices.

🌐 Matrix Spec Contributions

MSC proposals for file provider rooms and organizational DM scoping — contributing reusable infrastructure to the Matrix ecosystem.

Hardening phase. Atrio is not yet recommended for production deployments. We're stabilizing async patterns, fixing performance issues in the chat timeline, and improving the E2E test suite. The codebase is functional and deployable — we're making it reliable.
Built on Matrix

Open protocol, not a platform

Matrix is a published open standard for real-time communication. It's used by the German federal government, France's La Suite Numérique, and dozens of European public administrations.

Federated. Organizations run their own homeservers and can communicate across them.

Interoperable. Any Matrix client — Element, Cinny, FluffyChat — connects to the same homeserver.

Open source. Protocol and server implementations are fully auditable.

Self-hosted deployment
Synapse (Matrix homeserver)
LiveKit (voice/video)
Keycloak (SSO)
PostgreSQL + Redis
Traefik (reverse proxy + TLS)
One docker compose up — Traefik handles certificates automatically.
Open Source

AGPL-3.0. No exceptions.

Every line of code is public. You can read it, deploy it, and contribute to it.

⚖️

AGPL-3.0

Strong copyleft. Anyone who modifies and deploys must share the changes.

🏠

Self-Hosted

Run on your own infrastructure. No data leaves your server.

🔧

Codeberg

Development is public. Issues, milestones, and decisions are visible.

🤝

Upstream First

Protocol improvements are proposed as Matrix Spec Changes, not kept private.

Follow development

Atrio is in active development on Codeberg. Watch the repository or open an issue.