Ir al contenido

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.

Con Docker Desktop instalado:

Ventana de terminal
docker run -d --name cogo -p 127.0.0.1:8095:8080 \
-v cogo-vault:/vault -e COGO_ALLOW_INSECURE=1 \
ghcr.io/diegoparras/cogo

Abre http://localhost:8095. Listo — ves tu vault pintado por confianza, capturas y editas notas, todo desde el navegador.

  • -p 127.0.0.1:8095:8080 lo publica solo en tu máquina — nadie en tu red lo ve.
  • -v cogo-vault:/vault guarda tus notas en un volumen para que no se borren.
  • -e COGO_ALLOW_INSECURE=1 significa “sé que es local, no me pidas token”. Solo local.

Sin Docker — un único binario estático, sin runtime:

Ventana de terminal
cogo serve -http 127.0.0.1:8080 -vault ./vault

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.

  1. En tu proyecto de EasyPanel, + Add Service → App, llámalo cogo.
  2. Source — o bien GitHub (repo diegoparras/cogo, rama main, Build = Dockerfile; siempre funciona), o Docker Image ghcr.io/diegoparras/cogo:latest (requiere que el paquete sea público).
  3. Environment:
    COGO_MCP_TOKEN=TU-TOKEN
    COOKIE_SECURE=1
    (COGO_VAULT=/vault ya es el valor por defecto.)
  4. Mounts → Add Mount — tipo Volume, nombre cogo-vault, ruta de montaje /vault. Si te lo saltas, cada actualización borra tus notas.
  5. 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.
  6. 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.

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.

Ventana de terminal
# 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-vps

Abre http://localhost:8080. El detalle del despliegue endurecido (túnel/VPN, TLS vía proxy, límites) está en docs/seguridad.md.

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.

  • EasyPanel: presiona Deploy (o Rebuild) de nuevo. Tus notas se quedan, gracias al volumen /vault.
  • Docker plano: docker pull ghcr.io/diegoparras/cogo y recrea el contenedor con el mismo -v cogo-vault:/vault.

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ú.

Todos están apagados salvo que los definas. El núcleo de COGO nunca toca la red.

VariableQué habilita
COGO_GITHUB_TOKENEvidencia 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_MAXCuántas entradas conserva el log de auditoría MCP (5000 por defecto, 0 = sin límite).

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:

Ventana de terminal
cosign verify ghcr.io/diegoparras/cogo \
--certificate-identity-regexp='https://github.com/diegoparras/cogo/.*' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Leer la documentación