# Komut satırı

Kaynak: <https://deckpa.com/docs/cli>

> deckpa komutu, panel kapalıyken bile erişimi geri almanızı, sunucuyu denetlemenizi ve servisleri yönetmenizi sağlar.

## Komutu çalıştırma

`deckpa` komutu panelle birlikte kurulur (`/usr/local/bin/deckpa`). Sunucuda SSH ile root olarak bağlanıp çalıştırın; root olmayan bir kullanıcı `sudo deckpa ...` yazmalıdır. Komut ağdan çağrılamaz: panelin kapalı olduğu, parolanın unutulduğu ya da bir IP kuralıyla kendinizi dışarıda bıraktığınız durumlarda panele girmeden yönetim yapmanızı sağlar.

```bash
deckpa              # komut listesini gösterir
deckpa version      # ürün adı, sürüm ve kurulum zamanı
deckpa info         # panel adresi, ana bilgisayar adı ve SSH portu
```

Komutların çıktısı İngilizcedir; panelin dil seçimi komut satırına yansımaz. Kullanıcı adı alan komutlarda adı yazmazsanız komut sorar; ad bulunamazsa mevcut panel kullanıcılarını listeler. Kullanıcıyı ya da erişim kurallarını değiştiren komutlar (`reset-user`, `disable-2fa`, `unlock`, `unsuspend`, `clear-allowlist`) yapılan işlemi denetim kaydına yazar; kaydı **Loglar** sayfasının **Denetim** sekmesinde görürsünüz.

## Erişimi geri alma

Aşağıdaki komutlar kilitli kalmış bir yöneticinin tek çıkış yoludur. Komutlar panelin yerel veritabanıyla ve sistem servisiyle konuşur; internet bağlantısı gerektirmez.

