Alojamiento propio

Golem Docs en tu propio servidor.

Golem Docs es gratis y no necesita ningún servidor. Un servidor añade sincronización entre dispositivos, uso compartido y edición en vivo. golemdocs.com tiene uno por 3 $ al mes, o puedes tener el tuyo en tu propia cuenta de Cloudflare, y los archivos y las cuentas son tuyos.

Cómo funciona

El servidor es un único Cloudflare Worker. También sirve la app, así que tu dirección se convierte en Golem Docs para las personas que dejes entrar. Lo guarda todo en cuatro productos de Cloudflare, todos en tu cuenta:

WorkersLos archivos de la app y la API que inicia la sesión de las personas y guarda sus documentos.
D1Una base de datos: cuentas, sesiones, uso compartido y la lista de documentos y carpetas de cada persona.
R2Los documentos en sí, sus imágenes y sus versiones anteriores.
Durable ObjectsUna sala para cada documento mientras varias personas lo editan juntas.

Por ahora solo funciona en Cloudflare. Si quieres alojarlo en otro sitio, en tu propio ordenador o con otro proveedor, escríbeme y prepararé un plan para que funcione sin Cloudflare.

Cuánto cuesta

Para un hogar puede no costar nada. El plan gratuito de Cloudflare incluye 100.000 solicitudes al día y 10 GB de almacenamiento de archivos; a partir de 10 GB, el almacenamiento cuesta 0,015 $ por GB al mes, así que 100 GB salen por unos 1,35 $. El plan gratuito permite poco tiempo de cálculo por solicitud, así que los documentos largos pueden necesitar el plan Workers Paid: 5 $ al mes, con límites mucho más altos. Consulta los precios de Cloudflare para ver las cifras actuales.

Qué necesitas

Configurarlo

Lleva una media hora. Cada comando se ejecuta en una terminal, desde la carpeta a la que descargues el código.

1. Consigue el código e inicia sesión en Cloudflare

Esto descarga Golem Docs, instala lo que necesita y abre tu navegador para que pueda usar tu cuenta de Cloudflare.

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

2. Crea la base de datos y el almacenamiento

Primero activa R2 en el panel de Cloudflare; puede que Cloudflare te pida un método de pago, incluso dentro de la parte gratuita. Después, esto crea la base de datos y el bucket de almacenamiento, y muestra el id de la base de datos.

pnpm --filter @golemdocs/server cf:setup

3. Indica la cuenta, la base de datos y la dirección

Copia server/wrangler.local.example.json a server/wrangler.local.json y rellénalo: el id de tu cuenta de Cloudflare, el id de la base de datos del paso 2 y tu dominio. Escribe workers.dev como dominio para usar la dirección gratuita.

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

4. Crea las tablas y ponlo en línea

El segundo comando compila la app, la sube con el servidor y muestra la dirección en la que está.

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

5. Crea una app de inicio de sesión

En GitHub, abre Settings › Developer settings › OAuth Apps › New OAuth App. Dale la dirección de tu servidor y https://<tu dirección>/api/auth/callback/github como URL de callback. Luego genera un client secret.

6. Decide quién puede iniciar sesión

Cada comando pide un valor. Ejecútalos desde la carpeta 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: la lista de documentos de todos vive en la única base de datos, así que el servidor no necesita un token de la API de Cloudflare.
ALLOWED_EMAILSQuién puede iniciar sesión: direcciones completas (me@example.com) o un dominio entero (@example.com), separados por comas. Configúralo, o cualquiera que encuentre tu dirección podrá registrarse y guardar archivos a tu costa.
ADMIN_EMAILSTu propia dirección. Los administradores siempre pueden iniciar sesión y leer los comentarios que envía la gente.
LINK_WEBSITE, LINK_SUPPORT…Opcional: adónde enlazan el menú Ayuda y el documento de bienvenida, en lugar de golemdocs.com. La guía completa los enumera todos.

7. Inicia sesión

Abre tu dirección e inicia sesión con GitHub. Los documentos que crees con la sesión iniciada se guardan ahora en tu servidor, y las personas de tu lista pueden compartirlos entre sí.

Mantenerlo al día

Cuando salga una versión nueva, consíguela y ponla en línea del mismo modo. Lee antes el Diario: una versión que cambie cómo se guardan los archivos o las cuentas lo dice allí.

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

Qué cambia respecto a golemdocs.com

La app y el servidor están bajo la AGPL-3.0: si ejecutas una versión modificada para otras personas, ofréceles su código fuente. El nombre y el logotipo de Golem Docs se quedan con este proyecto.