30 dakikada, üç senaryoda

Linux + Docker / Podman üzerinde on-premise, internete kapalı air-gap ortam veya Azure / AWS / GCP bulutta — bootstrap.sh tek komutla kurulum, üretim öncesi tüm gereksinimleri bu sayfada bulursunuz.

2026-05-20 · Sıfırdan Azure VM'de uçtan uca dry-run doğrulandı (12/12 container, 4 source, 4 motor sample data, 5/5 smoke endpoint)
v1.7.22 (2026-05-26) — install/ + PDF/Excel kurumsal kimlik: PDF "Get Info" + Excel Backstage "Custom Properties" artık DMC BİLGİ TEKNOLOJİLERİ YAZILIM DANIŞMANLIK SANAYİ VE TİCARET LİMİTED ŞİRKETİ ünvanlı (önceden "Anonymous"). KVKK / Privacy / DPA yasal sayfalarda tam unvan + adres. 5 servis (backend + frontend + collector + ingestor + advisor) ACR prod namespace tek tag'de hizalı. Static container IP (mongo 172.30.0.10, backend 172.30.0.20) + Motor connection 20 s timeout + 20 s mongo keepalive · Türkçe Unicode font (DejaVu) PDF'de baked · install/smoke.sh 7 kontrol noktası. Müşteri demo'sundaki 502/500 race penceresi sıfırlandı, raporlar tam kurumsal kimlikli.
A4 Yazdırılabilir Kurulum Kılavuzu

Adım adım dummy-friendly anlatım — kurum içi paylaşım için PDF olarak indirin. Plain-language installation walkthrough, A4 PDF.

TR · PDF EN · PDF Çoklu Linux Kılavuzu (TR/EN · PDF)
BAYİ / SHOWCASE
Müşteri prospect demosu — kendi domain'inizde

PoC öncesi 4 motorlu showcase (SQL Server / PG / MySQL / Mongo + auto-login viewer + GuidedTour). bootstrap-customer-demo.sh tek script — 4 kritik blokeri (frontend build-arg, CORS+nginx, certbot, bundle DCE) 15 dakikada kapatır. DEMO_MODE=true → lisans bypass'li, sadece showcase, satış kanalı değildir.

Bayi Kılavuzu (TR · PDF) bootstrap script (GitHub) [email protected]
30dkTek komut kurulum
3Senaryo: on-prem / air-gap / bulut
7Desteklenen Linux dağıtımı
SLABackup + DR runbook

Doğru ölçü, doğru maliyet

İzlediğiniz instance sayısı + retention süresi ile sunucu boyutu doğrudan orantılıdır. Aşağıdaki tablo gerçek production deployment'lardan çıkarılmıştır; üst limitlerin %20 üzerinde mostlanmasi önerilir.

Donanım gereksinimleri

Senaryo vCPU RAM Disk (SSD) Notlar
Geliştirme 24 GB30 GB En az bir test DB instance'ı eklemek gerekir (her tenant kendi source'una bağlanır)
Küçük (≤10 instance) 48 GB50 GB Önerilen üretim minimum
Orta (50 instance) 816 GB200 GB Retention 30 gün varsayılır
Büyük (200 instance) 1632 GB500 GB Mongo replica set (3 node) önerilir
Kurumsal (500+ instance) 3264 GB1 TB+ HA topology zorunlu, ayrı load balancer

