Yapılandırma Referansı
Yapılandırma Dosyası
Konum: /etc/whost/agent.conf (YAML formatı)
Dosya izinleri: 600, sahibi root (yalnızca root tarafından okunabilir). Agent her açılışta izni 600'e geri çeker.
Kurulum aracı, makul varsayılanlarla çalışan bir yapılandırma yazar — çoğu sistem yöneticisinin dosyayı doğrudan düzenlemesi gerekmez: aşağıdaki anahtarların çoğu panelden değiştirilir; panel bu dosyayı yazar ve değişikliği ilgili servise uygular. Aşağıdaki bölümler, ayarlanması gerektiğinde nereye bakacağınızı bilmeniz için her bloğun neyi yönettiğini açıklar.
Dosya nasıl yazılır. İlk sürümü kurucu, ihtiyaç duyduğu bloklarla yazar. Bundan sonra agent, bellekte tuttuğu ayarlardan dosyanın tamamını yeniden yazar: ilk açılışında (aşağıdaki her bloğu varsayılan değerleriyle ekler) ve panelden kaydedilen her değişiklikte. Elle eklenen yorumlar, anahtar sırası ve biçim korunmaz; agent'ın tanımadığı bir anahtar (yanlış yazılmış olanı da) uyarı verilmeden yok sayılır ve bir sonraki yazımda düşer. Bozuk YAML ya da yanlış tipte bir değer (sayı veya true/false beklenen yerde metin) agent'ın açılmasını durdurur; nedeni /var/log/whost/agent.log dosyasına eklenir.
Sırlar. Parolalar ve sırlar bu dosyada düz metin olarak durur (yönetici parolası bcrypt özeti olarak). Agent çalışırken bunları bellekteki bir kasaya taşır; diskte tek korumaları dosyanın 600 root iznidir — dosyanın her kopyasını ve yedeğini aynı sıkılıkta koruyun.
Başka yerde tutulan ayarlar. Güncelleme tercihleri (/etc/whost/update_settings.json, son bölüme bakın), Ayarlar › Bildirimler'in kanalları ve aktarıcısı (/etc/whost/notification_prefs.json), uzak yedek hedefleri (/etc/whost/remote_backup.json), API anahtarları (/var/lib/whost/api_keys.json), eklenti durumu (/etc/whost/plugins.json) ve sunucu saat dilimi (bir sistem ayarı) bu dosyada değildir.
Tabloları okuma. Varsayılan, anahtar yoksa agent'ın kullandığı değerdir; kurucu farklı bir değer yazıyorsa o da belirtilir. Değiştirildiği yer panel sayfasını adlandırır. dosya — yalnız bu dosya düzenlenerek (sondaki Değişiklikleri Uygulama bölümüne bakın). agent — kurucu ya da agent yazar: düzenlemeyin, elle yazılan değer onu kullanan servisi bozar. — — anahtarın bu sürümde etkisi yoktur.
Bölüm Detayları
server
Sunucunun kimliği ve agent'ın kendi dinleyicisi.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
hostname |
kurucu: host adı (--hostname) |
Ayarlar › Genel › Hostname | Panelin host adı (FQDN). Panelden kayıt ayrıca hostnamectl çalıştırır, /etc/hosts dosyasını yeniden yazar, mail.hostname değerini ayarlar, Postfix ve Dovecot'u reload eder ve panelin nginx vhost'unu yeniden yazar. Bildirim e-postaları https://<hostname> adresine bağlantı verir; parola sıfırlama bağlantısının da yedek kaynağıdır (frontend.public_url'e bakın). |
server_ip |
kurucu: sunucunun birincil IPv4 adresi | Ayarlar › Genel › Sunucu IP Adresi | Birincil genel IPv4 adresi: başka adres atanmadıkça hesap bu adresi alır, hesabın DNS bölgesi buna işaret eder ve panel vhost'u bu adreste yanıt verir. Panelden kayıt, eski adresi taşıyan DNS A kayıtlarını yeniden yazar. |
force_ssl |
true |
Ayarlar › Genel › HTTPS Yönlendirmesini Zorla | Panelin HTTP isteklerini HTTPS'e yönlendirir; bir proxy ya da CDN'in X-Forwarded-Proto: https ile ilettiği istek yönlendirilmeden sunulur. Kayıt panel vhost'unu yeniden yazar ve nginx'i reload eder. |
host, port |
0.0.0.0, 2000 (kurucu: 127.0.0.1, 2000) |
dosya | Dinleyiciyi taşımazlar: agent, servis biriminin belirlediği 127.0.0.1:2000 adresinde dinler (--host, --port; birim 2001'in altındaki portları root'a ayırır — net.ipv4.ip_unprivileged_port_start = 2001, /etc/sysctl.d/60-whost-agent-port.conf dosyasında kalıcı — böylece hiçbir hesabın süreci agent'ın portunu, agent yeniden başlarken bile, dinleyemez; root olmayan süreçler 1024–2000 arasındaki portları dinleyemez); panelin nginx proxy'si ve güncelleme hattı bu adresi kullanır. port yine de agent'ı kiracı süreçlerinden uzak tutan güvenlik duvarı kuralı ve Saldırı Altında Modu'nun hiç düşürmediği port listesi tarafından okunur — 2000 bırakın. |
ssl_cert, ssl_key |
/etc/whost/ssl/cert.pem, /etc/whost/ssl/key.pem |
— | Okunmaz; aşağıdaki sertifika notuna bakın. |
workers |
1 |
— | Her zaman 1: başka bir değer loglanır ve 1 ile değiştirilir. |
Panel sertifikası. /etc/whost/ssl/cert.pem ve /etc/whost/ssl/key.pem çifti kurulumda host adı için self-signed olarak üretilir. Aynı çift panelin 443 portundaki nginx vhost'una, Postfix ve Dovecot TLS'ine, siteleri LiteSpeed sunuyorsa OpenLiteSpeed dinleyicisine ve agent'ın loopback dinleyicisine hizmet eder. Güvenilir bir sertifika sunmak için iki dosyayı değiştirin (cert.pem içinde sertifika ve zinciri), nginx -t ile kontrol edin, ardından nginx, Postfix ve Dovecot'u reload edin.
auth
API isteklerinin HMAC-SHA256 kimlik doğrulaması (makineden makineye; paneller oturum çerezi kullanır).
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
api_key, api_secret |
kurucu üretir | agent | Kurucunun ürettiği API anahtar çifti (/etc/whost/api_key ve /etc/whost/api_secret dosyalarında da saklanır). Agent ilk açılışında onu API anahtar listesine Default API Key adıyla kopyalar (Ayarlar › API Erişimi); orada diğer anahtarlar gibi yönetilir — emekliye ayırmak için orada iptal edin ya da silin. Silinen kurucu anahtarı emekli kalır: bu kopya üzerinden yanıt vermez ve sonraki açılışta listeye geri kopyalanmaz. Kurucunun sonraki bir koşumunun yazdığı çift, aynı biçimde yönetilene kadar yanıt verir. |
allowed_ips |
[] |
dosya | Agent anahtarı listeye eklerken bu anahtarın IP izin listesine kopyalanır; sonrasında izin listesi Ayarlar › API Erişimi'nden düzenlenir ve bu liste artık anahtara uygulanmaz. |
api_key_encryption_secret |
ilk açılışta üretilir | agent | Saklanan API anahtar sırlarını ve uzak yedek hedeflerinin kimlik bilgilerini şifreler. Asla değiştirmeyin ya da silmeyin: saklanan sırlar artık çözülemez. |
webserver
Siteleri hangi web sunucu yığınının sunduğu ve genel bağlantı ayarları. type şunlardan birini alır:
- nginx: Tüm HTTP trafiğini doğrudan Nginx yönetir
- apache: Tüm HTTP trafiğini doğrudan Apache yönetir
- nginx_apache: Reverse proxy olarak Nginx (port 80/443) + Apache backend (
apache_port, 8080) - openlitespeed, litespeed: OpenLiteSpeed ya da LiteSpeed Enterprise; ilgili eklenti Eklentiler sayfasında etkinleştirildiğinde ayarlanır; PHP bu durumda LSAPI üzerinden çalışır
Installer nginx_apache ya da nginx yazar; diğer değerleri reddeder (bkz. Kurulum).
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
type |
nginx_apache (kurucu: --webserver) |
Ayarlar › Genel › Varsayılan Web Sunucu (nginx, nginx_apache; apache yalnız tek başına Apache ile kurulmuş sunucuda sunulur ve kabul edilir) |
Agent'ın her site yapılandırmasını, sertifika yenileme kancasını ve WAF kurulumunu yazdığı yığın. Genel ayarlardaki kayıt yalnız bu değeri değiştirir — web sunucu kurmaz, başlatmaz, yeniden yapılandırmaz — bu yüzden ancak sunucunun yığını buna uyacak şekilde değiştirildikten sonra değiştirin. OpenLiteSpeed ya da LiteSpeed ile alan salt okunurdur (eklentiye aittir). Agent açılışta 443 portunu dinleyen süreç uyuşmuyorsa WEBSERVER_BINDING_DRIFT loglar. |
max_clients, keepalive_timeout |
256, 65 |
Ayarlar › Genel › Maks İstemci (1–10000), Keep-Alive Zaman Aşımı (0–300 sn) | Panelden kaydedildiğinde web sunucuya yazılır: Nginx'te nginx.conf içindeki worker_connections ve keepalive_timeout (yalnız bu satırlar varsa; nginx -t, ardından reload), Apache'de yalnız KeepAliveTimeout (apachectl configtest, ardından reload), OpenLiteSpeed/LiteSpeed'de maxConnections ve keepAliveTimeout (sunucu yeniden başlar). Başarısız test önceki dosyayı geri yükler. Sayfa çalışan sunucunun değil, yapılandırılmış değerleri gösterir. |
apache_port |
8080 |
dosya | nginx_apache site yapılandırmalarında nginx'in proxy yaptığı Apache portu. Apache'nin kendi Listen portunu kurucu ayarlar; bu anahtarı izlemez. |
php_handler |
fpm |
agent | fpm (PHP-FPM havuzları) ya da lsapi; type OpenLiteSpeed ya da LiteSpeed olduğunda lsapi yapılır. |
ols_admin_port, ols_admin_user, ols_admin_password |
7080, admin, boş |
agent | OpenLiteSpeed/LiteSpeed WebAdmin konsolu. LiteSpeed Enterprise eklentisi sunucuyu kurarken parolayı üretir (burada zaten bir değer varsa yeniden kurulumda o kullanılır); konsola ihtiyaç duyduğunuzda buradan okuyun. |
lscache_enabled |
true |
dosya | OpenLiteSpeed/LiteSpeed site yapılandırmalarına LSCache ekler. |
litespeed_serial |
— | agent | Eklentinin etkinleştirildiği LiteSpeed Enterprise seri anahtarı. |
nginx_port |
80 |
— | Okunmaz. |
php
Birden fazla PHP sürümü aynı anda kurulabilir ve her hosting hesabı farklı bir sürüm kullanabilir.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
default_version |
8.4 (kurucu: --php-default) |
Ayarlar › Genel › Varsayılan PHP Sürümü; PHP › Varsayılan PHP Ayarları | Yeni hesapların PHP sürümü; installed_versions içinden biri olmalıdır. |
installed_versions |
7.4, 8.0–8.5 (kurucu: kurduğu sürümler, --php-versions) |
PHP sayfası, sürüm anahtarları | Hesaplara sunulan sürümler. Bir sürüm ancak paketleri kuruluysa açılabilir; varsayılan sürüm ve bir domainin hâlâ kullandığı sürüm kapatılamaz. |
default_upload_max_filesize, default_post_max_size |
64M |
PHP › Varsayılan PHP Ayarları | İsteğe bağlı K/M/G ile bir boyut; -1 reddedilir. |
default_memory_limit |
256M |
PHP › Varsayılan PHP Ayarları | Bir boyut ya da sınırsız için -1. |
default_max_execution_time |
300 |
PHP › Varsayılan PHP Ayarları | Saniye, 0–86400. |
default_max_input_time |
300 |
PHP › Varsayılan PHP Ayarları | Saniye, -1–86400. |
default_max_input_vars |
1000 |
PHP › Varsayılan PHP Ayarları | 1–1000000. |
default_display_errors |
false |
PHP › Varsayılan PHP Ayarları | true ya da false. |
Yedi default_* değeri, hesap kendi değerlerini kaydedene kadar hesabın havuzunun üretildiği ini değerleridir; hesabın kaydettiği değerler meta verisinde tutulur ve sürüm, işlemci ya da paket değişiminden sağ çıkar. Bir varsayılanı değiştirmek mevcut havuzları yeniden yazmaz: kendi değeri olmayan bir hesap yeni varsayılanı, havuzu bir sonraki üretilişinde alır.
python
Python uygulama barındırma (Python Hosting eklentisi). Eklentinin açık/kapalı durumu bu bloğun anahtarı değil, client_features.python_apps'tir.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
installed_versions |
3.10, 3.11, 3.12, 3.13 |
dosya | Uygulamalara sunulan Python sürümleri; yalnız yorumlayıcısı sunucuda kurulu olanlar listelenir. |
default_timeout, default_max_requests |
120, 1000 |
dosya | Kendi değerini ayarlamamış bir uygulamanın Gunicorn timeout ve max_requests değerleri. |
allowed_manage_commands |
migrate, collectstatic, createsuperuser, showmigrations, check, shell |
dosya | Panelin bir uygulama için çalıştırabileceği Django manage.py komutları; başka komut reddedilir. |
socket_dir, venv_base_dir |
/run/whost, venvs |
agent | Uygulama soketlerinin ve (hesabın ev dizini altında) sanal ortamların oluşturulduğu yer. |
enabled, default_version, default_app_server, default_workers, default_worker_class, max_workers_per_app |
— | — | Okunmaz. |
node
Node.js uygulama barındırma (Node.js Hosting eklentisi). Eklentinin açık/kapalı durumu bu bloğun anahtarı değil, client_features.node_apps'tir.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
installed_versions |
18, 20, 22 |
dosya | Uygulamalara sunulan Node.js sürümleri; yalnız çalışma zamanı sunucuda kurulu olanlar listelenir. |
allowed_npm_scripts |
start, build, test, lint, migrate, seed |
dosya | Panelin bir uygulama için çalıştırabileceği npm run betikleri; başka betik reddedilir. |
socket_dir, wrappers_dir |
/run/whost, /etc/whost/wrappers |
agent | Uygulama soketlerinin ve uygulama başına başlatma sarmalayıcılarının oluşturulduğu yer. |
enabled, default_version, default_app_type, default_package_manager, default_instances, max_instances_per_app, default_max_memory_mb, runtime_base_dir |
— | — | Okunmaz. |
mysql
Agent'ın MariaDB bağlantısı ve sizin yerinize uyguladığı MariaDB ayarları.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
host, port |
localhost, 3306 |
agent | Agent'ın MariaDB bağlantısı. |
root_password |
kurucu ayarlar | agent | MariaDB root parolası (/etc/whost/mysql_root_password dosyasında da). |
max_connections |
151 |
Ayarlar › Genel (1–10000) | max_connections. |
buffer_pool_size |
256 (MB) |
Ayarlar › Genel (16–65536) | innodb_buffer_pool_size. |
connect_timeout, wait_timeout, interactive_timeout |
300 (saniye) |
Ayarlar › Genel (1–86400) | Aynı adlı MariaDB değişkenleri. |
sort_buffer_size, read_buffer_size, max_allowed_packet |
4M, 4M, 64M |
Ayarlar › Genel | Sıfırdan büyük bir K/M/G boyutu (4M, 256K, 1G). |
Ayarlar › Genel'den bir veritabanı değerini değiştiren kayıt, /etc/mysql/mariadb.conf.d/99-whost-tuning.cnf (RHEL'de /etc/my.cnf.d/) drop-in dosyasını agent'ın şablonundan sekiz değerin tamamıyla yeniden yazar ve her birini SET GLOBAL ile canlı uygular; bu yüzden yeniden başlatma gerekmez. Drop-in ayrıca MariaDB'nin bir sonraki yeniden başlatmada okuduğu local_infile = 0 ve secure_file_priv = /var/lib/mysql-files satırlarını taşır. Kurucu bu dosyanın sunucunun RAM'ine göre boyutlandırılmış kendi sürümünü yazar (InnoDB buffer pool RAM'in %37,5'i, en az 256 MB; max_connections = 300; InnoDB log ve flush ayarları); panelden yapılan ilk veritabanı kaydı onu sayfanın gösterdiği sekiz değerle değiştirir. Bu anahtarları dosyada düzenlemek MariaDB'yi değiştirmez.
dns
HTTP API üzerinden PowerDNS entegrasyonu.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled |
true (kurucu: --no-dns ile false) |
dosya | PowerDNS'in kurulu olup olmadığı. false iken hesaplar DNS bölgesi olmadan oluşturulur; hesabın adres değişikliği ya da nameserver değişikliği bölgelere yansıtılmaz. |
nameservers |
ns1.example.com, ns2.example.com (kurucu: --nameservers, varsayılan ns1.<hostname>, ns2.<hostname>) |
Ayarlar › Genel › İsim Sunucuları (en çok dört, sırayla doldurulur) | Agent'ın oluşturduğu her bölgenin NS kayıtları; ilk kayıt SOA birincilidir. Panelden kayıt ayrıca mevcut her bölgenin NS kayıtlarını ve SOA birincilini yeniden yazar; elle düzenleme yalnız yeniden başlatmadan sonra oluşturulan bölgelere ulaşır. Bunları, kayıt kuruluşundaki delegasyonun adlandırdığı gerçek nameserver hostname'lerinize ayarlayın. |
api_url, api_key |
http://127.0.0.1:8081, kurucu ayarlar |
agent | PowerDNS HTTP API'si ve anahtarı (/etc/whost/pdns_api_key dosyasında da). |
default_ttl |
3600 |
dosya | Agent'ın oluşturduğu kayıtların TTL'i. |
soa_content |
ns1.example.com hostmaster.example.com 0 10800 3600 604800 3600 |
dosya | Yalnız son dört sayısı — refresh, retry, expire ve negatif önbellek TTL'i — kullanılır; SOA birincili ilk nameserver'dır, iletişim adresi hostmaster.<zone>'dur. |
type |
powerdns |
— | Okunmaz; tek DNS sunucusu PowerDNS'tir. |
Postfix (SMTP) + Dovecot (IMAP/POP3) + OpenDKIM. Posta sistemi sanal posta kutusu yönetimi için bir MariaDB veritabanı kullanır.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled |
true (kurucu: --no-mail ile false) |
dosya | Posta yığınının kurulu olup olmadığı. false iken agent, saatlik gönderim limitlerini uygulayan WHost Mail Policy servisini (whost-policyd) kurmaz ve yenilemez. |
hostname |
mail.example.com (kurucu: --mail-hostname, varsayılan mail.<hostname>) |
dosya | Kurulumda kaydedilen posta host adı; Ayarlar › Genel'deki host adı değişikliği bunu yeni sunucu host adıyla değiştirir. |
default_hourly_limit |
500 |
Ayarlar › Genel › Varsayılan Saatlik E-posta Limiti (0–100000) | Paketi kendi limitini belirlemeyen bir hesabın saatte gönderebileceği ileti sayısı; 0 = sınırsız. Panelden kayıt whost-policyd'yi yeniden üretir ve yeniden başlatır; elle düzenleme bir sonraki agent açılışında ulaşır. |
max_email_size |
25 (MB) |
Ayarlar › Genel › Maksimum E-posta Boyutu (1–100 MB) | Panelden kaydedildiğinde Postfix message_size_limit değerine yazılır (Postfix reload edilir); elle düzenleme Postfix'i değiştirmez. |
dkim_selector, dkim_key_dir |
default, /etc/opendkim/keys |
agent | Agent'ın oluşturduğu DKIM anahtarlarının selector'ı ve anahtar dizini (<selector>._domainkey.<domain> kayıtları). |
maildir_base, vmail_uid, vmail_gid |
/var/vmail, 5000, 5000 |
agent | Kurulduğu hâliyle posta kutusu deposu ve sahibi. |
mysql_host, mysql_port, mysql_user, mysql_password, mysql_database |
localhost, 3306, vmail, kurucu ayarlar, vmail |
agent | Sanal posta kutusu veritabanı (parola /etc/whost/mail_db_password dosyasında da). |
dovecot_master_user, dovecot_master_password |
whost_master, webmail ile ayarlanır |
agent | Webmail tek oturum açma için kullanılan Dovecot master girişi. |
ssl
certbot üzerinden Let's Encrypt entegrasyonu. Siparişler HTTP üzerinden domainin kendi document root'undan doğrulanır, domainin adını alır ve vhost'un gösterdiği dosyaları tazeleyip web sunucuyu reload eden bir yenileme kancası kurar; yenilemeler certbot'un kendi takviminde çalışır (systemd zamanlayıcısı ya da zamanlayıcı yoksa kurucunun eklediği günlük cron satırı). Bir sertifikayı silmek lineage'ı da kaldırır.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
email |
boş (kurucu: --ssl-email) |
Ayarlar › Genel › Let's Encrypt E-postası | Siparişlerin hesap e-postası, zorunludur: boşken sipariş 400 SSL_EMAIL_REQUIRED ile reddedilir. |
staging |
false |
dosya | true, siparişleri sertifikalarına tarayıcıların güvenmediği Let's Encrypt staging ortamına gönderir — hız sınırlarına takılmadan test için. Değiştirdikten sonra agent'ı yeniden başlatın. |
auto_renew |
true |
Ayarlar › Genel › Yeni Domainler İçin Otomatik SSL | Bu sürümde yalnız saklanır: hesap ve ek domain formları kendi Otomatik SSL seçimlerini taşır. |
provider, webroot_path, renew_days_before |
certbot, /var/www/letsencrypt, 30 |
— | Okunmaz. |
ftp
MariaDB kimlik doğrulamalı Pure-FTPd. Her hosting hesabı birden fazla FTP alt hesabına sahip olabilir.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled |
true (kurucu: --no-ftp ile false) |
dosya | Pure-FTPd'nin kurulu olup olmadığı. |
passive_ports |
30000:30100 |
Ayarlar › Genel › Pasif Port Aralığı | START:END, 1024–65535, START END'den küçük. Panelden kaydedildiğinde Pure-FTPd'nin PassivePortRange değerine yazılır. Kurucu güvenlik duvarında 30000:30100 aralığını açar; yeni bir aralığı Güvenlik Duvarı sayfasında START:END port kuralı olarak açın. |
max_clients |
50 |
Ayarlar › Genel › Maks İstemci (1–1000) | MaxClientsNumber. |
max_per_ip |
10 |
Ayarlar › Genel › IP Başına Maks Bağlantı (1–100) | MaxClientsPerIP. |
passive_mode, bandwidth_limit |
true, 0 (KB/sn) |
yalnız API (form bunları göstermez) | Yalnız saklanır: kayıt bunları tutar ve geri döndürür, ama Pure-FTPd direktifi yazılmaz. |
mysql_host, mysql_port, mysql_user, mysql_password, mysql_database |
localhost, 3306, pureftpd, kurucu ayarlar, pureftpd |
agent | Pure-FTPd kimlik doğrulama veritabanı (parola /etc/whost/ftp_db_password dosyasında da). |
passive_ports, max_clients ya da max_per_ip değerini değiştiren kayıt üç direktifi yazar (Debian/Ubuntu'da /etc/pure-ftpd/conf/, RHEL'de /etc/pure-ftpd/pure-ftpd.conf) ve Pure-FTPd'yi yeniden başlatır; elle düzenleme Pure-FTPd'yi değiştirmez.
backup
Yerel yedek deposu ve saklama süresi.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled |
true |
Yedekler › Ayarlar › Yedekleme Sistemi | false iken yedek oluşturma, geri yükleme ve zamanlama reddedilir (403 BACKUP_DISABLED) ve zamanlanmış çalıştırmalar atlanır. |
local_path |
/var/whost/backups |
dosya | Yerel arşivlerin tutulduğu yer, hesap başına bir dizin. |
retention_days |
7 (kurucu: 30) |
Yedekler › Ayarlar › Saklama Süresi (1–365) | Günde bir kez, zamanlayıcının 04:00 UTC'de ya da sonrasındaki ilk çalışmasında, bundan eski her hesap yedeği silinir; bu dosyada 0 budamayı kapatır. |
schedule.enabled |
true |
Yedekler › Ayarlar › Zamanlama Sistemi | Yedek zamanlamalarını ve saklama budamasını çalıştıran yerleşik zamanlayıcıyı başlatır. |
schedule.max_per_account |
3 |
Yedekler › Ayarlar › Hesap Başına Maks. Zamanlama (1–20) | Bunu aşan zamanlama reddedilir (403 BACKUP_SCHEDULE_LIMIT). |
schedule.check_interval |
300 (saniye) |
dosya | Zamanlayıcı çalıştırmaları arasındaki süre. |
remote |
enabled: false, type: s3 |
— | Ayrıştırılır ama kullanılmaz; aşağıya bakın. |
Zamanlayıcı agent ile birlikte yalnız enabled ve schedule.enabled ikisi de true iken başlar ve schedule.check_interval o anda okunur: schedule.enabled değişikliği — panelden kaydedilse de — bir sonraki agent açılışında etkili olur; açılışta kapalı olan enabled'ı yeniden açmak da öyle. Zamanlayıcı çalışmıyorken ne zamanlanmış yedekler ne de saklama budaması çalışır.
Uzak hedefler bu dosyada yapılandırılmaz: panelden yönetilir (Yedekler › Uzak Depolama) ve /etc/whost/remote_backup.json dosyasında şifreli saklanır (hesaba ait olanlar /etc/whost/accounts/<user>/remote_backup.json altında).
logging
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
level |
info |
dosya | debug, info, warning, error ya da critical (bilinmeyen ad info sayılır). Üretim ortamında info önerilir; debug yalnızca sorun giderme için kullanılmalıdır. |
file |
/var/log/whost/agent.log |
dosya | Varsayılanı koruyun: servis birimi süreç çıktısını bu yola ekler, fail2ban whost-agent jail'i bu dosyayı izler ve güncelleme sonrası kontrol buraya yazar. Dosya 640 izninde tutulur. |
max_size, keep |
100M, 10 |
dosya | Agent dosyayı max_size'a ulaşınca kendisi döndürür (isteğe bağlı K, M ya da G ile bir sayı; başka bir son ek agent'ın açılmasını durdurur) ve keep kadar eski kopya tutar. Onu kapsayan bir logrotate kuralı yoktur. |
license
license.state_file, kalıcı lisans durumu dosyasını seçer; varsayılan değer
/etc/whost/license.state yoludur. HMAC dosyası bu yola .hmac eklenerek bulunur.
Durum yükleme, kaydetme ve bağımsız endpoint, servis, startup ve çalışma zamanı
kontrolleri seçilen dosyayı kullanır. Varsayılan konumdaki eski dosya,
yapılandırılmış konumda bulunmayan dosyanın yerine kullanılmaz.
İki dosyanın sahibi root, izinleri 0600 olmalıdır. Startup izinleri 0600
olarak düzeltir. Ayarı değiştirdikten sonra agent'ı yeniden başlatın; lisans
doğrulama kotasını tüketen art arda yeniden başlatmalardan kaçının. Kurulumun
boot token'ı /etc/whost/.boot_token konumunda kalır; seçilen veya varsayılan
durum dosyasındaki önceki aktivasyon kanıtı, eksik ya da bozuk token'ın sessizce
yeniden üretilmesini engeller.
Lisans grace süresi ve önbellekteki token'ın geçerliliği, lisans sunucusunun doğrulanmış UTC zamanının geçen kernel açılış süresiyle ilerletilmesiyle hesaplanır. Sistem saatini geri almak grace süresi eklemez. Durum HMAC'i saat çapasını da korur; böylece aynı işletim sistemi açılışı içindeki bir agent yeniden başlatması geçen süreyi korur. İşletim sistemi yeniden başlatıldıktan sonra ya da bu çapayı taşımayan bir önbellek yükseltilirken, önbellekteki grace kullanılmadan önce agent çevrimiçi lisans doğrulaması ister. NTP'yi açık tutun: TLS sertifika doğrulaması ve diğer sistem servisleri hâlâ sistem saatine bağlıdır.
Önbellekteki aktivasyon ve grace durumu, lisans sunucusunun özgün RSA imzalı yanıtını ve bu yanıtın geçerlilik süresini gerektirir. Yerel HMAC'in geçerli olması tek başına önbellekten erişim sağlamaz. İmza alanları veya imzalı süre eksikse, yanıt değiştirilmişse ya da token süresi dolmuşsa önbellek atılır ve çevrimiçi doğrulama gerekir. Aktivasyon ve periyodik doğrulama, imzalı yanıtı birlikte kaydeder. Durum dosyasını geri yüklerken token alanlarını değiştirmeyin veya kaldırmayın.
Bu bloğun diğer anahtarlarını agent yönetir — düzenlemeyin. key ve lisans sırları, lisans Lisans sayfasında etkinleştirildiğinde yazılır; etkinleştirilen anahtardan farklı, elle düzenlenmiş bir key bir sonraki açılışta etkinleştirilen anahtarla değiştirilir.
rate_limit
İstemci adresi başına API hız sınırlama (agent'ın panelin nginx'i arkasında çözdüğü ziyaretçi adresi), slowapi ile. Sınırını aşan istek Retry-After başlığıyla 429 RATE_LIMIT yanıtı alır. Değerler {count}/{period} formatını takip eder (örn. 120/minute, 5/minute).
rate_limit:
default: "60/minute"
read: "120/minute"
write: "30/minute"
delete: "20/minute"
heavy: "5/minute"
auth: "5/minute"
Altı değerin altısı da agent açılışında bu dosyadan okunur ve uygulanır.
defaultKendi sınıfı olmayan az sayıdaki rotaya sınırlayıcı ara katmanı tarafından uygulanır (dağıtım olay akışları, güncelleme durum akışı, SSO endpoint'leri, ön yüz hata ayıklama işareti). /health, panelin kök dosyaları (/config.json, favicon, logo), / ve sayfa geri dönüşü muaftırreadGET (okuma) endpoint'leri için sınır; giriş sayfasının kullandığı herkese açık GET /api/v1/auth/ip-check izin listesi yoklaması dahilwritePOST, PUT, PATCH (yazma) endpoint'leri için sınırdeleteDELETE endpoint'leri için sınırheavyKaynak yoğun işlemler için sınır: yedekler ve geri yüklemeler, dosya yükleme, sıkıştırma ve açma, Let's Encrypt siparişleri, eklenti kurulumları, lisans aktivasyonu, parola ve ikinci faktör değişiklikleri, parola sıfırlama istekleriauthKimlik doğrulama endpoint'leri (yönetici ve müşteri girişi, 2FA) için sınırfail2ban
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled |
true |
— | Okunmaz: panel, fail2ban-client yanıt verdiği sürece fail2ban'ı yönetir. |
bantime, findtime, maxretry |
3600, 600, 5 |
— | Okunmaz: kurucu jail.local dosyasını kendi değerleriyle yazar, Fail2Ban sayfasındaki jail başına değişiklikler /etc/fail2ban/jail.d/<jail>.local dosyasına gider. |
ignoreip |
127.0.0.1/8, ::1 |
dosya | Yalnız hiçbir jail yanıt vermediğinde beyaz liste olarak gösterilir; canlı beyaz liste jail'lerin ignoreip kümesidir, Fail2Ban sayfasında düzenlenir ve jail.local içinde kalıcılaşır. |
modsecurity
WHost ModSecurity'yi nginx katmanında uygular (nginx ve nginx_apache); başka bir web sunucuyla ayarlar kaydedilir ama trafiğe uygulanmaz. /etc/modsecurity/modsecurity.conf bu bloktan, WAF sayfası bir ayarı ya da kuralı değiştirdiğinde — web sunucu yapılandırma testinden sonra — üretilir; bu yüzden elle düzenleme ona ancak bir sonraki böyle değişiklikte ulaşır.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled, default_account_waf |
true, true |
dosya | Kendi WAF durumunu seçmemiş bir hesap, site yapılandırmasında modsecurity on'u yalnız ikisi de true iken alır (yapılandırma bir sonraki üretilişinde alınır). enabled: false ayrıca WAF sayfasının WAF'ı pasif göstermesine yol açar. |
engine_mode |
detection_only |
WAF sayfası | on (engelle), detection_only (yalnız logla) ya da off; SecRuleEngine olarak üretilir. Yeni kurulum detection_only ile başlar; mevcut kurulum kendi modunu korur. |
crs_paranoia_level |
1 |
WAF sayfası | OWASP CRS paranoya seviyesi, 1–4. |
audit_log |
true |
WAF sayfası | SecAuditEngine RelevantOnly (5xx ve 404 dışındaki 4xx yanıtları) ya da Off. |
audit_log_path |
/var/log/modsecurity/audit.log |
dosya | WAF sayfasının okuduğu seri denetim logu; kurucunun logrotate kuralı (günlük, 30 kopya, copytruncate) varsayılan yolu adlandırır. |
owasp_crs |
true |
dosya | OWASP Core Rule Set'i <rules_path>/crs altından yükler. |
rules_path, custom_rules_path |
/etc/modsecurity, /etc/modsecurity/custom |
dosya | Kural setinin temel dizini ve özel kurallar dizini (yalnız içinde bir .conf varken dahil edilir). |
per_account_overrides |
true |
dosya | /etc/modsecurity/accounts/ altındaki hesap başına WAF durumu ve kural istisnaları; false iken hesap kapsamındaki WAF yazmaları 409 FEATURE_DISABLED ile yanıtlanır. |
security
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
admin_allowed_ips |
boş | Ayarlar › Güvenlik › Admin Panel IP Beyaz Listesi | Satır başına bir IP/CIDR (bir YAML blok metni); boş liste her adrese izin verir. Başka bir adresten gelen /admin sayfalarına nginx 404 ile yanıt verir, agent da o adresten yönetici girişini ve yönetici oturumlarını reddeder (403 IP_NOT_ALLOWED). Panelden kayıt /etc/nginx/conf.d/whost-admin-geo.conf ve /etc/nginx/snippets/whost-admin-ip-whitelist.conf dosyalarını (nginx -t sonrasında) yeniden yazar; değişen, boş olmayan bir liste her yönetici ve müşteri oturumunu kapatır; kendi adresinizi dışarıda bırakan liste siz onaylamadıkça reddedilir. Elle düzenleme yalnız agent'ın kontrolünü değiştirir. |
two_factor_enforcement, two_factor_enforcement_method |
false, both |
Ayarlar › Güvenlik › İki Faktörlü Doğrulama Zorunluluğu | Anahtar ve istediği yöntem (totp, email ya da both = ikisinden biri). Açıkken giriş ve oturum endpoint'leri henüz ikinci faktörü olmayan bir kimlik için requires_2fa_setup: true (required_2fa_method ile) döndürür ve paneller o kimliği kayıt yapana kadar kayıt sayfasında tutar (yönetici Ayarlar › Profil, müşteri Ayarlar › Güvenlik). |
ssh_port, ssh_root_login, ssh_password_auth, ssh_key_auth, ssh_allowed_ips |
22, true, true, true, boş |
Ayarlar › Güvenlik › SSH Erişim Kısıtlamaları | Panelden kaydedildiğinde /etc/ssh/sshd_config.d/00-whost.conf dosyasına yazılır (sshd -t sonrasında; port değişikliği sshd'yi yeniden başlatır ve güvenlik duvarı ile fail2ban'ı günceller, diğer değişiklikler reload eder). Parola ve anahtar kimlik doğrulamasından en az biri açık kalır; başka bir servisin tuttuğu port reddedilir (PORT_IN_USE). ssh_allowed_ips (satır başına bir IP/CIDR) diğer tüm adreslerden SSH girişini reddeder. ssh_port aynı zamanda güvenlik duvarının ve Saldırı Altında Modu'nun koruduğu SSH portudur. Elle düzenleme sshd'yi değiştirmez. |
auto_configure_dkim, auto_configure_spf, auto_configure_dmarc, dmarc_policy |
true, true, true, none |
Ayarlar › Güvenlik › DKIM / SPF / DMARC | Agent'ın bir hesabın posta DNS'ini oluştururken eklediği posta kayıtları: DKIM anahtar kaydı, SPF (v=spf1 a mx ip4:<server_ip> ~all) ve DMARC (v=DMARC1; p=<policy>; rua=mailto:postmaster@<domain>, politika none, quarantine ya da reject). Mevcut bölgeler yeniden yazılmaz. |
trusted_origins |
boş | dosya | Origin değeri gönderildiği host'tan farklı olan, çerezle kimliği doğrulanmış yazmaları (POST, PUT, PATCH, DELETE) gönderebilecek ek origin'ler; host[:port] biçiminde, boşlukla ayrılır. Panelin, açıldığı ad ne olursa olsun kendi API'sini çağırması her zaman geçer ve HMAC imzalı çağrılar kontrol edilmez; panel oturum çerezi taşıyan diğer tüm çapraz origin yazmaları 403 CROSS_ORIGIN_DENIED ile reddedilir. |
spam_reject_threshold, spam_add_header_threshold, spam_greylist_threshold |
15, 6, 4 |
— | Okunmaz: spam puanları Spam Filtresi sayfasında ayarlanır. |
admin
Yerleşik yönetici, iki panelin giriş koruması ve oturum süreleri.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
enabled |
true |
dosya | false iken iki panelde de çerezle giriş kapanır: yönetici girişi 404 döndürür, yönetici ve müşteri oturum çerezleri artık kabul edilmez ve yalnız HMAC imzalı API çağrılarına hizmet verilir. |
username |
admin |
dosya | Yönetici bu adla ya da email ile giriş yapar. |
email |
boş | Ayarlar › Profil | Yöneticinin kurtarma adresi ve ikinci giriş adı; yönetici bildirim e-postaları ve e-posta giriş kodları bu adrese gider. |
password |
kurucu ayarlar | Ayarlar › Profil (parola değişikliği) | Bir bcrypt özeti; düz metin değer girişte asla kabul edilmez. Değişiklik diğer tüm yönetici ve müşteri oturumlarını kapatır. |
language |
auto |
Ayarlar › Profil | Yöneticinin panel dili (auto, girişte seçilen dili korur). |
session_timeout |
3600 (saniye; kurucu: 3600) |
Ayarlar › Güvenlik › Oturum Zaman Aşımı (5–1440 dakika) | Bir yönetici ya da müşteri oturumunun ömrü; kullanımdaki oturum, ömrünün yarısı geçtikten sonra yenilenir. |
remember_me_timeout |
2592000 (30 gün) |
dosya | İki panelde de "beni hatırla" oturumunun ömrü. |
session_max_lifetime |
604800 (7 gün) |
dosya | İki panelde de etkinlik ne olursa olsun girişten itibaren sayılan kesin sınır. |
allow_concurrent_sessions |
false |
dosya | Kapalıyken bir giriş aynı kimliğin (yönetici ya da o müşteri hesabı) önceki oturumlarını kapatır, bir çıkış hepsini kapatır. Açıkken önceki oturumlar zaman aşımına kadar çalışır, çıkış yalnız yapıldığı tarayıcıyı kapatır ve session_max_lifetime kimliğin son giriş ya da çıkışından sayılır; parola değişikliği yine herkesi çıkarır. |
session_secret |
kurucu ayarlar | agent | Yönetici ve müşteri oturum çerezlerini imzalar. Agent bunu yönetici parolası değiştiğinde ve yönetici IP beyaz listesi boş olmayan bir listeye değiştirildiğinde yeniler; her değişiklik herkesin oturumunu kapatır. |
two_factor.enabled, two_factor.method |
false, totp |
Ayarlar › Profil | Yöneticinin kendi ikinci faktörü (totp ya da email). |
two_factor.email |
boş | Ayarlar › Profil | Yöneticinin e-posta giriş kodlarının gittiği adres; burada başka bir adrese ayarlanmadıkça email'i izler. |
two_factor.trusted_ip_days |
0 |
dosya | Yöneticinin ikinci faktörünü geçmiş bir adresin onu ne kadar süre atlayacağı: 0 = girişler o adresten geldikçe süresiz, -1 = kod her zaman sorulur, N = N gün. |
two_factor.smtp_host, two_factor.smtp_port, two_factor.smtp_user, two_factor.smtp_password, two_factor.smtp_tls |
localhost, 587, boş, boş, true |
dosya | İki panelin giriş kodu e-postalarının ve müşteri parola sıfırlama e-postasının aktarıcısı — Ayarlar › Bildirimler'in aktarıcısı değil. Varsayılanlarla yerel Postfix 25 portunda kullanılır. Bu sürümde bu iletiler smtp_user ve smtp_password ayarlı olsa bile SMTP kimlik doğrulaması olmadan gönderilir; bu yüzden smtp_host bu sunucuyu girişsiz kabul eden bir aktarıcıyı adlandırmalıdır. |
recaptcha.enabled, recaptcha.provider, recaptcha.min_score |
false, recaptcha, 0.5 |
Ayarlar › Güvenlik › CAPTCHA Koruması | İki panelin giriş captcha'sı; sağlayıcı recaptcha, hcaptcha ya da turnstile; min_score (0.0–1.0) reCAPTCHA v3 eşiğidir. Açmak için seçili sağlayıcının site anahtarı ve gizli anahtarı gerekir. Herkese açık GET /api/v1/auth/captcha-config yalnız açık/kapalı bilgisini, sağlayıcıyı ve site anahtarını yayımlar. |
recaptcha.<provider>_site_key, recaptcha.<provider>_secret_key |
boş | Ayarlar › Güvenlik › CAPTCHA Koruması | Her sağlayıcının anahtar çifti; sayfa gizli anahtarları maskeli gösterir. |
notification_smtp_password |
boş | Ayarlar › Bildirimler | Bildirim aktarıcısının parolası. O SMTP bloğunun geri kalanı (sunucu, port, kullanıcı adı, şifreleme ve gönderen) /etc/whost/notification_prefs.json dosyasında durur; burada yalnız parola tutulur. Bildirim e-postaları o bloğu kullanır, sonra two_factor.smtp_* anahtarlarına, sonra yerel aktarıcıya düşer. |
two_factor.totp_secret, backup_codes, pending_*, totp_last_step, avatar_url, last_login |
— | agent | Profil sayfası ve giriş akışı tarafından yönetilir (TOTP sırrı, özetlenmiş yedek kodlar, süren bir kayıt, avatar). |
frontend
nginx'in sunduğu statik panel paketi.
| Anahtar | Varsayılan | Değiştirildiği yer | Ne yapar |
|---|---|---|---|
public_url |
boş | dosya | Panele dışarıdan ulaşılan adres (https://panel.example.com): panelin e-postayla gönderdiği parola sıfırlama bağlantısının kaynağı. Boşsa bağlantı https://<server.hostname> ile, ancak host adı da yoksa çıplak https://<server_ip> ile kurulur — ad, panelin sunduğu sertifikayla eşleşir; adres eşleşmez. Bildirim e-postaları bu anahtar ne olursa olsun https://<server.hostname> adresine bağlantı verir. |
default_language |
auto |
Ayarlar › Genel › Dil Ayarları | auto ya da panelin locale kodlarından biri: dil seçmemiş bir tarayıcının dili. Kaydedildiğinde ve her agent açılışında panelin config.json dosyasına yazılır. |
debug_log |
false |
dosya | Tarayıcı debug beacon rotasını açar (POST /api/v1/debug-log); dosyası /var/log/whost/frontend-debug.log installer'ın /etc/logrotate.d/whost kuralıyla günlük döndürülür (yedi kopya saklanır). |
enabled, path |
true, /opt/whost/frontend/out |
agent | Agent'ın panel dosyaları kopyası; nginx, kurucunun bundan kopyaladığı /var/www/whost/panel dizinini sunar. |
client_features
Varsayılanı hepsi true olan ve Ayarlar › Genel'den düzenlenen on bir anahtar (file_manager, dns, backups, cron, ssl, php, email, ftp, databases, python_apps, node_apps). Kapalı bir anahtar, o yüzeyin her müşteri rotasında API'de uygulanır (409 FEATURE_DISABLED, istek yoluna göre — email için /client/emails ve /client/spam, file_manager için /client/files, php için domain başına /client/domains/{domain}/php/* rotaları); müşteri profili anahtarları features olarak taşır ve müşteri paneli kapalı bir yüzeyin kenar çubuğu girdisini ve dashboard kutucuklarını gizler. Kapalı bir anahtar yedek zamanlayıcısını durdurmaz: backups kapalıyken yalnız müşterinin yedek rotaları reddedilir, hesabın mevcut zamanlamaları çalışmaya devam eder.
python_apps ve node_apps aynı zamanda Python Hosting ve Node.js Hosting eklentilerinin açık/kapalı durumudur: eklentiyi Eklentiler sayfasında etkinleştirmek ya da devre dışı bırakmak bunları ayarlar (uygulamalar dağıtılmışken devre dışı bırakma reddedilir); biri kapalıyken her Python ya da Node.js uygulama rotası — yöneticininkiler dahil — 503 PLUGIN_DISABLED döndürür.
whitelabel
enabled, company_name, dört logo adresi (logo_light, logo_dark, favicon, favicon_dark), her panel için giriş sayfası videosu ve kapağı (login_video_admin, login_poster_admin, login_video_client, login_poster_client; boş = varsayılan video), altı HSL rengi (primary_color, secondary_color, nav_color ve _dark ikizleri; H 0–360, S ve L 0–100 aralığında "H S% L%") ve hide_login_branding (varsayılan true). Whitelabel sayfasından (sağ üstteki hesap menüsü) düzenlenir; her değişiklik bir settings_updated denetim satırı yazar ve panel ağaçlarındaki config.json dosyasını yeniden yazar. whitelabel lisans eklentisi etkin değilken sayfanın kayıtları, logo ve giriş videosu yüklemeleri ve kaldırmaları ve sıfırlaması 403 LICENSE_ADDON_REQUIRED ile reddedilir; bu blokta zaten bulunan değerler kalır ve herkese açık marka okuması eklenti etkinleşene kadar active: false döndürür. Eklentiyi veren ya da geri alan bir lisans denetimi config.json'u hemen yeniden yazar, panel yeniden başlatma olmadan izler. Elle düzenleme, eklenti etkinken bir sonraki agent açılışında yayımlanır.
Bir logo alanı, agent'ın /var/lib/whost/branding/ altında sakladığı bir dosyanın adresini tutar — /branding/<alan>.<özet>.<png|jpg|webp|svg>; dosyayı panelin nginx'i (/etc/nginx/snippets/whost-panel-locations.conf içinde location ^~ /branding/) bir yıllık değişmez önbellek ve korumalı alan (sandbox) içerik politikasıyla sunar; ad içerikle birlikte değişir, değiştirilen ya da kaldırılan logonun dosyası silinir. Yalnız böyle bir adres (ya da aşağıdaki satır içi data:image/ URL'i) yayımlanır; elle yazılmış başka bir değer yayımlanmaz. Yüklemeler (dosya başına 2 MB) saklanmadan önce biçimlendirilir: raster logo 512 × 160 px (genişlik × yükseklik) kutusuna, favicon şeffaf dolgulu en fazla 256 px'lik kare bir PNG'ye; 25 megapikselden büyük görsel (400 IMAGE_DIMENSIONS_TOO_LARGE) ve türü olarak çözülemeyen dosya (400 INVALID_IMAGE) reddedilir; SVG temizlenip korunur. Giriş videosu alanı /branding/login_video_<admin|client>.<özet>.mp4 adresini tutar — video izi H.264 olan, en fazla 5 MB'lık bir MP4, yüklendiği gibi saklanır (panel daha büyük bir videoyu yüklemeden önce tarayıcıda küçültür) — kapağı ise /branding/login_poster_<admin|client>.<özet>.<jpg|png|webp>, 1920 × 1080 kutusuna (dik görselde 1080 × 1920) sığdırılır; her alan yalnız kendisi için yazılmış bir dosyayı yayımlar. Önceki bir sürümün satır içi data: URL'i olarak sakladığı logolar, panel nginx'inin /branding/ sunduğunu gören ilk agent açılışında dosyalara taşınır: özgün değerler önce /var/lib/whost/branding-legacy-<zaman>.yaml dosyasına (mod 0600) kopyalanır, logolar yüklemeler gibi biçimlendirilir ve blok bir kez kaydedilir; çözülemeyen bir değer olduğu gibi kalır. /var/lib/whost/branding/ klasörünü sunucu yedeklerine dahil edin.
güncelleme tercihleri (agent.conf bloğu değildir)
agent.conf'ta update: bloğu yoktur; eski bir kurulumdan kalan update: bloğu hiçbir kod tarafından okunmaz ve agent dosyayı bir sonraki yazışında düşer. Güncelleme tercihleri /etc/whost/update_settings.json (root, 0600) dosyasında durur: channel (stable | beta), auto_update, auto_update_type (all | security | patch | minor), backup_before_update, notify_available, notify_installed, os_packages_check_enabled, os_packages_notify_security, allow_vendor_critical_override. auto_update_type neyin kendiliğinden kurulacağını belirler: security yalnız satıcının kritik işaretlediği sürümleri (ve yalnız allow_vendor_critical_override açıkken), patch bir patch adımını, minor bir minor ya da patch adımını, all her sürümü; satıcının kritik işaretlediği bir sürüm, allow_vendor_critical_override açıkken diğer tiplerde de kurulur. Kurucu dosyayı yeni bir sunucuda bir kez, kurduğu sürümün kanalıyla yazar (-beta.N bir sürümde beta, aksi hâlde stable) ve var olan dosyaya dokunmaz; sonrasında dosyayı Güncellemeler sayfası yazar (Ayarlar sekmesi, PUT /system/update/settings), kurulum hattı ve zamanlayıcı okur; dosya yoksa varsayılanlar geçerlidir (satıcının kritik işaretlediği sürümlerin otomatik kurulumu açık), ayrıştırılamayan bir dosya loglanır ve onarılana kadar auto_update: false sayılır. Kontrol kadansı sabittir: her agent açılışından beş dakika sonra, ardından 24 saatte bir (en çok 30 dakika jitter).
Ortam Değişkenleri
Agent ayarlarını yalnızca bu YAML dosyasından okur; bu dosyanın hiçbir anahtarı ortam değişkeniyle verilemez. Servis birimi (/etc/systemd/system/whost-agent.service) agent'ın çalıştığı ortamı — aralarında bu dosyanın yolu olan WHOST_CONFIG_PATH=/etc/whost/agent.conf — sertleştirme anahtarlarıyla birlikte ayarlar. Birimi kurulduğu gibi bırakın: kurucu ve agent'ın açılıştaki izin kontrolü /etc/whost/agent.conf üzerinde çalışır.
Değişiklikleri Uygulama
Panelden kaydedilen ayarlar hemen etkili olur: agent bu dosyayı kendisi yazar ve değişikliği, tabloların anlattığı gibi ilgili servise uygular. Panelin sunmadığı bir anahtarı (tablolarda dosya) değiştirmek için:
- Bir kopya alın, örneğin
cp -p /etc/whost/agent.conf /root/agent.conf.bak— kopya aynı sırları taşır,600izninde tutun. - Dosyayı düzenleyin, ardından panelde bir şey kaydetmeden önce agent'ı yeniden başlatın; yeniden başlatmaya kadar panelden yapılan bir sonraki kayıt, agent'ın bellekteki ayarlarını düzenlemenin üzerine yazar.
- Agent'ın geri geldiğini kontrol edin: açılış bittiğinde (birkaç saniye)
curl -sk https://127.0.0.1:2000/health{"status":"ok",...}yanıtı verir. Vermiyorsa/var/log/whost/agent.logdosyasının sonunu okuyun.
systemctl restart whost-agent
curl -sk https://127.0.0.1:2000/health
Elle düzenleme agent'ın okuduğunu değiştirir; panel kaydının yazdığı servis yapılandırmalarını (web sunucu ayarları, MariaDB, Pure-FTPd, Postfix ileti boyutu, sshd, nginx yönetici beyaz listesi, DNS bölgeleri, panel vhost'u) yeniden yazmaz. Bu anahtarları panelden değiştirin. Her agent açılışı lisansı lisans sunucusuyla doğrular; art arda yeniden başlatmalardan kaçının.
Geliştirici: WISECP LLC. İletişim: [email protected]
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.