Selbst hosten
Golem Docs auf Ihrem eigenen Server.
Golem Docs ist kostenlos und braucht gar keinen Server. Ein Server bringt Synchronisierung zwischen Geräten, Freigabe und gemeinsames Bearbeiten in Echtzeit. golemdocs.com betreibt einen für 3 $ im Monat, oder Sie betreiben Ihren eigenen in Ihrem eigenen Cloudflare-Konto, und die Dateien und Konten gehören Ihnen.
So funktioniert es
Der Server ist ein einziger Cloudflare Worker. Er liefert auch die App aus, Ihre Adresse wird also für die Personen, die Sie hereinlassen, zu Golem Docs. Alles liegt in vier Cloudflare-Produkten, alle in Ihrem Konto:
| Workers | Die Dateien der App und die API, die Personen anmeldet und ihre Dokumente aufbewahrt. |
|---|---|
| D1 | Eine Datenbank: Konten, Sitzungen, Freigaben und die Liste der Dokumente und Ordner jeder Person. |
| R2 | Die Dokumente selbst, ihre Bilder und ihre früheren Versionen. |
| Durable Objects | Ein Raum für jedes Dokument, während Personen es gemeinsam bearbeiten. |
Vorerst läuft es nur bei Cloudflare. Wenn Sie es anderswo betreiben möchten, auf Ihrem eigenen Computer oder bei einem anderen Anbieter, schreiben Sie mir, und ich arbeite einen Plan aus, wie es ohne Cloudflare läuft.
Was es kostet
Für einen Haushalt kann es nichts kosten. Der kostenlose Tarif von Cloudflare umfasst 100.000 Anfragen am Tag und 10 GB Dateispeicher; darüber kostet Speicher 0,015 $ pro GB und Monat, 100 GB also etwa 1,35 $. Der kostenlose Tarif erlaubt pro Anfrage nur wenig Rechenzeit, lange Dokumente brauchen daher womöglich den Tarif Workers Paid: 5 $ im Monat, mit viel höheren Grenzen. Die aktuellen Zahlen stehen in den Preisen von Cloudflare.
Was Sie brauchen
- Ein Cloudflare-Konto. Eine Domain darin ist optional: Ohne eine bekommt Ihr Server eine kostenlose workers.dev-Adresse.
- Einen Computer mit Node 22.13 oder neuer und pnpm, zum Einrichten und Aktualisieren. Danach läuft darauf nichts.
- Ein GitHub-Konto, um die Anmelde-App anzulegen. Anmelden mit Google, Microsoft und Apple geht auch.
Einrichten
Es dauert etwa eine halbe Stunde. Jeder Befehl läuft in einem Terminal, in dem Ordner, in den Sie den Code laden.
1. Code holen und bei Cloudflare anmelden
Das lädt Golem Docs herunter, installiert, was es braucht, und öffnet Ihren Browser, damit es Ihr Cloudflare-Konto verwenden darf.
git clone https://github.com/davidfig/golemdocs.git cd golemdocs pnpm install pnpm --filter @golemdocs/server exec wrangler login
2. Datenbank und Speicher anlegen
Schalten Sie zuerst R2 im Cloudflare-Dashboard ein; Cloudflare fragt dabei eventuell nach einer Zahlungsmethode, auch innerhalb des kostenlosen Kontingents. Dann legt dieser Befehl die Datenbank und den Speicher-Bucket an und zeigt die ID der Datenbank.
pnpm --filter @golemdocs/server cf:setup
3. Konto, Datenbank und Adresse angeben
Kopieren Sie server/wrangler.local.example.json nach server/wrangler.local.json und füllen Sie es aus: Ihre Cloudflare-Konto-ID, die Datenbank-ID aus Schritt 2 und Ihre Domain. Schreiben Sie workers.dev als Domain, um stattdessen die kostenlose Adresse zu verwenden.
{
"ACCOUNT_ID": "…",
"DIRECTORY_ID": "…",
"DIRECTORY_DEV_ID": "",
"DOMAIN": "docs.example.com"
}
4. Tabellen anlegen und online stellen
Der zweite Befehl baut die App, lädt sie mit dem Server hoch und zeigt die Adresse, unter der sie erreichbar ist.
pnpm --filter @golemdocs/server cf:migrate pnpm --filter @golemdocs/server deploy:prod
5. Eine Anmelde-App anlegen
Öffnen Sie auf GitHub Settings › Developer settings › OAuth Apps › New OAuth App. Geben Sie die Adresse Ihres Servers an und https://<Ihre Adresse>/api/auth/callback/github als Callback-URL. Erzeugen Sie dann ein Client Secret.
6. Festlegen, wer sich anmelden darf
Jeder Befehl fragt nach einem Wert. Führen Sie sie im Ordner server aus.
cd server pnpm exec wrangler secret put SINGLE_DATABASE --env="" pnpm exec wrangler secret put ALLOWED_EMAILS --env="" pnpm exec wrangler secret put ADMIN_EMAILS --env="" pnpm exec wrangler secret put GITHUB_CLIENT_ID --env="" pnpm exec wrangler secret put GITHUB_CLIENT_SECRET --env=""
SINGLE_DATABASE | true: Die Dokumentlisten aller liegen in der einen Datenbank, also braucht der Server kein Cloudflare-API-Token. |
|---|---|
ALLOWED_EMAILS | Wer sich anmelden darf: ganze Adressen (me@example.com) oder eine ganze Domain (@example.com), durch Kommas getrennt. Setzen Sie es, sonst kann sich jeder, der Ihre Adresse findet, registrieren und auf Ihre Rechnung Dateien speichern. |
ADMIN_EMAILS | Ihre eigene Adresse. Admins können sich immer anmelden und das Feedback lesen, das Personen senden. |
LINK_WEBSITE, LINK_SUPPORT… | Optional: wohin das Hilfe-Menü und das Willkommensdokument statt auf golemdocs.com verlinken. Die ganze Anleitung nennt sie alle. |
7. Anmelden
Öffnen Sie Ihre Adresse und melden Sie sich mit GitHub an. Die Dokumente, die Sie angemeldet erstellen, liegen jetzt auf Ihrem Server, und die Personen auf Ihrer Liste können sie miteinander teilen.
Auf dem neuesten Stand bleiben
Wenn eine neue Version erscheint, holen Sie sie und stellen Sie sie auf dieselbe Weise online. Lesen Sie zuerst das Journal: Eine Version, die ändert, wie Dateien oder Konten gespeichert werden, sagt es dort.
git pull pnpm install pnpm --filter @golemdocs/server cf:migrate pnpm --filter @golemdocs/server deploy:prod
Was anders ist als bei golemdocs.com
- Verwenden Sie es im Browser. Die Desktop- und Smartphone-Apps verbinden sich vorerst nur mit golemdocs.com.
- Es wird nichts verkauft. Alle, die Sie hereinlassen, bekommen Synchronisierung, Freigabe und gemeinsames Bearbeiten.
- Personen auf Ihrem Server können untereinander teilen, aber nicht mit Konten auf golemdocs.com oder anderen Servern.
- Sie kümmern sich darum: um die Updates und um Sicherungen der Datenbank und des Speichers.
App und Server stehen unter der AGPL-3.0: Wenn Sie eine geänderte Version für andere betreiben, bieten Sie ihnen den Quellcode an. Name und Logo von Golem Docs bleiben bei diesem Projekt.