Salta ai contenuti

Installa COGO

COGO è un container (o un binario). Le uniche due cose che contano: monta un volume su /vault perché le tue note sopravvivano agli aggiornamenti e — su un server — imposta un token.

Con Docker Desktop installato:

Terminal window
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

Apri http://localhost:8095. Fatto — vedi il tuo vault dipinto per confidenza, catturi e modifichi note, tutto dal browser.

  • -p 127.0.0.1:8095:8080 lo pubblica solo sulla tua macchina — nessuno sulla tua rete lo vede.
  • -v cogo-vault:/vault conserva le tue note in un volume così non vengono cancellate.
  • -e COGO_ALLOW_INSECURE=1 significa “so che è locale, non chiedermi un token”. Solo in locale.

Senza Docker — un singolo binario statico, nessun runtime:

Terminal window
cogo serve -http 127.0.0.1:8080 -vault ./vault

EasyPanel non va d’accordo con docker-compose — non usare il tipo “Compose”. Usa il tipo App, che è più semplice e aggiunge HTTPS da solo.

  1. Nel tuo progetto EasyPanel, + Add Service → App, chiamalo cogo.
  2. Source — o GitHub (repo diegoparras/cogo, branch main, Build = Dockerfile; funziona sempre), oppure Docker Image ghcr.io/diegoparras/cogo:latest (richiede che il pacchetto sia pubblico).
  3. Environment:
    COGO_MCP_TOKEN=IL-TUO-TOKEN
    COOKIE_SECURE=1
    (COGO_VAULT=/vault è già il valore predefinito.)
  4. Mounts → Add Mount — tipo Volume, nome cogo-vault, percorso di mount /vault. Saltalo e ogni aggiornamento cancella le tue note.
  5. Domains → Add Domain — il tuo dominio, porta 8080 (la porta interna di COGO). EasyPanel emette da solo il certificato HTTPS. Percorso di health check, se richiesto: /healthz.
  6. Deploy, apri il tuo dominio e incolla IL-TUO-TOKEN quando il visualizzatore te lo chiede.

Se l’app va in crash all’avvio, hai dimenticato COGO_MCP_TOKEN — COGO si rifiuta, di proposito, di stare su internet senza protezione.

La forma più sicura (livello banca): non esporre affatto la porta — legala al loopback e raggiungila attraverso un tunnel.

Terminal window
# sul VPS:
docker run -d --name cogo -p 127.0.0.1:8080:8080 \
-v cogo-vault:/vault -e COGO_MCP_TOKEN=IL-TUO-TOKEN \
ghcr.io/diegoparras/cogo
# sulla tua macchina (tunnel SSH):
ssh -N -L 8080:127.0.0.1:8080 utente@il-tuo-vps

Apri http://localhost:8080. Il dettaglio del deployment indurito (tunnel/VPN, TLS via proxy, limiti) è in docs/seguridad.md.

Locale — il più semplice: niente rete, ogni sessione avvia il proprio COGO. In un .mcp.json:

{ "mcpServers": { "cogo": { "command": "cogo", "args": ["serve", "-vault", "./vault"] } } }

Remoto — via HTTP, con il tuo token nell’header:

{
"mcpServers": {
"cogo": {
"type": "http",
"url": "https://tuo-dominio/mcp",
"headers": { "Authorization": "Bearer IL-TUO-TOKEN" }
}
}
}

Da lì, in qualsiasi sessione chiedi pack "<argomento>" e ottieni contesto colorato, oppure fai capture di una scoperta. Ciò che Claude impara oggi, Cursor lo legge domani: lo stesso vault.

  • EasyPanel: premi di nuovo Deploy (o Rebuild). Le tue note restano, grazie al volume /vault.
  • Docker semplice: docker pull ghcr.io/diegoparras/cogo e ricrea il container con lo stesso -v cogo-vault:/vault.

COGO funziona perfettamente senza un modello. Se vuoi che rilevi le contraddizioni tra le note e affini il Guard, apri il visualizzatore → menu → Impostazioni · Modello IA e collega un modello locale (Ollama) o remoto (OpenRouter, DeepSeek). La spesa in token si vede nello stesso menu.

Sono tutti spenti finché non li imposti. Il nucleo di COGO non tocca mai la rete.

VariabileCosa abilita
COGO_GITHUB_TOKENProve che vivono in un repository (github://owner/repo@main/file.go:42, ancorate allo SHA del blob) e l’esploratore GitHub integrato. Basta un token di sola lettura.
COGO_R2_*Conservare gli artefatti su Cloudflare R2 invece che sul disco locale (ACCOUNT_ID, ACCESS_KEY_ID, SECRET_ACCESS_KEY, BUCKET).
COGO_AUDIT_MAXQuante voci conserva il log di audit MCP (5000 per impostazione predefinita, 0 = illimitato).

Ogni immagine è firmata con cosign (Sigstore senza chiavi) e porta la provenance SLSA, così puoi dimostrare che è uscita dalla CI di questo repository prima di affidarle il tuo vault:

Terminal window
cosign verify ghcr.io/diegoparras/cogo \
--certificate-identity-regexp='https://github.com/diegoparras/cogo/.*' \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Leggi la documentazione