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.
Sulla tua macchina (locale, 2 minuti)
Sezione intitolata “Sulla tua macchina (locale, 2 minuti)”Con Docker Desktop installato:
docker run -d --name cogo -p 127.0.0.1:8095:8080 \ -v cogo-vault:/vault -e COGO_ALLOW_INSECURE=1 \ ghcr.io/diegoparras/cogoApri http://localhost:8095. Fatto — vedi il tuo vault dipinto per confidenza, catturi e modifichi note, tutto dal browser.
-p 127.0.0.1:8095:8080lo pubblica solo sulla tua macchina — nessuno sulla tua rete lo vede.-v cogo-vault:/vaultconserva le tue note in un volume così non vengono cancellate.-e COGO_ALLOW_INSECURE=1significa “so che è locale, non chiedermi un token”. Solo in locale.
Senza Docker — un singolo binario statico, nessun runtime:
cogo serve -http 127.0.0.1:8080 -vault ./vaultSu un server con EasyPanel (consigliato)
Sezione intitolata “Su un server con EasyPanel (consigliato)”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.
- Nel tuo progetto EasyPanel, + Add Service → App, chiamalo
cogo. - Source — o GitHub (repo
diegoparras/cogo, branchmain, Build = Dockerfile; funziona sempre), oppure Docker Imageghcr.io/diegoparras/cogo:latest(richiede che il pacchetto sia pubblico). - Environment:
(COGO_MCP_TOKEN=IL-TUO-TOKENCOOKIE_SECURE=1
COGO_VAULT=/vaultè già il valore predefinito.) - Mounts → Add Mount — tipo Volume, nome
cogo-vault, percorso di mount/vault. Saltalo e ogni aggiornamento cancella le tue note. - 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. - 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.
Su un VPS a mano
Sezione intitolata “Su un VPS a mano”La forma più sicura (livello banca): non esporre affatto la porta — legala al loopback e raggiungila attraverso un tunnel.
# 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-vpsApri http://localhost:8080. Il dettaglio del deployment indurito (tunnel/VPN, TLS via proxy,
limiti) è in docs/seguridad.md.
Collega Claude Code (MCP)
Sezione intitolata “Collega Claude Code (MCP)”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.
Aggiornare
Sezione intitolata “Aggiornare”- EasyPanel: premi di nuovo Deploy (o Rebuild). Le tue note restano, grazie al
volume
/vault. - Docker semplice:
docker pull ghcr.io/diegoparras/cogoe ricrea il container con lo stesso-v cogo-vault:/vault.
Opzionale: un modello IA
Sezione intitolata “Opzionale: un modello IA”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.
Altri accessori opzionali
Sezione intitolata “Altri accessori opzionali”Sono tutti spenti finché non li imposti. Il nucleo di COGO non tocca mai la rete.
| Variabile | Cosa abilita |
|---|---|
COGO_GITHUB_TOKEN | Prove 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_MAX | Quante voci conserva il log di audit MCP (5000 per impostazione predefinita, 0 = illimitato). |
Verifica cosa stai eseguendo
Sezione intitolata “Verifica cosa stai eseguendo”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:
cosign verify ghcr.io/diegoparras/cogo \ --certificate-identity-regexp='https://github.com/diegoparras/cogo/.*' \ --certificate-oidc-issuer=https://token.actions.githubusercontent.com