- `deckpa info` — panel adresini (`https://<ip>:<port>`), sunucunun ana bilgisayar adını ve yapılandırmadaki SSH portunu yazar. Adresi ya da portu unuttuysanız ilk bakılacak komuttur.
- `deckpa list-users` — panel kullanıcılarını rol, askıya alınma ve iki adımlı doğrulama durumuyla listeler.
- `deckpa reset-user [kullanıcı]` — yeni parolayı iki kez sorar (en az 12 karakter) ve kaydeder. Kullanıcının açık tüm panel oturumları ile phpMyAdmin ve OpenLiteSpeed yönetim oturumları kapatılır. Ardından iki adımlı doğrulamanın da sıfırlanıp sıfırlanmayacağı sorulur; `y` derseniz yeni bir gizli anahtar üretilir, ekrana yazılır ve eski kurtarma kodları silinir.
- `deckpa disable-2fa [kullanıcı]` — iki adımlı doğrulamayı tümüyle kapatır ve kurtarma kodlarını siler; kullanıcı yalnızca parolayla girer. Doğrulama cihazı kaybolduğunda kullanılır.
- `deckpa unlock [kullanıcı]` — başarısız girişlerden doğan giriş kilidini kaldırır. Kilit, 15 dakika içinde 5 başarısız denemeden sonra devreye girer.
- `deckpa unsuspend [kullanıcı]` — askıya alınmış bir panel kullanıcısını yeniden etkinleştirir.
- `deckpa setup-link` — henüz hiç kullanıcı yokken kaybolmuş ilk kurulum bağlantısını yeniden yazar. Yönetici hesabı oluşturulduysa bunun yerine `reset-user` kullanmanızı söyler.
- `deckpa clear-allowlist` — panelin IP izin listesini boşaltır. Liste boşken panel her IP adresinden erişilebilir. Kötü bir kuralla kendinizi dışarıda bıraktıysanız **Ağ & Erişim** sayfasına girmenin tek yolu budur.
- `deckpa set-port [port]` — panel portunu panel arayüzündeki işlemle aynı adımlarla değiştirir (bkz. [Panel ayarları](https://deckpa.com/docs/panel-settings)). Portu yanlış girip panele ulaşamıyorsanız kullanın. Panel birkaç saniye sonra yeni portta yeniden başlar.
- `deckpa fix-ssh-port` — `config.yaml` içindeki SSH portu kaydını, SSH servisinin gerçekte dinlediği portla eşitler.

> Panelde "parolamı unuttum" akışı yoktur; unutulan parolanın kurtarma yolu `reset-user` komutudur. Komut sunucuda root yetkisiyle çalıştığı için sunucuya SSH erişimini de en az panel kadar koruyun.

## deckpa doctor: sunucu denetimi

Sunucunun beklenen güvenlik ve yapılandırma durumunda olup olmadığını ölçer; panelin **Sağlık Kontrolü** sayfasıyla aynı kontrolleri kullanır. Komut hiçbir şeyi değiştirmez. Her çalıştırmada taze ölçüm yapar ve ölçümü root yetkili sistem servisi gerçekleştirir.

```bash
deckpa doctor                        # tam rapor
deckpa doctor --quiet                # geçen satırları gizler
deckpa doctor --tier host            # tek katman
deckpa doctor --only ssh-hardening,disk-free
deckpa doctor --json                 # makine tarafından okunur çıktı
```

Kontroller beş katmanda toplanır; `--tier` için geçerli adlar `host`, `privilege`, `tenant`, `service` ve `panel`'dir. `--only` bir ya da birden çok kontrol kimliği alır; kimlikler rapor satırlarında görünür (örneğin `firewall-ports`, `cert-expiry`, `backup-freshness`). Rapor sunucunun künyesiyle başlar, katman katman sonuçları gösterir ve sonda düzeltme komutlarını önem sırasına göre tek blokta toplar.

Çıkış kodu betiklerde kullanılabilir:

- `0` — kritik ya da uyarı düzeyinde sorun yok.
- `1` — en az bir kritik kontrol başarısız.
- `3` — kritik sorun yok, ama uyarı var.
- `2` — tanınmayan bir seçenek yazıldı.

Ölçülemeyen kontroller atlanmış olarak işaretlenir ve çıkış kodunu etkilemez. Komutun sistem servisine ulaşamaması da hata sayılır: `executor unreachable` benzeri bir ileti görürseniz önce `deckpa status` ile servislerin çalıştığını doğrulayın.

## deckpa top: şu anda ne oluyor

`doctor` sunucunun doğru yapılandırılıp yapılandırılmadığını, `top` ise o an ne olduğunu gösterir: yük ortalaması (çekirdek sayısıyla birlikte), bellek, takas alanı, disk bekleme oranı ve en çok kaynak kullanan süreçler. Tablo PID, kullanıcı, CPU yüzdesi, RSS bellek, iş parçacığı sayısı, süre ve komut sütunlarından oluşur.

```bash
deckpa top                      # en ağır 50 süreç
deckpa top -n 100               # daha uzun liste
deckpa top --watch              # 2 saniyede bir yenilenen canlı ekran
deckpa top --watch --interval 5 # 5 saniyede bir
deckpa top --json               # tek örnek, makine tarafından okunur
```

Liste kesildiyse komut kaç sürecin gösterildiğini ve toplamı yazar; daha fazlası için `-n` kullanın. `--watch` yalnızca terminalde çalışır; aralık 1 ile 60 saniye arasında olmalıdır ve `--json` ile birlikte kullanılamaz. Canlı ekrandan `Ctrl-C` ile çıkılır. Süreç bilgisini okumak için root yetkisi gerektiğinden ölçümü yine sistem servisi yapar.

## deckpa vhost-custom: siteye özel OpenLiteSpeed yapılandırması

Bir sitenin OpenLiteSpeed yapılandırmasına panelin üretmediği ek bölümler eklemeniz gerekirse bunları `/usr/local/lsws/conf/vhosts/<alan adı>/custom.d/NN-ad.conf` biçiminde dosyalara yazarsınız (sahibi root, izni 0644). Bu komut dosyaları denetler ve etkinleştirir.

```bash
deckpa vhost-custom check                 # tüm siteleri denetler
deckpa vhost-custom check example.com     # tek site
deckpa vhost-custom apply example.com     # dosyaları siteye dahil eder, gerekirse OpenLiteSpeed'i yeniden yükler
deckpa vhost-custom restore example.com   # yedekten gelen bekleyen dosyaları etkinleştirir
deckpa vhost-custom discard example.com   # yedekten gelen bekleyen dosyaları siler
```

Denetim her dosya için ad, tür, sahip, izin, boyut ve söz dizimi kontrolü yapar. Kabul koşulları şunlardır:

- Dosya adı harf, rakam, `.`, `_` ve `-` içerir ve `.conf` ile biter. Sembolik bağlantılar reddedilir.
- Dosyanın sahibi root ya da `lsadm` olmalı; grup ya da diğer kullanıcılar tarafından yazılabilir olmamalıdır (`chmod 644`). `custom.d` dizini için aynı kural 755 izniyle geçerlidir.
- Üst düzeyde yalnızca `extprocessor`, `context`, `websocket`, `realm` ve `accessControl` bölümleri kabul edilir; `include` reddedilir. Panelin ayırdığı bağlam yolları (sertifika doğrulama, askıya alma ve hata sayfaları) kullanılamaz.
- Süslü parantezler dengeli olmalı ve açılan `<<<` blokları kapatılmalıdır.

Yedekten geri yüklenen özel yapılandırma dosyaları otomatik etkinleşmez: sitenin `custom.d.restored/` dizininde bekler. İçeriklerini inceledikten sonra `restore` ile etkinleştirin ya da `discard` ile atın. Bir sorun bulunduğunda komut 1 koduyla çıkar.

## Servis komutları ve güncelleme

Bu komutlar doğrudan `systemctl` ve `journalctl` çağırır, root gerektirir ve panel olmadan da çalışır.

- `deckpa restart`, `start`, `stop` — panelin iki sistem servisini (`deckpa-executor` ve `deckpa-api`) birlikte yönetir ve sonda her birinin durumunu yazar.
- `deckpa status` ve `deckpa logs` — servis durumunu gösterir; panel günlüklerini canlı izler.
- `deckpa lockdown [on|off]` — acil durum komutudur. `on` (varsayılan) paneli kapatır; SSH ve bu komutlar çalışmaya devam eder. `off` paneli yeniden açar.
- `deckpa bans` — `fail2ban` tarafından engellenmiş IP adreslerini panel ve SSH koruma kurallarına göre listeler. `deckpa unban [ip]` bir engeli kaldırır; IP vermezseniz tüm engelleri kaldırır.
- `deckpa reboot` — sunucuyu yeniden başlatır. Önce onay ister; `-y` ya da `--yes` onayı atlar.
- `deckpa update` — kanaldaki en son sürümü indirir, doğrular ve kurar; panelin **Güncelleme** sayfasındaki düğmeyle aynı yoldur (bkz. [Güncelleme ve sürüm kanalları](https://deckpa.com/docs/update)).

Panele hiçbir yoldan ulaşamıyorsanız önerilen sıra şudur: `deckpa status` ile servisleri görün, `deckpa info` ile adresi doğrulayın, gerekirse `deckpa unban` ve `deckpa clear-allowlist` ile engelleri kaldırın, son olarak `deckpa reset-user` ile parolayı yenileyin.
