Distribuire AnythingMCP con Docker Compose
Guida passo passo per distribuire AnythingMCP su qualsiasi server Linux utilizzando Docker Compose, con SSL automatico tramite il reverse proxy Caddy.
Prerequisiti
Prima di iniziare, assicurati che il tuo server disponga di:
- Docker e Docker Compose installati
- Porte 80 e 443 aperte (se si utilizza HTTPS)
- Un nome di dominio che punta al tuo server (opzionale, necessario per SSL)
Clonare ed eseguire la configurazione
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp
bash setup.sh
La procedura guidata interattiva ti accompagnerà attraverso:
- Modalità di distribuzione — scegli Docker (consigliato)
- Dominio e porte — inserisci il tuo dominio per abilitare automaticamente HTTPS tramite Caddy
- Autenticazione MCP — OAuth 2.0, chiave API o entrambi
- Email (SMTP) — opzionale, per verifica e reimpostazione password
- Redis — opzionale, per limitazione della frequenza e caching
Tutti i segreti (JWT, chiave di crittografia, password del database) vengono generati automaticamente.
Cosa fa setup.sh
Lo script gestisce l'intera pipeline di distribuzione:
- Genera
.envcon segreti casuali sicuri - Crea un
Caddyfileper SSL automatico Let's Encrypt (quando viene fornito un dominio) - Aggiunge opzionalmente Redis tramite
docker-compose.override.yml - Esegue
docker compose up -d --buildper avviare tutti i servizi
L'applicazione funziona come un singolo container con backend NestJS (porta 4000) e frontend Next.js (porta 3000), insieme a PostgreSQL 17.
HTTPS con Caddy
Quando inserisci un dominio reale durante la configurazione, Caddy viene configurato automaticamente:
- Le porte dell'app si collegano solo a
127.0.0.1(non esposte pubblicamente) - Caddy gestisce tutto il traffico sulle porte 80 e 443
- I certificati SSL vengono forniti e rinnovati da Let's Encrypt
Nessuna gestione manuale dei certificati necessaria.
Verifica della distribuzione
Verifica che tutti i container siano in esecuzione:
docker compose ps
Verifica lo stato del backend:
curl http://localhost:4000/health
Apri la dashboard:
- Con Caddy:
https://yourdomain.com - Senza Caddy:
http://your-server-ip:3000
Il primo utente a registrarsi diventa l'amministratore.
Aggiornamento di AnythingMCP
git pull
docker compose up -d --build
Le migrazioni del database vengono eseguite automaticamente all'avvio.
Risoluzione dei problemi
Conflitti di porta
sudo lsof -i :80
sudo lsof -i :443
Ferma i servizi in conflitto o disabilita Caddy per accedere all'app direttamente sulle porte 3000/4000.
Problemi con il database
Se hai modificato le credenziali in .env, reimposta il volume del database:
docker compose down -v
docker compose up -d
Controllo dei log
docker compose logs -f # tutti i servizi
docker compose logs -f app # solo l'app
docker compose logs -f caddy # solo caddy
Problemi con i certificati Caddy
Assicurati che il record A del tuo dominio punti al server e che le porte 80/443 siano raggiungibili per la verifica ACME.