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.iniilemigrations/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¶
- Ayarlar
CLUSTER_ERP_değişkenlerinden ve.envdosyasından gelir; bkz. yapılandırma başvurusu. - Şema tek Alembic geçmişinden gelir; bkz. veritabanı göçleri.
- Canlılık ve hazırlık yoklamaları; bkz. security.txt ve hazırlık.
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ı.