Cloud Mod Manager (cmm), modern Minecraft sunucuları ve modpack geliştiricileri için tasarlanmış; Modrinth entegrasyonuna, özyinelemeli bağımlılık çözümlemeye, çok kaynaklı senkronizasyon motorlarına ve zengin bir Terminal Kullanıcı Arayüzüne (TUI) sahip yeni nesil bir mod yöneticisidir.
- Kurulum Rehberi (Installation)
- 5 Dakikada Hızlı Başlangıç (Quickstart)
- Kapsamlı Komut Rehberi (CLI Reference)
- 1. Proje Başlatma:
cmm init - 2. Mod Arama:
cmm search - 3. Mod Yükleme:
cmm add - 4. Mod Listeleme:
cmm list - 5. Mod Güncelleme:
cmm update - 6. Mod Sabitleme (Pinning):
cmm pin&cmm unpin - 7. Mod Silme:
cmm remove - 8. Yükleyici Yönetimi:
cmm loader - 9. Senkronizasyon Motorları:
cmm sync - 10. HTTP Senkronizasyon Sunucusu:
cmm serve - 11. Modpack Dışa Aktarma:
cmm export
- 1. Proje Başlatma:
- Görsel Terminal Arayüzü:
cmm tui - Yapılandırma Dosyaları (
cmm.toml&cmm.lock) - Gerçek Hayat Senaryoları & İpuçları
cmm ikilisini ilk kez herhangi bir klasörden çalıştırdığınızda (örn. ./cmm-linux-arm64), kendini otomatik olarak kullanıcı dizininizdeki ~/.local/bin/cmm konumuna kopyalar ve gerekiyorsa ~/.bashrc dosyanıza PATH değişkenini ekler:
# Sadece indirdiğiniz ikiliyi çalıştırın:
./cmm-linux-arm64
# Çıktı:
# [OK] [Auto-Setup] Successfully installed 'cmm' to ~/.local/bin/cmm
# [INFO] You can now run 'cmm' directly from any folder in your terminal.
# Artık her yerden sadece 'cmm' yazarak kullanabilirsiniz:
cmm --helpProjenin bin/ dizini altında tüm platformlar için bağımsız (CGO gerektirmeyen, statik) ikililer hazır bulunmaktadır:
| Platform | Mimari | Dosya Yolu |
|---|---|---|
| Linux (Oracle Cloud Always Free) | ARM64 (Ampere A1) | bin/cmm-linux-arm64 |
| Linux (Standart Sunucu/PC) | AMD64 (x86_64) | bin/cmm-linux-amd64 |
| macOS (Apple Silicon) | ARM64 (M1/M2/M3/M4) | bin/cmm-darwin-arm64 |
| macOS (Intel) | AMD64 (x86_64) | bin/cmm-darwin-amd64 |
| Windows | AMD64 (x86_64) | bin/cmm-windows-amd64.exe |
# 1. İkiliyi sistem genelinde kullanılabilir yapın:
sudo cp bin/cmm-linux-arm64 /usr/local/bin/cmm
sudo chmod +x /usr/local/bin/cmm
# 2. Kurulumu doğrulayın:
cmm --helpsudo cp bin/cmm-darwin-arm64 /usr/local/bin/cmm
sudo chmod +x /usr/local/bin/cmm
cmm --helpbin/cmm-windows-amd64.exe dosyasını cmm.exe olarak adlandırıp ortam değişkenlerinizdeki (PATH) bir klasöre taşıyabilirsiniz.
Go 1.22+ yüklü bir ortamda:
# Projeyi klonlayın ve dizine girin:
git clone https://github.com/your-org/cloudModManager.git
cd cloudModManager
# Yerel ikiliyi derleyin:
make build
# Tüm platformlar için aynı anda derleyin:
make cross-compile
# Tüm test paketlerini çalıştırın (149 Test):
make test-all# 1. Sunucu dizininde cmm'i başlatın:
cmm init --name "MyServer" --mc-version "1.21.1" --loader "fabric" --side "server"
# 2. Fabric Loader'ı kurun:
cmm loader install fabric --version 0.19.3
# 3. İhtiyacınız olan modları arayın ve kurun (bağımlılıkları otomatik çözer):
cmm search "lithium"
cmm add lithium
cmm add ferrite-core
# 4. Kritik bir modun sürümünü sabitleyin (otomatik güncellenmesin):
cmm pin lithium
# 5. Tüm modların güncellemelerini kontrol edin:
cmm update
# 6. Görsel Terminal Kullanıcı Arayüzünü (TUI) başlatın:
cmm tuiMevcut dizinde cmm.toml yapılandırma dosyasını oluşturur.
# Etkileşimli (Soru-Cevap) Mod:
cmm init
# Bayraklar ile Otomatik (Script/CI) Mod:
cmm init \
--name "SurvivalServer" \
--mc-version "1.21.1" \
--loader "fabric" \
--side "server" \
--mods-dir "mods"--side:server(istemci modlarını atlar),clientveyaboth.
Modrinth API üzerinden yapılandırmanızdaki Minecraft sürümü ve yükleyiciye göre filtrelenmiş arama yapar.
# Basit arama:
cmm search "optimization"
# Sonuç sayısını sınırlandırma:
cmm search "fabric api" --limit 5Modrinth üzerinden mod indirir, bağımlılıkları özyinelemeli (recursive) çözer ve cmm.lock dosyasını günceller. cmm install, cmm add komutunun tam eşdeğeri (alias) olarak kullanılabilir.
- Tek Mod ve Sürüm Belirtilmemişse (Etkileşimli Sayfalama):
Seçilen kararlılık kanalındaki son 10 sürümü numaralandırarak listeler.
[n]sonraki sayfa,[p]önceki sayfa,[q]iptal. Numara seçildiğinde indirme öncesi dosya adıyla onay ister.cmm install sodium
- Spesifik Sürüm Kurulumu (
-v/--version): Doğrudan belirtilen sürümü hedefler ve dosya adıyla onay ister:cmm install sodium -v "0.5.8" - Çoklu Mod Kurulumu (Toplu Kurulum):
Boşlukla ayrılmış birden fazla slug girildiğinde sayfalama devre dışı bırakılır, her mod için son uyumlu sürüm çözümlenir, tek bir toplu özet tablo basılır ve tek onay ile hepsi kurulur:
cmm install sodium iris lithium
- Sürüm Kararlılık Kanalı Filtresi (
--channel): Varsayılan kanalrelease'dir.beta(release + beta) veyaalpha(tüm sürümler) seçilebilir:cmm install sodium --channel beta
- Zaten Kurulu Mod Uyarısı ve Değiştirme (Replacement):
Eğer mod zaten kuruluysa, mevcut ve hedef sürüm gösterilerek onay istenir (
Replace installed version with <targetVer>? [y/N]:). Onay verilirse eski.jardiskten silinir ve yeni sürüm kurulur.
Kurulu olan tüm modları, versiyonlarını, mod sabitleme ([PINNED]), pasiflik ([DISABLED]) ve güncelleme ([UPDATE AVAILABLE]) durumlarını gösterir.
# Tablo Görünümü:
cmm list
# JSON Çıktısı (Script ve Otomasyonlar için):
cmm list --jsonKurulu modların Modrinth üzerindeki en güncel sürümlerini kontrol eder ve günceller.
- Modrinth Slug Gösterimi: Güncellenecek modların yanında slug bilgisi parantez içinde belirtilir:
- Sodium (sodium): 0.5.8 -> 0.5.11. - Kararlılık Kanalı Filtresi (
--channel):--channel release(varsayılan),--channel betaveya--channel alpha. Aktif kanal bilgisi komut çıktısının en başında[INFO] Checking for updates... [Channel: release]olarak gösterilir. - Çoklu Slug ve Tek Onay: Boşlukla ayrılmış modlar girilebilir (
cmm update sodium iris lithium). Toplu özet listelenir ve tek birApply updates? [y/N]:onayı ile hepsi güncellenir. - Loader Bildirimi: Eğer daha yeni bir Loader sürümü varsa akış bozulmadan çıktı sonunda tek satırlık bildirim basılır (
[INFO] A new Fabric Loader version is available (v0.19.5). Run: cmm loader update).
# Tüm modları güncelleme (release kanalı):
cmm update
# Beta kanalında birden fazla spesifik modu güncelleme:
cmm update sodium iris --channel beta
# Sabitlenmiş (pinned) modları da zorla güncelleme:
cmm update --forceModların cmm update veya cmm sync komutları çalıştırıldığında otomatik olarak yükseltilmesini engeller.
# Modun mevcut sürümünü sabitleme:
cmm pin lithium
# Modu belirli bir sürüme sabitleme:
cmm pin sodium --version 0.5.8
# Sabitlemeyi kaldırma (güncellemelere açma):
cmm unpin lithiumBir modu diskten ve kilit dosyasından siler. Eğer silinen modun bağımlılıkları başka bir mod tarafından kullanılmıyorsa (orphan), onları da temizleme seçeneği sunar.
# Modu silme:
cmm remove irisModu tamamen silmeden geçici olarak kapatıp açmanızı sağlar:
cmm disable <mod>: Mod dosyasınımods/<mod>.jar.disabledolarak yeniden adlandırır vecmm.lockkilit dosyasında pasif (disabled = true) olarak işaretler. Minecraft sunucusu veya istemcisi bu modu yüklemez.cmm enable <mod>: Mod dosyasını tekrar.jarhaline getirir ve kilit dosyasını günceller.- TUI Kısayolu:
cmm tuiiçerisindeyken listedeki herhangi bir modun üzerindeykeneveyaSpace(Boşluk) tuşuna basarak anında aktif/pasif yapabilirsiniz!
# Modu devre dışı bırakma (.jar.disabled):
cmm disable sodium
# Başka modlar buna bağımlı olsa bile zorla devre dışı bırakma:
cmm disable fabric-api --force
# Modu tekrar aktif hale getirme (.jar):
cmm enable sodiumMinecraft mod yükleyicilerini (Fabric, Forge, NeoForge, Quilt) listeler, kurar ve güvenli bir şekilde günceller.
- Yükleyici Sürümlerini Listeleme:
cmm loader list fabric
- Yükleyici Kurma:
cmm loader install fabric --version 0.19.3
- Yükleyici Güncelleme & Süreç Güvenlik Kilidi (
cmm loader update): En yeni kararlı loader sürümünü sorgular ve onayınızlacmm.tomldosyasını günceller.- Süreç Güvenlik Kilidi (Process Safety Check): İşlem öncesinde arka planda çalışan Java / Minecraft sunucu süreci olup olmadığını denetler. Eğer sunucu aktifse güncelleme durdurulur (
Error: Server is currently running. Please stop the server before updating the loader (or use --force).).
cmm loader update # Zorla güncellemek için: cmm loader update --force - Süreç Güvenlik Kilidi (Process Safety Check): İşlem öncesinde arka planda çalışan Java / Minecraft sunucu süreci olup olmadığını denetler. Eğer sunucu aktifse güncelleme durdurulur (
cmm.toml dosyasındaki Minecraft sürümünü görüntüler veya güvenli bir şekilde günceller.
# Yapılandırılmış sürümü görüntüleme:
cmm mc-version
# Çıktı: Configured Minecraft version: 26.2
# Sürümü güncelleme (regex format doğrulaması ve kullanıcı onayı ile):
cmm mc-version "26.1.2"
# Soru: Change configured Minecraft version from 26.2 to 26.1.2? [y/N]: yMevcut bir Minecraft sunucu klasörünü baştan sona tarar ve ortamı otomatik olarak yapılandırır:
- Kesin Sürüm Tespiti (Deterministic Version Detection):
- Sunucu
server.jariçindekiversion.jsondosyasını doğrudan ZIP reader ile açarak kesin Minecraft sürümünü (id) çıkarır. - İstemci ve modpack manifestolarını (
modrinth.index.json,instance.json, vb.) okur. - Eğer kesin sürüm tespit edilemezse mod adlarından frekans oylamasıyla bulunan yaygın sürümü önerir (
Could not determine exact Minecraft version. Use detected version (26.2)? [Y/n]:). Reddedilirse manuel giriş ister. - Aynı tespit ve onay mantığı Yükleyici (Loader) için de geçerlidir.
- Sunucu
- Loader Bildirimi: Tarama bittiğinde yeni bir loader sürümü mevcutsa bildirim basar.
# Mevcut dizini tarama ve cmm dosyalarını üretme:
cmm scan
# Farklı bir sunucu dizinini tarama:
cmm scan /home/ubuntu/minecraft-serverCloud Mod Manager'ın mevcut sürümünü gösterir, GitHub üzerindeki en son yayınlanan sürümü (aegeada/cloudModManager) sorgular ve yeni bir sürüm çıktığında tek onay ile binary'i otomatik olarak yerinde günceller:
# Sürümü ve güncelleme durumunu denetleme:
cmm version
# Çıktı:
# Cloud Mod Manager v0.1.0 (linux/amd64)
# [INFO] Checking for updates...
# [OK] Cloud Mod Manager is up to date (v0.1.0).
# Yeni bir sürüm varsa:
# [INFO] A new version of Cloud Mod Manager is available: v0.2.0 (Current: v0.1.0)
# Download and install v0.2.0 now? [y/N]: y
# [INFO] Downloading and installing v0.2.0...
# [OK] Successfully updated Cloud Mod Manager to v0.2.0!
# Yalnızca güncelleme olup olmadığını kontrol etme (onay sormadan):
cmm version --check
# Sormadan otomatik güncelleme:
cmm version --yesİpucu:
cmm initkomutunu içinde önceden.jarmodları olan bir klasörde çalıştırdığınızda,cmmmevcut modları otomatik olarak algılar vecmm.lockdosyanızı hemen oluşturur.
Yerel mods/ klasörünüzdeki .jar dosyalarını tarar, SHA-512 hash'lerini Modrinth'te sorgular ve sıfırdan geçerli bir cmm.lock üretir (Tanınmayan özel modlar için uyarı verir, pinli durumları korur).
cmm sync local
cmm sync local --path /opt/minecraft/modsResmi bir Modrinth .mrpack paketini (slug veya dosya yolu) sunucuya senkronize eder. side = "server" kurallarına göre istemci modlarını eler ve listede olmayan gereksiz JAR'ları temizler (Delta Sync).
# Modrinth slug üzerinden:
cmm sync --source modrinth --slug fabulously-optimized
# İndirilmiş .mrpack dosyası üzerinden:
cmm sync --source modrinth --file /tmp/my-modpack.mrpackGitHub üzerinde saklanan bir sunucu reposundan cmm.lock ve cmm.toml dosyalarını çeker ve modları eşitler.
# Açık kaynak depo:
cmm sync --source github --repo my-org/minecraft-server-mods --branch main
# Özel (Private) depo:
cmm sync --source github --repo my-org/private-modpack --token ghp_yourSecretTokenÇalışan bir cmm serve sunucusuna bağlanarak istemci/sunucu kilit dosyasını senkronize eder.
cmm sync --url http://192.168.1.100:8080 --token mySecretTokenİstemci bilgisayarınızda (Windows, macOS, Linux) hazırladığınız modpack kilit dosyasını (cmm.lock) ve isteğe bağlı olarak sunucu konfigürasyonlarını (config/) tek komutla uzak sunucunuza aktarır. Uzak sunucu token'ı doğrular, konfigürasyonları Zip-Slip korumasıyla açar ve delta senkronizasyon motorunu tetikleyerek yeni modları sunucuya indirir, eski modları temizler.
# Sadece mod kilit dosyasını push'lama:
cmm push --url http://123.45.67.89:8080 --token mySecretToken
# Hem mod kilit dosyasını hem de config/ klasörünü sunucuya push'lama:
cmm push --url http://123.45.67.89:8080 --token mySecretToken --include-config
# Değişiklik yapmadan simüle etme (Dry-run):
cmm push --url http://123.45.67.89:8080 --token mySecretToken --dry-runİstemci modlarınız ile uzak sunucudaki modları (veya iki farklı kilit dosyasını) 5 yönlü olarak karşılaştırır:
[OK]: İstemci ve sunucuda sürümü ve hash'i birebir eşleşen modlar.[MISMATCH]: Her iki tarafta da kurulu olan ancak sürümleri farklı olan modlar.[CLIENT]: İstemciye özel optimizasyon/görsel modlar (Sodium, Iris vb. — sunucuda olmaması normal).[SERVER]: Sunucuya özel performans/yönetim modları.[MISSING]: İki taraftan birinde eksik olan zorunlu ortak modlar.
# İstemci ile uzak sunucuyu karşılaştırma:
cmm diff --url http://123.45.67.89:8080 --token mySecretToken
# İki kilit dosyasını yerel olarak karşılaştırma:
cmm diff cmm.lock /tmp/server-cmm.lock
# JSON formatında çıktı alma (CI/CD otomasyonları için):
cmm diff --url http://123.45.67.89:8080 --token mySecretToken --jsonBilgisayarınızda kurulu olan Minecraft başlatıcılarını (Standart .minecraft, Prism Launcher, Modrinth App, CurseForge) otomatik olarak algılar ve modpack'inizi doğrudan o başlatıcının instance klasörüne aktarır.
# Algılanan başlatıcıları ve instance'ları listeleme:
cmm launcher list
# Modpack'i doğrudan seçilen başlatıcı instance'ına eşitleme:
cmm launcher sync "Prism - Fabric 1.21.1"Sunucunuzdaki aktif cmm.lock dosyasını HTTP üzerinden yayınlar ve POST /push ile uzaktan gelen modpack/config güncellemelerini kabul eder.
# Varsayılan portta (8080) başlatma:
cmm serve
# Özel port ve Bearer Token kimlik doğrulaması ile:
cmm serve --port 8085 --token "super-secret-sync-key"GET /lock: Kilit dosyasını döner (Authorization: Bearer <token>gerektirir).POST /push: Uzaktancmm pushile gelen modpack veconfig.ziparşivini alıp sunucuyu günceller.GET /health: Canlılık kontrolü.SIGINT/SIGTERM(Ctrl+C): 2 saniye içinde açık soket bırakmadan zarif kapanır (Graceful Shutdown).
Kurulu modlarınızı dağıtılabilir paket formatlarına dönüştürür.
# 1. Standart Modrinth .mrpack ZIP Arşivi Üretme:
# (modrinth.index.json, hash'ler, indirme linkleri ve config/ overrides içerir)
cmm export --format mrpack --output dist/MyPack.mrpack --name "My Modpack" --version-id "1.0.0"
# 2. Temiz GitHub Repo Konfigürasyonu Üretme:
# (Hassas tokenları temizlenmiş cmm.toml ve cmm.lock üretir)
cmm export --format github --output dist/github-repo/cmm tui komutu ile terminalinizde modern, fare ve klavye destekli bir kontrol paneli açılır.
cmm tui ┌────────────────────────────────────────────────────────────────────────────────────────┐
│ Cloud Mod Manager (cmm) Profile: Survival | MC: 1.21.1 | Loader: fabric │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ [1. Installed Mods] 2. Modrinth Search 3. Config Editor 4. Sync │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ STATUS NAME SLUG VERSION SIDE │
│ [PIN] Lithium lithium 0.12.7 both │
│ [UPDATE] Sodium sodium 0.5.8 both │
│ [OK] FerriteCore ferrite-core 6.0.1 both │
│ │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ [Tab/1-4] Sekme Değiştir | [?] Yardım | [p] Pin | [d] Sil | [u] Güncelle │
└────────────────────────────────────────────────────────────────────────────────────────┘
| Tuş | Eylem |
|---|---|
Tab / Shift+Tab |
Sekmeler arasında ileri / geri geçiş yapar. |
1, 2, 3, 4 |
Doğrudan ilgili sekmeye atlar (Mods, Search, Config, Sync). |
Up / Down veya k / j |
Listede veya form alanlarında yukarı/aşağı gezinir. |
Enter |
Mod detaylarını açar, arama sürümünü seçer veya form kaydeder. |
p |
Seçili modu sabitler / sabitlemeyi kaldırır ([PIN]). |
d veya x |
Seçili modu silmek için onay modalı açar. |
u |
Seçili mod için güncelleme kontrolü yapar. |
/ |
Yüklü modlar listesinde anlık arama/filtreleme çubuğunu açar. |
i |
Arama sekmesinde seçili modu tek tuşla yükler. |
s |
Ayar düzenleyicide değişiklikleri cmm.toml dosyasına kaydeder. |
r |
Ayar düzenleyicide değişiklikleri iptal edip diskten yeniden yükler. |
? veya F1 |
Kısayol yardım penceresini (Help Modal) açar/kapatır. |
Esc |
Açık modalleri veya arama filtresini kapatır. |
q veya Ctrl+C |
TUI arayüzünden temiz bir şekilde çıkar. |
[profile]
name = "MySurvivalServer"
minecraft_version = "1.21.1"
loader = "fabric"
loader_version = "0.19.3"
side = "server" # "server", "client" veya "both"
[paths]
mods_dir = "mods"
config_dir = "config"
[modrinth]
# Opsiyonel: Yüksek hız sınırları için Modrinth API tokenı
token = ""
[server]
# cmm serve için ayarlar
port = 8080
sync_token = "my-secret-token"cmm.lock, sunucunuzda kurulu modların değişmez (immutable) kopyasını tutar. git deposuna eklenerek tüm sunucuların birebir aynı modları ve hash'leri kullanması sağlanır:
[[mods]]
slug = "lithium"
name = "Lithium"
source = "modrinth"
project_id = "gvQqBUqZ"
version_id = "VvH3p7F4"
version = "0.12.7"
file_name = "lithium-fabric-mc1.21.1-0.12.7.jar"
sha512 = "a6f8b..."
download_url = "https://cdn.modrinth.com/..."
side = "both"
pinned = true- Geliştirme makinenizde modları kurun ve sabitleyin:
cmm add lithium cmm pin lithium git add cmm.toml cmm.lock git commit -m "Add lithium mod" git push origin main - Oracle Cloud veya üretim sunucunuzda tek komutla eşitleyin:
cmm sync --source github --repo my-org/my-server --branch main
Sunucunuzda zaten onlarca .jar dosyası varsa, tek tek mod aramanıza gerek yoktur:
cd /opt/minecraft/server
cmm init --mc-version "1.21.1" --loader "fabric" --side "server"
cmm sync localcmm tüm JAR'ların sağlama toplamlarını Modrinth ile eşleştirir, kilit dosyasını üretir ve tanınmayan özel JAR'lar varsa sizi uyarır.
- Yardım: Herhangi bir komut için
--helpekleyerek (örn.cmm sync --help) tüm bayrakları görebilirsiniz. - Oracle Cloud Performansı:
cmm-linux-arm64ikilisi ARM64 Ampere işlemciler için sıfır CGO bağımlılığı ile saf Go'da derlenmiştir; RAM ve CPU tüketimi asgari düzeydedir (<15MB RAM).