Server tuo

Golem Docs su un tuo server.

Golem Docs è gratuito e non ha bisogno di alcun server. Un server aggiunge la sincronizzazione tra dispositivi, la condivisione e la modifica in tempo reale. golemdocs.com ne gestisce uno per 3 $ al mese, oppure puoi gestire il tuo sul tuo account Cloudflare, e i file e gli account sono tuoi.

Come funziona

Il server è un solo Cloudflare Worker. Serve anche l’app, quindi il tuo indirizzo diventa Golem Docs per le persone che fai entrare. Tiene tutto in quattro prodotti Cloudflare, tutti sul tuo account:

WorkersI file dell’app e l’API che fa accedere le persone e conserva i loro documenti.
D1Un database: account, sessioni, condivisioni e l’elenco di documenti e cartelle di ogni persona.
R2I documenti stessi, le loro immagini e le loro versioni precedenti.
Durable ObjectsUna stanza per ogni documento mentre più persone lo modificano insieme.

Per ora funziona solo su Cloudflare. Se vuoi ospitarlo altrove, sul tuo computer o presso un altro fornitore, scrivimi e preparerò un piano per farlo funzionare senza Cloudflare.

Quanto costa

Per una famiglia può non costare nulla. Il piano gratuito di Cloudflare include 100.000 richieste al giorno e 10 GB di spazio per i file; oltre i 10 GB lo spazio costa 0,015 $ per GB al mese, quindi 100 GB costano circa 1,35 $. Il piano gratuito concede poco tempo di calcolo per richiesta, quindi i documenti lunghi potrebbero richiedere il piano Workers Paid: 5 $ al mese, con limiti molto più alti. Controlla i prezzi di Cloudflare per le cifre di oggi.

Cosa ti serve

Configurarlo

Ci vuole circa mezz’ora. Ogni comando si esegue in un terminale, dalla cartella in cui scarichi il codice.

1. Scarica il codice e accedi a Cloudflare

Questo scarica Golem Docs, installa ciò che gli serve e apre il browser perché possa usare il tuo account Cloudflare.

git clone https://github.com/davidfig/golemdocs.git
cd golemdocs
pnpm install
pnpm --filter @golemdocs/server exec wrangler login

2. Crea il database e lo spazio di archiviazione

Prima attiva R2 nella dashboard di Cloudflare; Cloudflare potrebbe chiedere un metodo di pagamento, anche entro la quota gratuita. Poi questo comando crea il database e il bucket di archiviazione, e mostra l’id del database.

pnpm --filter @golemdocs/server cf:setup

3. Indica account, database e indirizzo

Copia server/wrangler.local.example.json in server/wrangler.local.json e compilalo: l’id del tuo account Cloudflare, l’id del database del passo 2 e il tuo dominio. Scrivi workers.dev come dominio per usare l’indirizzo gratuito.

{
  "ACCOUNT_ID": "…",
  "DIRECTORY_ID": "…",
  "DIRECTORY_DEV_ID": "",
  "DOMAIN": "docs.example.com"
}

4. Crea le tabelle e mettilo online

Il secondo comando compila l’app, la carica con il server e mostra l’indirizzo a cui si trova.

pnpm --filter @golemdocs/server cf:migrate
pnpm --filter @golemdocs/server deploy:prod

5. Crea un’app di accesso

Su GitHub, apri Settings › Developer settings › OAuth Apps › New OAuth App. Indica l’indirizzo del tuo server e https://<il tuo indirizzo>/api/auth/callback/github come URL di callback. Poi genera un client secret.

6. Decidi chi può accedere

Ogni comando chiede un valore. Eseguili dalla cartella server.

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_DATABASEtrue: l’elenco dei documenti di tutti sta nell’unico database, così il server non ha bisogno di un token API di Cloudflare.
ALLOWED_EMAILSChi può accedere: indirizzi interi (me@example.com) o un intero dominio (@example.com), separati da virgole. Impostalo, altrimenti chiunque trovi il tuo indirizzo può registrarsi e salvare file a tue spese.
ADMIN_EMAILSIl tuo indirizzo. Gli amministratori possono sempre accedere e leggere i commenti che le persone inviano.
LINK_WEBSITE, LINK_SUPPORT…Facoltativo: dove portano i link del menu Aiuto e del documento di benvenuto, invece di golemdocs.com. La guida completa li elenca tutti.

7. Accedi

Apri il tuo indirizzo e accedi con GitHub. I documenti che crei dopo l’accesso ora stanno sul tuo server, e le persone del tuo elenco possono condividerli tra loro.

Tenerlo aggiornato

Quando esce una nuova versione, scaricala e mettila online allo stesso modo. Leggi prima il Diario: una versione che cambia come vengono salvati file o account lo dice lì.

git pull
pnpm install
pnpm --filter @golemdocs/server cf:migrate
pnpm --filter @golemdocs/server deploy:prod

Cosa cambia rispetto a golemdocs.com

L’app e il server sono sotto AGPL-3.0: se gestisci una versione modificata per altre persone, offri loro il codice sorgente. Il nome e il logo di Golem Docs restano a questo progetto.