Jetzt loslegen

Antimatter auf deinem eigenen Server betreiben

Eine Datei, drei Befehle, etwa zehn Minuten: Antimatter mit Datenbank, Dateispeicher und GIF-Dienst, auf jedem Linux-Server mit Docker.

In zehn Minuten einsatzbereit

Du brauchst einen Linux-Server mit Docker und dem Compose-Plugin, mindestens 2 CPU-Kernen und 4 GB Arbeitsspeicher.

1. Compose-Datei herunterladen

$ mkdir antimatter && cd antimatter
$ curl -fsSLO https://antimatter.chat/compose.yaml

2. Konfiguration mit zufälligen Passwörtern anlegen

$ cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
EOF

Setze SITE_URL auf die Adresse, unter der die Nutzer den Server aufrufen, etwa http://192.168.1.20:8065 in einem lokalen Netzwerk.

3. Starten

$ docker compose up -d

Der erste Start dauert ein bis zwei Minuten, während die Datenbank angelegt wird. Öffne dann SITE_URL im Browser und lege dein Konto an: Das erste Konto wird zum Systemadministrator, und die Einrichtung führt dich durch das Anlegen deiner ersten Community.

Mit eigener Domain und HTTPS

Richte einen DNS-Eintrag deiner Domain auf den Server, öffne die Ports 80 und 443 und trage die Domain in .env ein:

$ cat >> .env <<EOF
DOMAIN=chat.example.com
EOF
$ sed -i 's|^SITE_URL=.*|SITE_URL=https://chat.example.com|' .env
$ docker compose --profile https up -d

Caddy holt sich ein Zertifikat von Let's Encrypt und erneuert es selbstständig.

Was läuft

  • antimatter: der Server mit seinen Apps (Notizen, Whiteboards, Sprachkanäle, Anrufe, Umfragen und die übrigen). Er speichert nichts auf der Festplatte: Seine Einstellungen liegen in der Datenbank und seine Dateien im Speicherdienst, sodass sich der Container jederzeit ersetzen lässt.
  • postgres: die Datenbank.
  • files: RustFS, S3-kompatibler Speicher für hochgeladene Dateien.
  • gifs: der GIF- und Sticker-Dienst von Antimatter, mit einem Sticker-Starterpaket.
  • https: Caddy, nur mit dem Profil https.

Datenbank, Speicher und GIF-Dienst liegen in einem privaten Netzwerk, das nur Antimatter erreicht.

Bleibt die GIF-Auswahl leer, öffne Systemkonsole › Plugins › GIFs und setze die Dienst-URL auf http://gifs:8080/v2 und den API-Schlüssel auf den Wert von GIFS_API_KEY aus deiner .env.

Updates und Backups

# auf die neuesten Images aktualisieren
$ docker compose pull && docker compose up -d
# Datenbank sichern
$ docker compose exec postgres pg_dump -U antimatter antimatter > antimatter.sql

Sichere auch das Volume files oder repliziere den Speicher mit einem beliebigen S3-Tool. Für ein Setup mit nginx und eigenen Zertifikaten findest du Produktionsdateien in antimatter-docker.

Mit einem Release-Archiv

  1. Lege eine PostgreSQL-Datenbank und einen Datenbanknutzer an.
  2. Entpacke das Archiv (antimatter-<os>-<arch>.tar.gz), zum Beispiel nach /opt/antimatter, und richte SqlSettings.DataSource in config/config.json (oder die Umgebungsvariable AM_SQLSETTINGS_DATASOURCE) auf die Datenbank.
  3. Starte den Server mit bin/antimatter als Nutzer ohne besondere Rechte und öffne http://localhost:8065. Das erste angelegte Konto wird zum Systemadministrator.

Mit bin/amctl verwaltest du einen laufenden Server über die Kommandozeile (bin/amctl --local direkt auf dem Server, mit ServiceSettings.EnableLocalMode).

Nächste Schritte

  • Anrufe: Öffne den Port für Anrufe (standardmäßig UDP und TCP 8443), damit Audio und Video den Server erreichen.
  • E-Mail: Richte SMTP für Einladungen und Benachrichtigungen ein.
  • KI: Füge in den Einstellungen der Agenten ein Modell hinzu; jede OpenAI-kompatible API funktioniert, auch ein Server, den du selbst betreibst.
  • Sprache und Übersetzung: Verbinde Anruftranskription, Vorlesen und automatische Übersetzung mit selbst betriebenen Modellen für Spracherkennung, Sprachausgabe und Übersetzung.