Passa al contenuto principale

Esegui cMind localmente

Questo è il modo più veloce per vedere cMind per davvero — un'istanza completa sulla tua macchina. Prendi un caffè; probabilmente sarai autenticato prima che si sia raffreddato.

Quello che avrai alla fine

Un'app web in esecuzione a localhost:8080, un server MCP a localhost:8081, un database Postgres e un nodo di lavoro locale pronto per compilare e eseguire il backtest dei cBot. Tutto sulla tua macchina, tutto tuo.

Prima di iniziare, hai bisogno di uno di:

  • Solo Docker → usa Opzione A (nessun SDK .NET richiesto). Consigliato per una prima occhiata.
  • .NET 10 SDK + Docker → usa l'Opzione B se vuoi hackerare il codice.

Entrambi i percorsi sono cross-platform (Windows / macOS / Linux).

Opzione A — Docker Compose (nessun SDK .NET richiesto)​

Prerequisito: Docker Desktop (o Docker Engine + plugin compose).

cp .env.example .env # modifica PG_PASSWORD, OWNER_EMAIL, OWNER_PASSWORD
docker compose up --build
  • Web UI: http://localhost:8080 (accedi con owner da .env; forzato a cambiare password al primo accesso).
  • Server MCP: http://localhost:8081/mcp.
  • I dati Postgres persistono nel volume pgdata; lo schema migra automaticamente all'avvio.

Il contenitore Web monta il socket Docker dell'host (/var/run/docker.sock) quindi il builder in-browser e il LocalNode seminato compilano e eseguono contenitori cTrader Console sulla tua macchina.

Note cross-platform

  • Docker Desktop (Windows/macOS) espone il socket a /var/run/docker.sock — il mount compose funziona così.
  • Linux: assicurati che il tuo utente possa accedere al socket o esegui compose con privilegi sufficienti.
  • L'immagine web è linux/amd64; su Apple Silicon Docker la esegue sotto emulazione.

Ferma e pulisci:

docker compose down # mantieni i dati
docker compose down -v # cancella anche il volume del database

Opzione B — .NET Aspire (per lo sviluppo)​

Prerequisito: .NET 10 SDK + Docker.

dotnet run --project src/AppHost

Aspire orchestra Postgres, Web, MCP, pgAdmin; cablatura stringhe di connessione + OTLP; apre il dashboard. Imposta le credenziali del proprietario come parametri Aspire (OwnerEmail, OwnerPassword).

Esegui solo l'app web rispetto a Postgres esistente:

dotnet run --project src/Web

Aggiunta di nodi di lavoro localmente​

LocalNode seminato già esegue lavoro sulla tua macchina. Per esercitare auto-discovery localmente, avvia l'agente del nodo puntato all'app Web (vedi node discovery) con NodeAgent:MainUrl=http://host.docker.internal:8080 e JoinToken corrispondente.

Risoluzione dei problemi​

Docker ha opinioni. Questi sono i soliti sospetti:

SintomoProbabile causa e correzione
port is already allocated su 8080/8081Qualcos'altro sta usando la porta. Fermalo o cambia il mapping in docker-compose.yml.
Web inizia ma build/backtest fallisceIl socket Docker non è montato o accessibile. Su Linux, assicurati che il tuo utente possa raggiungere /var/run/docker.sock.
permission denied sul socket (Linux)Aggiungi il tuo utente al gruppo docker (sudo usermod -aG docker $USER) e ri-accedi, o esegui con privilegi sufficienti.
Primo run molto lentoIl primo build estrae immagini e compila — i run successivi sono molto più veloci. Su Apple Silicon l'immagine web linux/amd64 viene eseguita sotto emulazione.
Non riesci ad accedereControlla OWNER_EMAIL / OWNER_PASSWORD nel tuo .env. Il primo accesso forza un cambio di password.
Strane cose con il database dopo gli aggiornamentidocker compose down -v cancella il volume per una lavagna pulita (perderai i dati locali).

Ancora bloccato? Apri una discussione — siamo amichevoli. Prossima tappa: distribuisci davvero →