Disk tüketimi yaklaşık: 0.5–2 GB / instance / ay (toplama sıklığı + retention'a bağlı).

İşletim sistemi desteği

Dağıtım Sürüm Container Runtime Durum
Ubuntu22.04 LTS, 24.04 LTSDocker 24+ veya Podman 4+Tam destek
Debian12 (Bookworm)Docker 24+Tam destek
RHEL9, 8.6+Podman 4+ (default) veya DockerTam destek
Oracle Linux9, 8Podman 4+Tam destek
Rocky Linux9Podman 4+Tam destek
AlmaLinux9Podman 4+Tam destek
openSUSE Leap15.5+Docker 24+⚠️ Topluluk testi
Amazon Linux2023Docker 24+⚠️ Topluluk testi

SELinux enforcing modunda RHEL/Oracle/Rocky/Alma için ek ayar gerekebilir; SELINUX runbook ayrı dokümandır.

Ağ portları

Port Protokol Yön Amaç
80 / 443HTTPSMüşteri → SentinelReverse proxy üzerinden web UI
3000HTTPLANFrontend Nginx (reverse proxy yoksa)
8001HTTPLANBackend FastAPI
27017TCPSadece localhostMongoDB — dış erişim KAPALI
1433 / 5432 / 3306 / 27017TCPSentinel → Hedef DBİzlenen veritabanlarına ulaşım

Production'da yalnız 80/443 dışarı açılır; diğer portlar firewall'da bloklanmalı.

Üç farklı yol, aynı bootstrap.sh

A · On-Premise

Linux + Docker / Podman

Kurum sunucusunda Ubuntu/RHEL/Debian üzerinde Docker veya Podman ile. Internet erişimi var; ACR'dan image pull. 5-15 dakika kurulum.

  • apt/dnf ile Docker kurulumu
  • git clone + bootstrap.sh interaktif wizard
  • Üretim için reverse proxy + SSL
B · Air-Gap

İnternete kapalı ortam

Banka çekirdek ağı, kamu, savunma, sigorta için iki host modeli — stage'de image hazırla, USB/SCP ile target'a taşı, target'ta bootstrap.

  • Stage host: docker save → tar dosyası
  • Target host: docker load + bootstrap.sh
  • Ed25519 imzalı offline lisans
Air-gap detay sayfası →
C · Bulut

Azure / AWS / GCP

Aynı container image'ları yönetilen Linux VM veya Kubernetes üzerinde. Bulut üreticisinin yönetilen DB'leri (Azure SQL, RDS, Cloud SQL) izlenebilir.

  • Azure VM B4ms / AWS t3.xlarge / GCP e2-standard-4
  • Bulut yük dengeleyiciden 443 → Sentinel
  • Bulut DB'leri için ek ağ kuralı

Tek komut, 5 dakikada üretim hazır

Linux sunucunuza root olarak şu tek komutu çalıştırın. Kurulum sırasında size yalnızca admin e-posta + parola sorulur. Geri kalan her şey otomatiktir: Docker yoksa kurulur, imajlar registry'den anonim olarak çekilir, MongoDB Replica Set ayağa kaldırılır, admin kullanıcı oluşturulur. Azure hesabı veya başka bir credential gerekmez.

Tek komut — tüm major Linux dağıtımlarında aynı

# Sunucunuza SSH ile bağlanın, sonra: curl -fsSL https://sentineldb360.com/install.sh | sudo bash

Desteklenen Linux dağıtımları

install.sh, Docker'ın resmi get.docker.com convenience script'ini kullanır — tek komut aşağıdaki tüm dağıtımlarda aynı şekilde çalışır:

Dağıtım Sürüm Tek komut Not
Ubuntu22.04 / 24.04 LTSEn yaygın test edilen
Debian12 (Bookworm) / 13Ubuntu ile birebir
RHEL8 / 9dnf üzerinden Docker
Rocky Linux8 / 9RHEL kompat
AlmaLinux8 / 9RHEL kompat
Oracle Linux8 / 9RHEL kompat
CentOS Stream9 / 10RHEL upstream
Fedora38+Docker resmi destek
Amazon Linux2023EC2'de yaygın
SUSE / openSUSELeap 15.5+Önce zypper install docker docker-compose
Alpine3.18+Önce apk add docker docker-cli-compose
Arch / ManjarorollingÖnce pacman -S docker docker-compose

⚠ işaretli dağıtımlar: Docker'ı kendi paket yöneticisiyle önce kurun, ardından aynı tek komutu çalıştırın. install.sh mevcut Docker'ı algılar, kuruluysa atlar. Architecture: AMD64 (x86_64) — ARM64 için air-gapped tarball gerekli (DMC'ye danışın).

Non-interactive (CI / IaC / Ansible)

# Admin bilgilerini env üzerinden geçin — soru sorulmaz curl -fsSL https://sentineldb360.com/install.sh | \ sudo [email protected] \ SENTINEL_ADMIN_PASS='GüçlüParola123!' \ bash

Tüm çevre değişkenleri (opsiyonel override)

Değişken Açıklama Default
SENTINEL_MODEKurulum modu: poc veya productionpoc
SENTINEL_ADMIN_EMAILİlk admin e-posta (interaktif modda sorulur)
SENTINEL_ADMIN_PASSİlk admin parolası (min 12 char; production: büyük+küçük+rakam+sembol)
SENTINEL_LICENSE_KEYEd25519 imzalı JWT lisans (production zorunlu)
SENTINEL_PUBLIC_IPPublic IP override (Azure/AWS metadata otomatik denenir)otomatik
SENTINEL_VERSIONİmaj sürümüv0.2.1
SENTINEL_BASE_URLAsset host override (air-gap için kendi mirror)SWA URL
SENTINEL_ACR_USERNAMEPrivate ACR pull kullanıcısı (token ile birlikte)— (anonim)
SENTINEL_ACR_PASSWORDPrivate ACR pull parolası/token— (anonim)
SENTINEL_FIREWALL_AUTOOPENufw/firewalld portları otomatik aç (80, 3000, 8001)poc=yes, prod=no
SENTINEL_SKIP_DOCKER_INSTALLDocker kurulumunu atla (zaten kurulu varsayılır)no
SENTINEL_KEEP_PLAINTEXT_PASS.env'den seed sonrası ADMIN_PASSWORD'u silmesin (uyarı)no
INSTALL_DIRKurulum kök dizini/opt/sentineldb360

PoC vs Production modları

SENTINEL_MODE ile iki ana mod arasında geçiş yapabilirsiniz. PoC modu test/değerlendirme için, production modu üretim deploy'u için.

Davranış PoC (default) Production
SENTINEL_LICENSE_KEYOpsiyonel (LICENSE_LOCAL_FALLBACK=true)Zorunlu (Ed25519 JWT)
14 gün ücretsiz tam özellik— (lisans şart)
Docker kurulum onayıOtomatik (sessiz)İnteraktif onay
Firewall otomatik açufw/firewalld açarSysadmin manuel (komut önerilir)
Parola politikasıMin 12 karakter12 + büyük + küçük + rakam + sembol
Min CPU2 vCPU4 vCPU
Min RAM4 GB8 GB
OS beyaz listeBilinmeyen distro uyarıyla geçerSıkı (Ubuntu/Debian/RHEL/Rocky/Alma/Oracle/CentOS/Fedora/Amazon Linux)
Plaintext parola seed sonrası silinir✓ (zorlanır)

Production örnek (kurumsal müşteri için)

# DMC'den lisans satırı aldıktan sonra: curl -fsSL https://sentineldb360.com/install.sh | \ sudo SENTINEL_MODE=production \ SENTINEL_LICENSE_KEY='eyJhbGciOiJFZERTQSI...' \ [email protected] \ SENTINEL_ADMIN_PASS='GüçlüProdParola123!@' \ bash

Air-gapped + Private ACR (banka, kamu, kritik altyapı)

# Asset'leri kendi intranet mirror'unuzda servis edin (sentineldb360.com erişimi yok) # ACR yerine kendi private registry mirror'unuzu pull edin sudo \ SENTINEL_MODE=production \ SENTINEL_BASE_URL=https://intranet.kurum.com/sentinel \ SENTINEL_ACR_USERNAME=mirror-pull \ SENTINEL_ACR_PASSWORD="$(cat /etc/sentinel/acr-token)" \ SENTINEL_LICENSE_KEY="$(cat /etc/sentinel/license.jwt)" \ SENTINEL_FIREWALL_AUTOOPEN=no \ bash install.sh

install.sh 9 aşaması (toplam ~5-10 dk)

  1. Sistem kontrolü — OS beyaz liste, x86_64 zorunlu, CPU/RAM (mod-bazlı min), disk, swap/OOM uyarısı, SELinux Enforcing algılama, port çakışması (80/3000/8001-8004 ss ile), network erişilebilirlik testi.
  2. Docker — Mevcut sürüm + compose v2.20+ kontrolü. Yoksa get.docker.com sha256 doğrulamayla kurulur (production modda interaktif onay), kurulum log'u /tmp/'a yazılır.
  3. Asset indirme/opt/sentineldb360/'a 11 dosya HTTPS download, retry+kritik dosya bütünlük kontrolü.
  4. Container Registry erişimi — Private credential verilirse docker login, yoksa anonim pull doğrulama (test imajı çekilir, sonra silinir).
  5. Admin kullanıcı — İnteraktif e-posta + parola (TTY hack curl | bash'ta da çalışır) veya env. Production modda parola politikası zorlanır.
  6. Lisans — Production: SENTINEL_LICENSE_KEY JWT format kontrolü (xxxx.yyyy.zzzz). PoC: LICENSE_LOCAL_FALLBACK=true otomatik.
  7. Konfigürasyon.env.production üretilir (chmod 600, root:root): 256-bit JWT/SECRET/ENC, MongoDB pass, public IP otomatik tespit. Firewall mod-bazlı.
  8. Container'lar — ACR pull (~2.5 GB), MongoDB keyfile + veri dizinleri, docker compose up -d.
  9. Sağlık kontrolü — Backend /api/health max 120s bekler, frontend + site, MongoDB RS 3/3 (container_name bağımsız: compose ps -q), admin user idempotent doğrulama (create_admin.py), .env'den plaintext ADMIN_PASSWORD silinir.

Kurumsal sertleştirme özellikleri

install.sh v2 banka/kamu/kritik altyapı için sertleştirilmiştir. Aşağıdaki kontroller otomatik yapılır:

Kurulum bittikten sonra

# Tarayıcı: ekrana yazılan URL'e gidin http://<sunucu-public-ip>:3000/login # Admin: kurulumda girdiğiniz e-posta + parola # Loglar sudo docker compose -f /opt/sentineldb360/docker-compose.prod.yml logs -f # Servis durumu sudo docker compose -f /opt/sentineldb360/docker-compose.prod.yml ps # Sürüm yükselt (örn v0.3.0 çıktığında) sudo sed -i 's|:v0.2.1|:v0.3.0|g' /opt/sentineldb360/docker-compose.prod.yml sudo docker compose -f /opt/sentineldb360/docker-compose.prod.yml pull sudo docker compose -f /opt/sentineldb360/docker-compose.prod.yml up -d

Lisans modeli — 14 gün ücretsiz, lisans almaya gerek yok

✓ Kurulum biter bitmez 14 gün ücretsiz tam özellik PoC çalışır — DMC'den lisans almanıza, herhangi bir kayıt yapmanıza, kredi kartı vermenize gerek yoktur. install.sh otomatik olarak LICENSE_LOCAL_FALLBACK=true ayarını açar; tüm 116 compliance sekmesi, AI Insights, blocking analizi, security center — hepsi kullanılabilir.

JWT lisansı nedir?

14 gün sonunda kalıcı kullanım için DMC'den bir JWT lisansı alırsınız. JWT (RFC 7519), JSON Web Token — küçük bir metin dosyası içine müşteri adı, plan tier (Starter / Professional / Enterprise), instance limiti, geçerlilik tarihi gibi bilgiler kodlanmış halde. Ed25519 imzalı (modern asimetrik kriptografi) — DMC'nin private key'i ile imzalanır, sizin sunucunuzda public key ile doğrulanır.

Lisans almak için (PoC bittikten sonra ya da daha erken): [email protected] — instance sayısı ve plan tercihinizi belirtin, aynı gün e-posta ile lisans satırı düzenlenir. Fiyatlar: /pricing.

Üç ana bulutta aynı container, farklı yol

Sentinel DB 360 cloud-agnostic — aynı Docker image'ları her bulutta çalışır. Tek fark: VM provisioning + ağ yapılandırma + yönetilen DB izleme yetkisi. Aşağıdaki rehberler 50 instance senaryosu içindir; daha büyük için Kubernetes önerilir.

Microsoft Azure

B4ms (4 vCPU, 16 GB RAM)

Azure VM (Standard_B4ms) + Premium SSD 200GB + NSG (80/443 izin). Azure SQL DB / MI / VM üzerindeki SQL Server izlenebilir. Application Gateway veya Front Door reverse proxy olarak kullanılabilir.

  • Marketplace'da resmi liste yok (P2 backlog)
  • Azure Container Registry (ACR) entegrasyonu hazır
  • Azure AD SSO opsiyonel (SAML 2.0 / OIDC)
  • Azure Key Vault → secrets_loader entegrasyonu

Amazon Web Services

t3.xlarge (4 vCPU, 16 GB RAM)

EC2 (t3.xlarge) + gp3 EBS 200GB + Security Group (80/443 izin). RDS (PostgreSQL/MySQL/SQL Server) + Aurora + DocumentDB izlenebilir. ALB / CloudFront reverse proxy.

  • AWS Marketplace'da resmi liste yok (P2 backlog)
  • ECR ile özel registry entegrasyonu
  • IAM Identity Center (SSO) opsiyonel
  • AWS Secrets Manager → secrets_loader entegrasyonu (boto3)

Google Cloud Platform

e2-standard-4 (4 vCPU, 16 GB RAM)

Compute Engine (e2-standard-4) + SSD persistent disk 200GB + Firewall (80/443 izin). Cloud SQL (PostgreSQL/MySQL/SQL Server) + AlloyDB izlenebilir. Cloud Load Balancing reverse proxy.

  • GCP Marketplace'da resmi liste yok (P2 backlog)
  • Artifact Registry entegrasyonu
  • Cloud Identity (SSO) opsiyonel
  • Secret Manager API → secrets_loader entegrasyonu

Kubernetes (büyük ölçek)

200+ instance senaryosunda Kubernetes önerilir — backend yatay scale (replica 2-N), Ingestor Redis Streams consumer group ile yatay scale, MongoDB replica set StatefulSet olarak. AKS / EKS / GKE üçü de desteklenir; Helm chart hazırlık aşamasında (P2-3 backlog: MongoDB sharding ile birlikte).

KümelemeÖnerilen Node BoyutuNode SayısıNotlar
AKSStandard_D4s_v53+Azure CNI + Premium SSD storage class
EKSm5.xlarge3+EBS gp3 storage class + ALB ingress
GKEe2-standard-43+SSD persistent disk + GCE ingress

Kuruldu sayılmaz — üretim için bunları yap

Reverse Proxy + SSL

Nginx / Apache / IIS ARR örnekleri

3 hazır config dosyası (nginx/, examples/) — HTTPS, WebSocket upgrade, gzip, security headers (HSTS, CSP, X-Frame-Options) dahil. Kurum PKI'sından sertifika ile çalışır.

Backup + DR

BACKUP_RESTORE.md runbook

mongodump + oplog tail + LVM snapshot + 3 ay periyot restore tatbikat. RTO 30dk / RPO 1sa hedefleri. Tatbikat checklist + DR günlüğü şablonu.

Systemd / Auto-start

2 systemd unit dosyası

Sunucu reboot sonrası container'ların otomatik başlaması için sentinel-sd360.service + sentinel-sd360-collector.service. Rootless mode için lingering aktif.

Secrets / Vault

AWS Secrets Manager / HashiCorp Vault

secrets_loader.py ile JWT_SECRET, MongoDB password, API key'ler vault'tan okunur. Container env'de plain text değil — kurum güvenlik politikasına uyumlu.

SSO / Identity

SAML 2.0 + OIDC

Azure AD, Okta, Google Workspace, ADFS desteği. SSO_PROVIDER=oidc veya saml. MFA TOTP/SMS (pyotp) ek katman olarak.

Self-Observability

Prometheus + /healthz + log correlation

Kurum SRE ekibi Sentinel'in kendisini Grafana'dan izleyebilir. /metrics endpoint, /healthz subsystem checks, X-Request-ID correlation, 15dk dedup error mail.

Versiyon yükseltme, sorun çözme

Versiyon yükseltme prosedürü

  1. Backup almongodump --out /opt/sentineldb360/backup-$(date +%F) (BACKUP_RESTORE.md)
  2. Yeni image'ları pull etdocker compose -f docker-compose.prod.yml pull
  3. CHANGELOG.md oku — breaking change varsa migration script gerekebilir
  4. Servisleri yeniden başlatdocker compose -f docker-compose.prod.yml up -d
  5. Sağlık kontrolücurl http://localhost:8001/api/health 200 dönmeli; rollback gerekirse önceki tag'e dön

En sık yaşanan 5 sorun

Belirti Sebep Çözüm
backend HTTP 503 dönüyor MongoDB replica set initiate olmamış docker logs mongo-init kontrol; rs.initiate() manuel
/api/v2/insights yanıt vermiyor Azure OpenAI key geçersiz veya Ollama down AI_DEFAULT_PROVIDER=ollama + OLLAMA_URL kontrol
Kullanıcı login olamıyor (401) JWT_SECRET değişti veya cookie domain yanlış Browser cookie temizle + reverse proxy SetCookie domain kontrol
Disk hızla doluyor Retention çok uzun veya XEvent ring çok büyük Admin → Retention 30 güne çek + db.metrics_ts.dataSize()
Lisans hatası "expired" JWT exp geçti veya HWID değişti (donanım swap) [email protected] → yeni lisans dosyası + docker compose restart

Sıfırdan Azure VM — tek komut, sorunsuz

2026-05-20 günü resource group baştan oluşturuldu, fresh Ubuntu 22.04 VM (Standard B4ms) üzerinde install/ paketi adımları manuel müdahale olmadan koştu. Tüm yaşanan ilk-kez sorunları kalıcı olarak ACR image'lara baked. Müşteri release bu noktadan itibaren "docker compose pull && up" tek satıra düştü.

Kontrol Beklenen Gerçekleşen
Container sayısı12/12 Up✓ 12/12 healthy
Bootstrap source ekleme4/4 success✓ MSSQL + PG + MySQL + Mongo
Sample data — Postgres pagila1000 film✓ 1000
Sample data — diğer 3 motorMySQL sakila + Mongo sample_mflix + MSSQL AdventureWorks✓ build-time pre-baked
GET /200✓ 200
GET /healthz200✓ 200
POST /api/auth/demo-login200 + cookie✓ 200, sd360_session set
GET /api/auth/me200 + viewer JSON✓ Demo Visitor (viewer)
POST /api/sources403 (read-only)✓ 403 (nginx enforce)
Branding leak (Nebim)YOK✓ title + meta temiz

Kalıcı çözüme bağlanan 11 ilk-kez sorunu

İlk dry-run'da yaşanan sorunlar tek tek tespit edildi; kaynak Dockerfile/compose/env'ye baked, ACR'a push edildi. Müşteri release'inde tekrar yaşanmaz.

#SorunKalıcı çözüm
1Postgres alpine apt-get not foundpostgres:16 (debian) + sample SQL build-time gömülü
2MySQL Oracle Linux apt-get not foundSQL dump lokal'de indirilip COPY ile image'a göm
3Mongo init runtime apt-get installJSON dosyaları build-time /samples/'a baked, init mongoimport
4Backend /opt/sentineldb360 PermissionErrorCompose env SETTINGS_DIR=/tmp/sentinel-settings
5Backend LICENSE_ADMIN_SECRET required.env.example'a eklendi + auto-generate komutu doc'ta
6Frontend nginx upstream frontend:3000 resolve failFrontend image port 80'de dinler — nginx.conf server frontend:80
7Bootstrap "Invalid credentials" (env_file eksik)Compose'a env_file: [.env] eklendi
8Pagila SQL role "postgres" does not existDockerfile 00-postgres-role.sql pre-init (CREATE ROLE)
9"for Nebim" hard-coded brandingfrontend/public/index.html + BrandingContext.js + backend mock data temizlendi
10Cookie Secure flag HTTP testte gönderilmiyorDemo için COOKIE_SECURE=false (production install =true kalır, Cloudflare HTTPS varsayar)
11ACR Docker Hub rate-limit (paralel build)Sıralı retry + rate-limit reset bekle; long-term: ACR Cache Rule + Docker Hub PAT

Demo ortamı erişim bilgisi

demo.sentineldb360.com ziyaret eden herkese aynı viewer kullanıcısıyla otomatik login yapılır — login formu çıkmaz, parola istenmez. Demo bütünlüğünü korumak için bu bilgiler read-only: nginx katmanında tüm yazma istekleri (POST/PUT/DELETE/PATCH) 403 ile reddedilir, ayrıca admin login akışı (POST /api/auth/login) DEMO_MODE'da bloklanır. Ziyaretçi source ekleyemez, kullanıcı yaratmayamaz, parola değiştiremez.

RolKimlikErişimDeğiştirilebilir mi?
Demo viewer (otomatik) [email protected]
parolasız — auto-login cookie ile
Tüm read endpoint'ler + NOC + dashboard + WebSocket canlı metrikler ✗ Hayır
Bootstrap admin (sadece source ekleme için) [email protected]
.env.demo'da openssl rand -hex 32 ile üretilir, asla site'de paylaşılmaz
Sadece sentinel-bootstrap one-shot container'ın 4 source eklemek için ✗ Hayır (DEMO_MODE'da login bloklu)

İstisna: POST /api/auth/demo-login (login bypass), POST /api/auth/logout (oturum sonlandır), POST /api/auth/refresh (token yenile). Bunların dışında hiçbir POST/PUT/DELETE/PATCH demoda kabul edilmez. Demo verisi (4 hazır DB) her VM restart'ında image'dan yeniden üretilir; ziyaretçi değişiklikleri kalıcı olmaz.

Müşteri tek-komut release

# 1) VM provisioning (Azure örneği — diğer cloud için aynı pattern)
az group create -n rgSentinel -l westeurope
az vm create -g rgSentinel -n sentinel --image Ubuntu2204 --size Standard_B2ms \
  --admin-username azureuser --generate-ssh-keys --assign-identity
az vm open-port -g rgSentinel -n sentinel --port 80 --priority 1010
az role assignment create --assignee $(az vm show -g rgSentinel -n sentinel --query identity.principalId -o tsv) \
  --scope $(az acr show --name dmcacr22819 --query id -o tsv) --role AcrPull

# 2) VM'de Docker + ACR login
ssh azureuser@<VM_IP>
curl -fsSL https://get.docker.com | sudo sh
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
az login --identity && az acr login --name dmcacr22819

# 3) install/ paketini taşı + secret üret + başlat
scp -r install/ azureuser@<VM_IP>:~/sentinel-prod/
cd ~/sentinel-prod
cp .env.prod.example .env.prod
for k in JWT_SECRET SECRET_KEY APP_ENC_KEY LICENSE_ADMIN_SECRET; do
  echo "$k=$(openssl rand -hex 32)" >> .env.prod
done
sudo mkdir -p /opt/sentineldb360/mongo-data && sudo chown -R 999:999 /opt/sentineldb360/mongo-data

docker compose -f docker-compose.prod.yml --env-file .env.prod pull
docker compose -f docker-compose.prod.yml --env-file .env.prod up -d

# 4) Smoke (3 dk sonra)
curl http://localhost/healthz   # → {"status":"ok"}
curl http://localhost/api/health # → 200

Bu sayfa özet — tam rehberler GitHub'da

Sentinel DB 360 ile birlikte gelen 7 markdown rehber dosyası adımı adıma her senaryoyu kapsar. Müşteriye sevk edilen P0 paketinin parçasıdır.

Dosya Kapsam Boyut
docs/INSTALL.mdBağlantılı kurulum (Linux + Docker / Podman) tam rehber~8 KB
docs/AIRGAP_INSTALL.mdAir-gap (offline) kurulum, iki host modeli, USB transfer~13 KB
docs/BACKUP_RESTORE.mdBackup + DR runbook, 3 ay periyot tatbikat checklist~11 KB
docs/RUNBOOK.mdOperasyonel runbook (alarm response, troubleshooting)~10 KB
docs/SECURITY.mdSecurity policy, vulnerability disclosure~5 KB
nginx/ + examples/3 reverse proxy örneği (Nginx, Apache, IIS ARR) + 2 systemd unit
bootstrap.shİnteraktif kurulum wizard'ı, önkoşul kontrolleri, .env oluşturma

Tüm rehberler Türkçe; ilave SELinux, Kubernetes Helm chart ve LDAP/AD entegrasyon rehberleri 2026 P2 backlog'unda.

Demo ortamından üretime aynı bootstrap.sh ile

Kurulum öncesi mimarinizi birlikte gözden geçirelim — 30 dakikada planı çıkaralım.