Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İşletme

Öğretici

Yerel geliştirme kurulumu

Cluster ERP'yi bir iş istasyonunda ilk kez PostgreSQL veritabanı, sunucu, web uygulaması ve isteğe bağlı masaüstü istemciyle çalıştırın.

Bu öğretici bir geliştiriciyi temiz bir çalışma kopyasından, web uygulaması tarayıcıda açık, tek kiracılı çalışan bir sunucuya götürür. Deponun kendisinin sürekli tümleştirmede ve düğüm betiklerinde koştuğu komutları kullanır. Bir Linux düğümünü (bkz. bir Linux düğümü kurun) veya grafik Windows kurucusunu (bkz. Windows kurucusu) kapsamaz.

Ne kuracaksınız

Sonunda tek bir sunucu süreci CLUSTER_ERP_SERVER_HOST ve CLUSTER_ERP_SERVER_PORT ile belirlenen adreste yanıt verir, veritabanı en yeni revizyona göç ettirilmiştir ve web uygulaması /app/ altında açılır. İsteğe bağlı olarak masaüstü istemci aynı sunucuya bağlanır.

Başlamadan önce

  • Python 3.12 veya daha yenisi (pyproject.toml:9).
  • Bir PostgreSQL sunucusu. Sürekli tümleştirme PostgreSQL 16'ya karşı sınar (.github/workflows/ci.yml:79-81).
  • Depo kökünde bir kabuk: Alembic ve sunucu alembic.ini ile migrations/ klasörünü çalışma dizininden okur (src/cluster_erp/core/tenancy.py:681-684).

Adım 1: Python paketlerini kurun

Sınanmış sürümleri hash denetimiyle, ardından projeyi bağımlılık çözümü olmadan, ardından geliştirme araçlarını ve sabitlenmiş sürümdeki masaüstü araç takımını kurun.

python -m pip install --quiet --require-hashes -r requirements.lock
python -m pip install --quiet --no-deps -e . && python -m pip install --quiet -e ".[dev]" "PySide6==6.8.3"

Kaynak: .github/workflows/ci.yml:47-50. desktop eki Qt araç takımını; dev eki sabitlenmiş mypy ve ruff ile birlikte pytest paketini içerir (pyproject.toml:64-84). Araç takımı yalnız masaüstü istemci için gerekir.

Adım 2: Veritabanı rollerini ve veritabanını oluşturun

deploy/postgres-roles.sql içindeki iki parola yer tutucusunu düzenleyin, sonra dosyayı PostgreSQL süper kullanıcısıyla çalıştırın.

psql -U postgres -f deploy/postgres-roles.sql

Kaynak: deploy/postgres-roles.sql:1-11. Betik CREATEDB yetkili ve BYPASSRLS yetkisiz uygulama rolünü ve ayrı bir yedek rolünü oluşturur (deploy/postgres-roles.sql:13-42). Ardından uygulama rolünün sahibi olduğu, CLUSTER_ERP_DB_NAME ile vereceğiniz adda boş bir veritabanı oluşturun. Depoda bu adım için bir komut satırı yoktur; Windows kurulum sihirbazı bunu createdb ile yapar (installer/setup_wizard.pyw:598-610).

Adım 3: Ayar dosyasını yazın

Settings, CLUSTER_ERP_ önekli ortam değişkenlerini ve çalışma dizinindeki .env dosyasını okur (src/cluster_erp/config/settings.py:64-70). Depo kökünde en az şu satırları içeren bir .env oluşturun:

CLUSTER_ERP_DB_HOST=<value>
CLUSTER_ERP_DB_NAME=<value>
CLUSTER_ERP_DB_USER=<value>
CLUSTER_ERP_DB_PASSWORD=<value>
CLUSTER_ERP_SECRET_KEY=<value>

src/cluster_erp/config/settings.py:72-76 ve src/cluster_erp/config/settings.py:186 alanlarından kurulmuş örnek dosya. Gizli anahtarı şablondaki komutla üretin:

python -c "import secrets; print(secrets.token_hex(32))"

Kaynak: deploy/env.example:16-17. Hata ayıklama kipi dışında varsayılan, kısa veya zayıf bir gizli anahtar açılışı durdurur (src/cluster_erp/config/settings.py:771-808). Diğer her değişken ayarlar başvurusunda açıklanır.

Adım 4: Veritabanını göç ettirin

python -m alembic upgrade head

Kaynak: .github/workflows/ci.yml:113. Tek kiracılı bir sunucu açılışta veritabanını göç ettirmez; bunu yalnız çok kiracılı sunucu yapar (src/cluster_erp/server/app.py:99-113, deploy/install.sh:222-225). Bkz. veritabanı göçleri.

Adım 5: Sunucuyu başlatın

python -m cluster_erp.server.main

Kaynak: src/cluster_erp/server/main.py:12-62. CLUSTER_ERP_DEBUG=true ile sunucu src/cluster_erp/server, core veya modules altındaki dosyalar değişince yeniden yüklenir (src/cluster_erp/server/main.py:15-24). Windows'ta her zaman tek süreç koşar (src/cluster_erp/server/main.py:27-35).

Beklenen sonuç, src/cluster_erp/server/app.py:876-943 üzerinden çıkarıldı: kullanıcısı olmayan bir veritabanında açılış ilk yöneticiyi oluşturur; göçle tohumlanmış varsayılan hesabı içeren bir veritabanında o hesabın parolasını değiştirir. İki durumda da CLUSTER_ERP_BOOTSTRAP_ADMIN_PASSWORD ayarlı değilse üretilen parola yalnız sahibinin okuyabildiği bir dosyaya yazılır ve günlük parolayı değil dosyayı adlandırır (src/cluster_erp/server/app.py:591-608).

Adım 6: Web uygulamasını açın

Tarayıcıda sunucu adresinde /app/ yolunu açın ve ilk yöneticiyle oturum açın. Sunucu depo klasörü webapp/ dizinini /app ve /app/v altına bağlar (src/cluster_erp/server/app.py:1633-1644). Günlük satırının dediği gibi ilk oturumda parolayı değiştirin ve parola dosyasını silin (src/cluster_erp/server/app.py:918-922).

Adım 7: Masaüstü istemciyi başlatın (isteğe bağlı)

python -m cluster_erp.desktop.main

Kaynak: installer/setup_wizard.pyw:722. İstemci ve ayarları masaüstü istemciyi çalıştırın sayfasında açıklanır.

Sonucunuzu denetleyin

  • GET /health, veritabanına dokunmadan {"status": "healthy", "version": ...} döndürür (src/cluster_erp/server/app.py:1469-1474).
  • GET /ready, "status": "ready" ve "database": "pass" ile HTTP 200 döndürür (src/cluster_erp/server/app.py:1476-1504).

Ne öğrendiniz

Sonraki adımlar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
ilk yönetici ensure_bootstrap_admin Açılışın kullanıcısı olmayan bir veritabanında oluşturduğu ilk yönetici hesabı. ilk yönetici src/cluster_erp/server/app.py:894-900
ilk parola dosyası bootstrap_password_file Üretilen ilk parolayı alan, yalnız sahibinin okuyabildiği dosya. ilk parola dosyası src/cluster_erp/config/settings.py:205

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13