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 sayfadaGerekli 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ükler

Gerekli 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.

  1. Bağımlılıkları kurun:

bash python3 -m pip install -r requirements.txt

  1. Ortam değişkenlerini hazırlayın; özellikle GIS_MOD değerini açıkça belirleyin.
  2. Veritabanı şemasını uygulayın ve kurulum kimliğini hazırlayın:

bash python3 manage.py schema python3 manage.py kurulum-kimligi

  1. İ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

  1. API sürecini hizmet yöneticinizle çalıştırın; ASGI uygulama hedefi app:app değeridir. Statik arayüzü ve API yönlendirmesini aynı HTTPS kaynağında sunun. Statik uygulama erişimi için kullanılabilen oturum kontrol ucu GET /api/auth/check olup geçerli oturumda 204 dö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.

  1. Kurulumun veritabanı bağlantısını, uygulama rolünü, yedek dizinini ve dosya alanını kaydedin; sırları normal günlüklere yazmayın.
  2. Yetkili yönetici hesabıyla yedekleme aracını çalıştırın.
  3. İşlemin çıkış kodunu ve geri yükleme doğrulamasını inceleyin.
  4. Dosya alanının aynı kurtarma planına dahil olduğunu kontrol edin.
  5. 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.