Instalar COGO
COGO es un contenedor (o un binario). Las únicas dos cosas que importan: monta un volumen en
/vault para que tus notas sobrevivan a las actualizaciones, y — en un servidor —
define un token.
En tu máquina (local, 2 minutos)
Sección titulada «En tu máquina (local, 2 minutos)»Con Docker Desktop instalado:
docker run -d --name cogo -p 127.0.0.1:8095:8080 \ -v cogo-vault:/vault -e COGO_ALLOW_INSECURE=1 \ ghcr.io/diegoparras/cogoAbre http://localhost:8095. Listo — ves tu vault pintado por confianza, capturas y editas notas, todo desde el navegador.
-p 127.0.0.1:8095:8080lo publica solo en tu máquina — nadie en tu red lo ve.-v cogo-vault:/vaultguarda tus notas en un volumen para que no se borren.-e COGO_ALLOW_INSECURE=1significa “sé que es local, no me pidas token”. Solo local.
Sin Docker — un único binario estático, sin runtime:
cogo serve -http 127.0.0.1:8080 -vault ./vaultEn un servidor con EasyPanel (recomendado)
Sección titulada «En un servidor con EasyPanel (recomendado)»EasyPanel no se lleva bien con docker-compose — no uses el tipo “Compose”. Usa el tipo App, que es más simple y agrega HTTPS por su cuenta.
- En tu proyecto de EasyPanel, + Add Service → App, llámalo
cogo. - Source — o bien GitHub (repo
diegoparras/cogo, ramamain, Build = Dockerfile; siempre funciona), o Docker Imageghcr.io/diegoparras/cogo:latest(requiere que el paquete sea público). - Environment:
(COGO_MCP_TOKEN=TU-TOKENCOOKIE_SECURE=1
COGO_VAULT=/vaultya es el valor por defecto.) - Mounts → Add Mount — tipo Volume, nombre
cogo-vault, ruta de montaje/vault. Si te lo saltas, cada actualización borra tus notas. - Domains → Add Domain — tu dominio, puerto
8080(el puerto interno de COGO). EasyPanel emite el certificado HTTPS por sí mismo. Ruta de health check, si la pide:/healthz. - Deploy, abre tu dominio y pega TU-TOKEN cuando el visor te lo pida.
Si la app se cae al arrancar, olvidaste COGO_MCP_TOKEN — COGO se niega, a propósito, a
quedarse en internet sin protección.
En un VPS a mano
Sección titulada «En un VPS a mano»La forma más segura (grado bancario): no expongas el puerto en absoluto — átalo a loopback y alcánzalo a través de un túnel.
# en el VPS:docker run -d --name cogo -p 127.0.0.1:8080:8080 \ -v cogo-vault:/vault -e COGO_MCP_TOKEN=TU-TOKEN \ ghcr.io/diegoparras/cogo
# en tu máquina (túnel SSH):ssh -N -L 8080:127.0.0.1:8080 usuario@tu-vpsAbre http://localhost:8080. El detalle del despliegue endurecido (túnel/VPN, TLS vía proxy,
límites) está en docs/seguridad.md.
Conectar Claude Code (MCP)
Sección titulada «Conectar Claude Code (MCP)»Local — lo más simple: sin red, cada sesión arranca su propio COGO. En un .mcp.json:
{ "mcpServers": { "cogo": { "command": "cogo", "args": ["serve", "-vault", "./vault"] } } }Remoto — por HTTP, con tu token en la cabecera:
{ "mcpServers": { "cogo": { "type": "http", "url": "https://tu-dominio/mcp", "headers": { "Authorization": "Bearer TU-TOKEN" } } }}Desde ahí, en cualquier sesión pides pack "<tema>" y obtienes contexto coloreado, o
capturas un hallazgo con capture. Lo que Claude aprende hoy, Cursor lo lee mañana: el
mismo vault.
Actualizar
Sección titulada «Actualizar»- EasyPanel: presiona Deploy (o Rebuild) de nuevo. Tus notas se quedan, gracias
al volumen
/vault. - Docker plano:
docker pull ghcr.io/diegoparras/cogoy recrea el contenedor con el mismo-v cogo-vault:/vault.
Opcional: un modelo de IA
Sección titulada «Opcional: un modelo de IA»COGO funciona perfectamente sin modelo. Si quieres que detecte contradicciones entre notas y afile el Guard, abre el visor → menú → Ajustes · Modelo de IA y conecta un modelo local (Ollama) o remoto (OpenRouter, DeepSeek). El gasto de tokens se muestra en el mismo menú.
Otros accesorios opcionales
Sección titulada «Otros accesorios opcionales»Todos están apagados salvo que los definas. El núcleo de COGO nunca toca la red.
| Variable | Qué habilita |
|---|---|
COGO_GITHUB_TOKEN | Evidencia que vive en un repo (github://owner/repo@main/file.go:42, anclada al SHA del blob) y el explorador de GitHub integrado. Alcanza con un token de solo lectura. |
COGO_R2_* | Guardar artefactos en Cloudflare R2 en vez del disco local (ACCOUNT_ID, ACCESS_KEY_ID, SECRET_ACCESS_KEY, BUCKET). |
COGO_AUDIT_MAX | Cuántas entradas conserva el log de auditoría MCP (5000 por defecto, 0 = sin límite). |
Verifica lo que estás ejecutando
Sección titulada «Verifica lo que estás ejecutando»Cada imagen se firma con cosign (Sigstore sin llaves) y lleva provenance SLSA, así que puedes probar que salió del CI de este repositorio antes de confiarle tu vault:
cosign verify ghcr.io/diegoparras/cogo \ --certificate-identity-regexp='https://github.com/diegoparras/cogo/.*' \ --certificate-oidc-issuer=https://token.actions.githubusercontent.com