Bootnet Chat

SELF-HOSTED MATRIX HOMESERVER // matrix.bootnet.io
[ < RETURN TO PROJECTS ]
:: ABOUT // PROJECT_OVERVIEW

Bootnet Chat is a fully self-hosted, end-to-end encrypted messaging network built on the Matrix protocol. Rather than relying on a third-party service, the entire stack — authentication, messaging, file storage, AI integration, and note sync — runs on a private VPS under our own domain.

Accounts are invite-only and scoped to bootnet.io members. All messages are encrypted in transit and at rest. The server federates with the broader Matrix network, meaning users can communicate with anyone on any homeserver while keeping their data here.

The stack also includes an AI assistant bot for text generation, voice transcription, text-to-speech, and image generation.

:: STACK // INFRASTRUCTURE
HOST Private VPS
REVERSE PROXY Traefik v3 — automatic Let's Encrypt TLS for all subdomains
MATRIX SERVER Synapse (matrix.bootnet.io) — Matrix homeserver, federation enabled
AUTH SERVICE MAS — Matrix Authentication Service, OIDC/OAuth2 delegation
WEB CLIENT Element Web (chat.bootnet.io) — browser Matrix client
AI BOT AI Assistant Bot
DATABASE PostgreSQL — Synapse state, MAS session store
ORCHESTRATION Docker Compose — all services containerized
:: FEATURES // CAPABILITIES

End-to-End Encryption

All rooms use Matrix's built-in E2EE. Keys are device-local; the server never has plaintext access to message content.

Any Client

Connect with Element Web, Element X (iOS/Android), or any Matrix-compatible client. OIDC login flows handled by MAS.

AI Assistant

Invite AI to any unencrypted room. Ask questions, generate images, transcribe voice messages, or get TTS audio responses.

Voice & Image AI

Speech-to-text, text-to-speech, and image generation via AI providers.

Federation

The server is federated with the Matrix network. Users here can DM or join rooms on any other homeserver (matrix.org, etc).

:: ACCESS_POINTS // ENDPOINTS

All services are invite-only. Accounts must be provisioned before login is possible.

:: SETUP_NOTES // HOW IT FITS TOGETHER

The whole stack is defined in a single docker-compose.yml. Traefik handles TLS termination for every subdomain automatically via Let's Encrypt ACME. Synapse delegates all authentication to MAS, which handles account creation, device sessions, and OIDC token issuance — meaning login is managed externally to Synapse and accounts can be created through the MAS admin interface without touching Synapse's database directly.

The AI assistant connects to the homeserver as a regular Matrix user with an access token. It reads from a static config file defining provider agents for text generation, speech-to-text, TTS, and image generation.

AI assistant quick reference:

# Invite bot to any room, then:
!bai help                        # show commands
!bai ask what is the Matrix?     # text generation
!bai image a neon city at dusk   # image generation
!bai speak the servers are alive # text-to-speech

# Send a voice message in-room to trigger automatic transcription

END_OF_FILE // EOF