Sürümler ve bir sürümü çalıştırma
cMind, sürümlenmiş GitHub Sürümleri olarak dağıtılır. Her sürüm, tek bir SemVer etiketi için şunları yayınlar:
- Konteyner imajları (GHCR) —
ghcr.io/amusleh-spotware-com/cmind-{web,mcp,node-agent,copy-agent,tests}, sürümle (ör.1.0.0-alpha.1) vesha-<commit>ile etiketlenir. Derleme kaynağı doğrulamaları ve SPDX SBOM ile imzalanmıştır (cosign keyless). - Helm chart —
oci://ghcr.io/amusleh-spotware-com/cmind/charts/cmindadresine gönderilir ve sürümecmind-<version>.tgzolarak eklenir. - CtraderCliNode ikili dosyaları — .NET SDK olmadan uzak bir düğüm aracısı çalıştırmak için platforma
özel bağımsız ZIP'ler (
linux-x64,linux-arm64,win-x64,osx-arm64). - Eklenen her yapıyı kapsayan
SHA256SUMS.txt.
Alpha. Şimdilik her sürüm bir ön sürümdür (
-alpha.N). Alpha'lar arasında kırıcı değişiklikler bekleyin; henüz yükseltme/geçiş garantisi yoktur. Kesin bir sürüme sabitleyin — aslalatestkullanmayın.
Sürümleme
SemVer 2.0.0. Etiket biçimi vX.Y.Z[-suffix]. Bir sonek (-alpha.N, -beta.N, -rc.N) bir GitHub
ön sürümü yayınlar; imaj etiketi ve Helm chart sürümü, baştaki v olmadan sürüme eşittir. Çalışan
uygulama bunu GET /version ve UI alt bilgisinde (Core.VersionInfo) gösterir.
Bir sürüm seçme
Sürümler sayfasına göz atın ve istediğiniz
etiketi (ör. v1.0.0-alpha.1) kopyalayın. Çalıştırmadan önce bir imajı doğrulayın:
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
Çalıştırma — Kubernetes (Helm, önerilir)
Chart'ın appVersion değeri, eşleşen imaj etiketini zaten sabitler; bu nedenle yalnızca chart sürümünü
geçirirsiniz.
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='<32+ karakterlik küme sırrı>'
Özel GHCR paketleri bir imaj çekme sırrı gerektirir — bir tane oluşturup geçirin:
kubectl create secret docker-registry ghcr --namespace cmind \
--docker-server=ghcr.io --docker-username=<gh-user> --docker-password=<read:packages izinli PAT>
helm upgrade cmind ... --set image.pullSecrets='{ghcr}'
Tüm chart seçenekleri, ingress, harici Postgres ve ölçeklendirme: Kubernetes dağıtımı ve Ölçeklendirme bölümlerine bakın. Doğrulama:
kubectl -n cmind get pods
kubectl -n cmind port-forward svc/cmind-web 8080:8080
# → http://localhost:8080 ; GET /version sürüm numarasını döndürür
Çalıştırma — Docker (tek ana makine, hızlı bakış)
Web ana makinesini doğrudan sürüm imajından çalıştırın. Postgres ve Docker soketi gerektirir (Web ana makinesi cBot'ları yerel Docker CLI aracılığıyla derler/çalıştırır).
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
http://localhost:8080 adresini açın. MCP sunucusunu (cmind-mcp) ve düğüm aracılarını aynı şekilde
ekleyin; tam çok hizmetli topoloji için Helm chart'ı kullanın. Bir sürüm yerine kaynaktan çalışırken Aspire
dotnet run yolu için Yerel geliştirme bölümüne bakın.
Bir ikili dosyadan uzak düğüm aracısı çalıştırma
Çalıştırma/geriye dönük test kapasitesi sağlayan uzak ana makineler, .NET kurulu olmadan CtraderCliNode
çalıştırabilir. Sürümden platform ZIP'ini indirin, açın ve çalıştırın — Web ana makinesine kendini otomatik
kaydeder ve heartbeat gönderir.
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://<web-ana-makineniz>' \
NodeAgent__DiscoveryJoinToken='<aynı 32+ karakterlik küme sırrı>' \
./CtraderCliNode
Ana makinede Docker çalışmalıdır (aracı, cTrader konsol imajını Docker CLI aracılığıyla çalıştırır). Düğüm aracılarını ayrıcalıklı pod'lar olarak çalıştırmak için Kubernetes dağıtımı bölümüne bakın.
Bir sürüm oluşturma (bakımcılar)
Sürümler, gönderilen herhangi bir v* etiketinde .github/workflows/release.yml tarafından üretilir —
süreç, depo kökündeki
RELEASING.md içindedir.