Keluaran & menjalankan sesuatu keluaran
cMind dihantar sebagai Keluaran GitHub berversi. Setiap keluaran menerbitkan, bagi satu tag SemVer:
- Imej kontena di GHCR —
ghcr.io/amusleh-spotware-com/cmind-{web,mcp,node-agent,copy-agent,tests}, ditag dengan versi (cth.1.0.0-alpha.1) dansha-<commit>. Ditandatangani (cosign keyless) dengan pengesahan asal binaan dan SBOM SPDX. - Carta Helm — ditolak ke
oci://ghcr.io/amusleh-spotware-com/cmind/charts/cminddan dilampirkan pada keluaran sebagaicmind-<version>.tgz. - Binari CtraderCliNode — ZIP kendiri-lengkap mengikut platform (
linux-x64,linux-arm64,win-x64,osx-arm64) untuk menjalankan ejen nod jauh tanpa .NET SDK. SHA256SUMS.txtyang meliputi setiap artifak yang dilampirkan.
Alpha. Buat masa ini setiap keluaran ialah pra-keluaran (
-alpha.N). Jangkakan perubahan yang memecah antara alpha; belum ada jaminan naik taraf/migrasi. Sematkan versi yang tepat — jangan sekali-kalilatest.
Perversian
SemVer 2.0.0. Bentuk tag vX.Y.Z[-suffix]. Akhiran (-alpha.N, -beta.N, -rc.N) menerbitkan
pra-keluaran GitHub; tag imej dan versi carta Helm kedua-duanya sama dengan versi tanpa v di hadapan.
Aplikasi yang berjalan memaparkannya di GET /version dan di pengaki UI (Core.VersionInfo).
Memilih keluaran
Layari Keluaran dan salin tag yang dikehendaki
(cth. v1.0.0-alpha.1). Sahkan sesuatu imej sebelum menjalankannya:
VERSION=1.0.0-alpha.1
cosign verify ghcr.io/amusleh-spotware-com/cmind-web:$VERSION \
--certificate-identity-regexp 'https://github.com/amusleh-spotware-com/cmind/.github/workflows/release.yml@.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
Menjalankan — Kubernetes (Helm, disyorkan)
appVersion carta sudah menyematkan tag imej yang sepadan, jadi anda hanya menghantar versi carta.
VERSION=1.0.0-alpha.1
helm install cmind oci://ghcr.io/amusleh-spotware-com/cmind/charts/cmind \
--version $VERSION \
--namespace cmind --create-namespace \
--set secrets.pgPassword='<strong>' \
--set secrets.ownerEmail='owner@example.com' \
--set secrets.ownerPassword='<Strong-Pass!>' \
--set secrets.discoveryJoinToken='<rahsia kluster 32+ aksara>'
Pakej GHCR peribadi memerlukan image pull secret — cipta satu dan hantarkannya:
kubectl create secret docker-registry ghcr --namespace cmind \
--docker-server=ghcr.io --docker-username=<gh-user> --docker-password=<PAT-dengan-read:packages>
helm upgrade cmind ... --set image.pullSecrets='{ghcr}'
Pilihan carta penuh, ingress, Postgres luaran dan penskalaan: lihat Penggunaan Kubernetes dan Penskalaan. Sahkan:
kubectl -n cmind get pods
kubectl -n cmind port-forward svc/cmind-web 8080:8080
# → http://localhost:8080 ; GET /version memulangkan versi keluaran
Menjalankan — Docker (hos tunggal, tinjauan pantas)
Jalankan hos Web terus daripada imej keluarannya. Ia memerlukan Postgres dan soket Docker (hos Web membina/menjalankan cBot melalui Docker CLI setempat).
VERSION=1.0.0-alpha.1
docker network create cmind
docker run -d --name cmind-pg --network cmind \
-e POSTGRES_PASSWORD=change-me -e POSTGRES_DB=cmind postgres:17
docker run -d --name cmind-web --network cmind -p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
-e ConnectionStrings__Default='Host=cmind-pg;Database=cmind;Username=postgres;Password=change-me' \
-e App__Owner__Email='owner@example.com' \
-e App__Owner__Password='Change-Me-Str0ng!' \
ghcr.io/amusleh-spotware-com/cmind-web:$VERSION
Buka http://localhost:8080. Tambah pelayan MCP (cmind-mcp) dan ejen nod dengan cara yang sama; untuk
topologi berbilang perkhidmatan penuh, gunakan carta Helm. Lihat Pembangunan setempat untuk
laluan Aspire dotnet run apabila bekerja daripada sumber dan bukannya keluaran.
Menjalankan ejen nod jauh daripada binari
Hos jauh yang menyediakan kapasiti run/backtest boleh menjalankan CtraderCliNode tanpa .NET dipasang.
Muat turun ZIP platform daripada keluaran, nyahzip, dan jalankan — ia mendaftar sendiri dengan hos Web dan
menghantar heartbeat.
VERSION=1.0.0-alpha.1
curl -LO https://github.com/amusleh-spotware-com/cmind/releases/download/v$VERSION/ctrader-cli-node-$VERSION-linux-x64.zip
sha256sum -c ctrader-cli-node-$VERSION-linux-x64.zip.sha256
unzip ctrader-cli-node-$VERSION-linux-x64.zip -d cmind-node && cd cmind-node
NodeAgent__MainBaseUrl='https://<hos-web-anda>' \
NodeAgent__DiscoveryJoinToken='<rahsia kluster 32+ aksara yang sama>' \
./CtraderCliNode
Hos mesti menjalankan Docker (ejen melaksanakan imej konsol cTrader melalui Docker CLI). Lihat Penggunaan Kubernetes untuk menjalankan ejen nod sebagai pod istimewa.
Membuat keluaran (penyelenggara)
Keluaran dihasilkan oleh .github/workflows/release.yml pada mana-mana tag v* yang ditolak — prosesnya ada
dalam RELEASING.md di akar repo.