Guilda WorkDevelopers

DESPLIEGUE

Autoalojamiento

Despliega tu propia instancia en un VPS con Docker + Caddy.

El modo hospedado añade multi-tenant real, SSO (Ory Kratos/Hydra) y el catálogo completo de 59 herramientas conectadas del stack Docker — todo autoalojado, sin servicios de terceros de por medio.

Elegir proveedor

ProveedorPrecio aprox./mesNotas
Hetzner Cloud (CX22)~4,5 €Mejor relación calidad/precio, datacenters en Alemania/Finlandia — recomendación por defecto.
Contabo~4-5 €Más RAM/disco por el precio, rendimiento algo más variable.
DigitalOcean~6 $Muy bien documentado, buena opción si es tu primer VPS.
Oracle Cloud «Always Free»Gratis4 núcleos ARM + 24GB RAM gratis para siempre, pero el alta de cuenta es errática.

Para el uso de esta app (un solo backend Flask + SQLite, tráfico bajo) sobra la oferta más pequeña de cualquiera: 1 vCPU / 1-2GB RAM, Ubuntu 22.04 o 24.04 LTS.

Piezas del stack

PiezaRol
docker-compose.ymlTodos los servicios conectados — una imagen oficial por herramienta, sin forks propios.
CaddyÚnico punto de entrada real desde internet, HTTPS automático (Let's Encrypt), proxy inverso a cada servicio por subdominio.
Ory Kratos / HydraIdentidad (login/registro) y proveedor OAuth2 para el SSO de las herramientas que lo soportan, y para el conector MCP remoto.
OllamaModelo de embeddings local, usado por la búsqueda semántica (buscar_semantico) — ver Búsqueda semántica (RAG).
serve.pyEl proceso de Guilda Work en sí, fuera de Docker, en el mismo host — gestionado por systemd para que arranque solo y se reinicie si muere.
Excepciones explícitas a «todo detrás de Caddy en 443»: SSH, OpenVPN y los puertos de correo real de Stalwart (SMTP/IMAP/POP3) se publican directamente — no son HTTP, Caddy no puede hacerles de proxy.

Acceso y hardening básico

Usuario propio sin privilegios de root para el día a día (con sudo cuando haga falta), cortafuegos limitado a SSH/HTTP/HTTPS, y login SSH solo por clave (nunca por contraseña) una vez confirmado que tu clave ya está copiada al servidor.

bash
adduser guilda
usermod -aG sudo guilda
ufw allow OpenSSH && ufw allow 80 && ufw allow 443 && ufw enable
# Copia tu clave ANTES de desactivar el login por contraseña:
ssh-copy-id -i ~/.ssh/id_ed25519.pub guilda@TU_IP

Hostname sin dominio propio

Sin comprar un dominio todavía, sslip.io da un hostname que resuelve automáticamente a la IP de tu servidor (203.0.113.10203-0-113-10.sslip.io), suficiente para que Caddy pida un certificado real. Cuando compres un dominio, migrar es cuestión de apuntar sus registros DNS a la misma IP y actualizar los orígenes públicos (*_PUBLIC_ORIGIN) en tu .env — el resto del stack no cambia.

Guía completa de despliegue

El paso a paso detallado de cada pieza — variables de entorno completas, orden de arranque, registro de clientes OAuth2, backups, y una sección por cada una de las herramientas conectadas con su modelo de aislamiento documentado (y, cuando aplica, verificado en vivo contra un contenedor real antes de darlo por bueno) — vive en HOSTING.md, en la raíz del repositorio.

El modo hospedado también es lo que activa la búsqueda semántica y las notificaciones salientes — ninguna de las dos depende de un servicio nuevo que desplegar aparte:

Cada aviso de reputación (p. ej. montar correo saliente propio con Stalwart) está documentado explícitamente donde aplica — no es un problema de la integración, es inherente a autoalojar ese tipo de servicio.