BitDM ← Zurück← Back
Betrieb Operations

Den Server selbst betreibenRun the server yourself

BitDM braucht zwei Dienste, einen Relay und ein Zwischenlager. Beide gehören zum Quelltext und lassen sich auf einer eigenen Maschine betreiben. Stand: 29. Juli 2026. BitDM needs two services, a relay and a blob store. Both are part of the source code, and you can run them on your own machine. Last updated: 29 July 2026.

VorabRead this first

Alle Beteiligten brauchen denselben Relay. Zwischen Instanzen gibt es keine Weiterleitung, zwei Leute auf verschiedenen Servern können sich deshalb nicht schreiben. Steigst du um, muss die Gegenseite mit.

Everyone involved needs the same relay. There's no federation between instances, so two people on different servers can't message each other. If you switch, the people you write to have to switch with you.

Wir haben das nach oben gestellt, weil es bei dieser Einstellung am häufigsten enttäuscht. We put this at the top because it's the most common letdown with this setting.

Ein BefehlOne command

Auf einem frischen Debian oder Ubuntu reicht dieser Befehl. Das Skript fragt nach dem Namen und einer E-Mail-Adresse, prüft, ob der Name auf die Maschine zeigt, installiert, was fehlt, und richtet Zertifikat, nginx und den Dienst ein. Eine Konfigurationsdatei musst du nicht anfassen. On a fresh Debian or Ubuntu install, that's all you need. The script asks for the domain and an email address, checks that the domain points at this machine, installs whatever is missing, and sets up the certificate, nginx and the service. You don't have to touch a config file.

curl -fsSL https://bitdm.net/install.sh | sudo bash

Wer ein ungelesenes Skript direkt in die Shell leitet, muss ihm blind vertrauen, und Misstrauen ist da berechtigt. Wenn du es vorher lesen willst: Piping a script you haven't read into a shell means trusting it blindly, and you're right to be wary of that. To read it first:

curl -fsSLO https://bitdm.net/install.sh
less install.sh && sudo bash install.sh

Du kannst das Skript gefahrlos mehrmals ausführen. Bestehende Dienste lässt es in Ruhe, und es öffnet keine Ports außer 80 und 443, die nginx ohnehin belegt. It's safe to run it again. It leaves existing services alone and opens no ports except 80 and 443, which nginx already uses.

Wozu das gut istWhat this buys you

Die Inhalte sind Ende-zu-Ende verschlüsselt und für keinen Server lesbar, auch nicht für unseren. Die Verkehrsdaten sieht der Relay aber zwangsläufig, also wer wann online war und wie viele Umschläge welcher Größe in welche Richtung gingen. Betreibst du ihn selbst, gibst du diese Daten an niemanden weiter. Message content is end-to-end encrypted, and no server can read it, ours included. The relay can't avoid seeing traffic data, though: who was online when, and how many envelopes of what size went which way. Run it yourself and you don't share that with anyone.

Was du brauchstWhat you need

Die technischen Schritte samt Installationsskript stehen in deploy/README.md im Quelltext. Hier geht es eher um die Entscheidungen, die du triffst. The technical steps, along with an install script, are in deploy/README.md in the source. This page is more about the decisions you'll make.

Das Zwischenlager nicht vergessenDon't forget the blob store

Anhänge laufen nicht über den Relay. Sie landen verschlüsselt in einem zweiten, getrennten Zwischenlager, und der Relay transportiert nur die Angaben zum Abholen. Setzt du den Relay auf und vergisst das Lager, schlagen Anhänge fehl, und zwar mit einer Meldung, die nach einem Netzproblem aussieht. Attachments do not go through the relay. They're stored encrypted in a second, separate blob store, and the relay only carries what's needed to fetch them. If you set up the relay but forget the store, attachments fail with an error that looks like a network problem.

In der App eintragenPoint the app at it

Einstellungen › Empfangen › Serveradresse. Dort trägst du den Relay mit wss:// ein, das Lager daneben. Wenn du das Feld leerst und übernimmst, bist du jederzeit wieder bei der Voreinstellung. Settings › Receiving › server address. Enter the relay there as a wss:// address, with the store next to it. To go back to the default at any point, clear the field and apply.

http:// und ws:// lässt die App nur im eigenen Netz zu. Ohne TLS kann jeder auf dem Weg mitlesen, wer wann mit wem spricht, und genau das willst du ja vermeiden. The app accepts http:// and ws:// only on your own network. Without TLS, anyone along the way can see who talks to whom and when, which is what you set out to avoid.

Die UmzugsfalleThe migration trap

Die Schlüssel liegen auf den Geräten und nicht auf dem Server, deshalb laufen bestehende Unterhaltungen nach einem Wechsel weiter. Ein neuer Kontakt findet dich aber nur, wenn er beim selben Relay ist. Sprich einen Umzug also mit allen ab, mit denen du noch schreiben willst. Your keys are on your devices, not on the server, so existing conversations carry on after a switch. A new contact can only find you if they're on the same relay, though. Before you move, check with everyone you still want to message.

Warum wir das anbieten müssenWhy we owe you this

BitDM steht unter der AGPL-3.0, und deren Netzwerk-Klausel verlangt, dass jeder, der mit dem Server spricht, an dessen Quelltext kommt. Außerdem darf ein Messenger, der Metadaten vermeiden will, dich nicht praktisch an einen fremden Server binden, sonst musst du dessen Betreiber doch wieder vertrauen. BitDM is licensed under AGPL-3.0, whose network clause says anyone who talks to the server has to be able to get its source. And a messenger meant to avoid metadata shouldn't tie you to someone else's server in practice, because then you're back to trusting whoever runs it.