Kurulum ve işletim bileşenleri
Uygulamanın bağımlılıklarını, ortam ayarlarını ve yönetim komutlarını hazırlayın.
Son güncelleme:
Bu sayfada
Gerekli bileşenlerOrtam değişkenleriİsteğe bağlı aktarım bileşenleriİlk hazırlık sırasıYönetim komutlarıKurulumu kontrol etmeYedekleme kapsamını belirleyinGeri yüklemeyi doğrulayınGüncelleme ve günlüklerGerekli bileşenler
Uygulama Python üzerinde FastAPI ve Uvicorn ile çalışır; veriler PostgreSQL/PostGIS'te tutulur. Tarayıcı arayüzü ile API aynı HTTPS kaynağı üzerinden sunulmalıdır. Oturum çerezi Secure niteliğindedir. API sürecini başlatmak, statik arayüzü veya HTTPS sunumunu tek başına hazırlamaz.
| Bileşen | Kullanılan paketler ve işlev |
|---|---|
| HTTP ve doğrulama | fastapi, uvicorn, pydantic, python-multipart |
| Veritabanı | psycopg, psycopg-pool |
| Geometri ve koordinat | ezdxf, pyproj, numpy, shapely, pyshp, pyogrio |
| Tablo ve çıktı | openpyxl, XlsxWriter, reportlab, pillow, charset-normalizer |
| Lisans dosyası doğrulama | cryptography |
Paket sürümlerini uygulamayla birlikte verilen requirements.txt dosyasından kurun. PostgreSQL veritabanı hazır olmalı; şema uygulayan veritabanı hesabı PostGIS eklentisini ve gerekli tabloları oluşturabilecek yetkiye sahip olmalıdır. Kablo bölme, gerekli PostGIS geography işlevlerini ayrıca kontrol eder; bunlar yoksa bölme işlemi 503 ile reddedilir.
Ortam değişkenleri
Komutlar ve API hizmeti aynı veritabanı ve kurulum modunu kullanmalıdır. Değerleri hizmetin ortam yapılandırmasından sağlayın.
| Değişken | Anlamı |
|---|---|
GIS_DSN |
PostgreSQL bağlantı bilgisi. Kuruluma ait veritabanı ve hesap için tanımlanır. |
GIS_DATA |
Geçici aktarım dosyaları ile kalıcı optik ölçüm ve saha eklerinin tutulduğu veri alanı. Uygulama hesabı yazabilmelidir. |
GIS_MOD |
dedicated kurum içi kurulum; saas merkezi hizmet. Tanımlanmazsa dedicated kullanılır. |
GIS_LISANS_ANAHTARLARI |
Güvenilen lisans doğrulama yapılandırmasının dosyası. |
GIS_KONTROL_URL |
Kullanım gönderiminde kullanılacak merkezi alıcı adresi; ayarlanmamışsa kurulum kaydındaki değer kullanılır. |
GIS_OPTIK_DOSYA_TUTMA_MB |
Kurum başına fiziksel optik ölçüm dosyası tutma tavanı. Kurulumda belirlenir; geçersiz ayarda uygulamanın varsayılanı kullanılır ve kayıt üretilir. |
GIS_WEBHOOK |
kapali webhook yönetimini ve teslimi kapatır; varsayılan açık. |
GIS_WEBHOOK_HTTP |
Yalnız kurum içi kurulumda 1 değeri HTTP hedefe izin verir; varsayılan HTTPS. |
GIS_OGC |
kapali OGC yayınının bütün uçlarını kapatır; varsayılan açık. |
GIS_OGC_SORGU_ANAHTAR |
1 yalnız OGC için URL sorgu anahtarını açar; varsayılan kapalı. |
GIS_SOR |
kapali SOR ayrıştırmasını kapatır; dosya saklama ile ayrıştırma farklı işlemlerdir. |
GIS_DATA yalnız geçici alan değildir. Ölçüm dosyaları ile saha fotoğraf/belge eklerini korumak için bu alanı veritabanıyla birlikte işletim planına dahil edin. Proje paketi ölçüm eklerinin dosya içeriğini taşımaz. Dosya tutma sınırında, kurumun depolama limiti ile GIS_OPTIK_DOSYA_TUTMA_MB değerinin küçüğü uygulanır; geri alma için tutulan eski ölçüm dosyaları da sayılır.
İsteğe bağlı aktarım bileşenleri
FileGDB için pyogrio içindeki OpenFileGDB, DGN için DGN okuma sürücüsü gerekir. DGN desteği yalnız V7’dir. Sürücü kullanılabilirliği süreç açılışındaki kurulumla ilişkilidir; GET /api/meta yanıtındaki biçimleri kontrol edin. Biçimin listelenmesi bütün kaynak dosyaların eksiksiz çözülebileceği anlamına gelmez.
İlk hazırlık sırası
Aşağıdaki komutlar, uygulamanın Python dosyalarının bulunduğu çalışma dizininde ve seçilmiş Python ortamında çalıştırılır. Büyük harfli sözcükler kurulumda doldurulacak yer tutuculardır.
- Bağımlılıkları kurun:
bash
python3 -m pip install -r requirements.txt
- Ortam değişkenlerini hazırlayın; özellikle
GIS_MODdeğerini açıkça belirleyin. - Veritabanı şemasını uygulayın ve kurulum kimliğini hazırlayın:
bash
python3 manage.py schema
python3 manage.py kurulum-kimligi
- İlk süper yönetici hesabını oluşturun:
bash
python3 manage.py superadmin KULLANICI 'GÖRÜNEN AD'
Parola standart girdinin ilk satırından okunur; komut satırı argümanı değildir. Bu komutta en az 10 karakter gerekir. Aynı kullanıcı adı varsa hesap güncellenir; bu komut yalnız yeni kayıt oluşturan bir işlem değildir.
5. dedicated kurulumda lisans dosyası akışını tamamlayın. Durumu kontrol edin:
bash
python3 manage.py lisans-kontrol
- API sürecini hizmet yöneticinizle çalıştırın; ASGI uygulama hedefi
app:appdeğeridir. Statik arayüzü ve API yönlendirmesini aynı HTTPS kaynağında sunun. Statik uygulama erişimi için kullanılabilen oturum kontrol ucuGET /api/auth/checkolup geçerli oturumda204döndürür.
Yönetim komutları
| Komut | İşlev |
|---|---|
python3 manage.py schema |
Verilen şema dosyasını uygular. |
python3 manage.py org KISA_AD 'KURUM ADI' |
Kurum oluşturur; kısa ad varsa adını günceller. |
python3 manage.py user KISA_AD KULLANICI 'GÖRÜNEN AD' ROL |
Kuruma kullanıcı yazar; rol için admin, editor veya viewer kullanılır. Parola standart girdiden okunur ve en az 8 karakterdir. Aynı kullanıcı adı varsa hesabı günceller. |
python3 manage.py kullanim-kaydet |
Günün ilk yerel kullanım ölçümünü kaydeder. Kaçırılan günleri doldurmaz. |
python3 manage.py talep-uret talep.sosotalep |
Kurulumun lisans talep dosyasını üretir. |
python3 manage.py rapor-uret AAAA-AA rapor.sosorapor |
Seçilen ayın kayıtlı günlerinden kullanım raporu üretir. |
python3 manage.py telemetri-gonder |
Etkin gönderim ayarına göre kullanım bilgisini gönderir; zamanlayıcı kurmaz. |
Kurum ve kullanıcı komutları doğrudan veritabanına yazan yönetim araçlarıdır; normal kullanıcı işlemlerinde yetki ve kota denetimli uygulama ekranlarını veya API'yi kullanın. SaaS kurum yönetimi Kontrol Merkezi üzerinden yürütülür. Merkezi yönetime özgü servis kimlik doğrulaması, proje API'si için genel API anahtarı değildir.
Kurulumu kontrol etme
GET /api/health veritabanına erişerek ok, projects ve kablo_bolme alanlarını döndürür. kablo_bolme, gerekli PostGIS yeteneğinin bulunduğunu belirtir. Bu yanıt lisansın yazmaya açık olduğunu veya bütün iş akışlarının kullanılabildiğini göstermez; lisans, oturum ve proje izinlerini ayrı kontrol edin.
Yedekleme kapsamını belirleyin
Veritabanı ile GIS_DATA alanını birlikte planlayın. Veritabanında kayıtlar, ilişkiler, kullanıcılar ve işlem verileri bulunur; optik ölçüm dosyaları ile saha fotoğraf/belgelerinin içerikleri ayrıca veri dizinindedir. Proje paketi bir kurulum yedeği değildir.
Ürünle verilen işletim betikleri kurulmuşsa soso-gis-backup, veritabanı dökümüyle aynı veri anına ait içerik manifestosunu alır ve ayrı geçici veritabanında geri yükleme kontrolü yapar. Bu betiğin varlığı dosya alanının veya sunucu dışı kopyanın yedeklendiğini göstermez. Barındırma yeri ve yedekleme koşulları sözleşmede belirtilir.
- Kurulumun veritabanı bağlantısını, uygulama rolünü, yedek dizinini ve dosya alanını kaydedin; sırları normal günlüklere yazmayın.
- Yetkili yönetici hesabıyla yedekleme aracını çalıştırın.
- İşlemin çıkış kodunu ve geri yükleme doğrulamasını inceleyin.
- Dosya alanının aynı kurtarma planına dahil olduğunu kontrol edin.
- Kurtarma denemesini ayrı ortamda yapın; yalnız dosyanın oluşmasına bakarak yedeği kullanılabilir saymayın.
soso-gis-backup
systemctl status soso-gis-backup
journalctl -u soso-gis-backup
Komutlar ürünün işletim betikleri ve servis adlarıyla hazırlanmış kurulum içindir. Başka dizin veya servis adı kullanıyorsanız ilgili kuruluma uyarlayın. Bu belgede komutların sizin ortamınızda çalıştırıldığı iddia edilmez.
Geri yüklemeyi doğrulayın
YEDEK.dump gerçek yedek dosyanızın yer tutucusudur. İşletim aracı önce yeni bir veritabanına yükleyip manifesto ve uygulama rolünü doğrular:
soso-gis-restore YEDEK.dump
Etkinleştirme ayrı, yazan bir yönetim adımıdır. Aracın --etkinlestir seçeneği servisi durdurur, doğrulanmış veritabanını etkinleştirir ve eski veritabanını ayrı adla tutar. Bunu kurumunuzun onaylı kurtarma planı içinde uygulayın. Yedek anından sonraki kayıtların nasıl korunacağını ve veri dizininin hangi kopyayla eşleştiğini önceden belirleyin.
Dikkat: Veritabanını geri yüklemek, veri alanındaki dosyaların da geri döndüğü anlamına gelmez. Sağlık ucunun yanıt vermesi bütün dosyaların, yetkilerin ve iş akışlarının doğru olduğunu tek başına göstermez.
Güncelleme ve günlükler
Güncellemeden önce veritabanı ve dosya yedeğini, mevcut uygulama dosyalarının geri dönüş kopyasını ve lisans durumunu kontrol edin. Yeni uygulama bağımlılıkları ile şemasını aynı sürümün tesliminden uygulayın. Şema komutu python3 manage.py schema biçimindedir; API hizmetiyle aynı veritabanı ve kurulum modunu kullanır.
Yeniden başlatma sonrasında GET /api/health, oturum açma, proje okuma ve izinli bir çalışma alanında temel düzenleme sonucunu ayrı ayrı kontrol edin. Sunucu sürümünü X-GIS-Surum başlığından okuyun. Eski arayüz sekmesinde yenileme uyarısı çıkarsa arayüzü yenileyin; yalnız sunucu sürecinin açılmasını kabul saymayın.
Eski kodu geri koymanın yeni veriyle her zaman uyumlu olacağını varsaymayın. Geri dönüş kararında yeni sürümle yazılan kayıtların, dosyaların ve şemanın önceki sürümdeki davranışını inceleyin.
journalctl -u soso-gis-api
journalctl -u soso-gis-webhook
Günlüklerde hizmet başlangıcı, bağlantı ve teslim hatalarını inceleyin; parola, erişim anahtarı, webhook sırrı veya hassas ham gövde ek günlüklemeyin. Ters vekilde TLS ve aynı kaynak yönlendirmesini, oturum çerezinin güvenli aktarımını kontrol edin. Webhook teslimi ve OGC bağlantısı kendi kabul adımlarını gerektirir.