HestiaCP'nin arayüzü aslında bir kabuk scripti koleksiyonunun üstündeki ince bir katmandır. Panelde tıkladığın her düğme arka planda
Bu komutları doğrudan kullanmayı öğrendiğinde iki büyük kazanç elde edersin: işlemler çok daha hızlı olur ve tekrarlayan işleri otomatikleştirebilirsin. Elli müşteri hesabını panelden tek tek açmakla, bir CSV dosyasından döngüyle açmak arasındaki fark budur.
Komutların tamamı
1. Mantığı kavra
Komut isimleri son derece tutarlıdır:
Bu mantığı anlarsan komut ezberlemene gerek kalmaz. Mevcut tüm komutları görmek için:
Bir komutun parametrelerini öğrenmek için argümansız çalıştır:
Kullanım satırını ekrana basar.
2. Kullanıcı işlemleri
Kullanıcının disk ve trafik kullanımını gör:
3. Web domain işlemleri
4. Veritabanı işlemleri
MySQL root şifresini görmek için:
5. DNS işlemleri
6. Mail işlemleri
7. Yedekleme işlemleri
Sadece belirli bir domaini geri yükleme:
8. Sistem işlemleri
9. Otomasyon örnekleri
İşin asıl gücü burada başlıyor.
9.1 CSV'den toplu hesap açma
Script:
9.2 Tüm domainlere toplu SSL
9.3 SSL süresi dolmak üzere olanları raporla
9.4 Disk kullanımı raporu
10. Çıktı formatları
Listeleme komutlarına format parametresi verebilirsin — script yazarken çok işine yarar:
11. Uzaktan API kullanımı
HestiaCP komutları HTTP üzerinden de çalıştırılabilir. Kendi yönetim panelini yazmak istiyorsan bu kapıyı kullanırsın.
Önce API'yi aç:
Örnek çağrı:
Güvenlik notu: API'yi açtıysan firewall'da yalnızca kendi uygulama sunucunun IP'sine izin ver. Anahtarı asla istemci tarafı koda gömme.
Dikkat edilecekler
Kendi otomasyon scriptlerinizi buraya paylaşırsanız hep birlikte bir arşiv oluşturabiliriz. Sıradaki konu: HestiaCP sorun giderme ve log okuma rehberi.
v- ile başlayan bir komutu çalıştırır.Bu komutları doğrudan kullanmayı öğrendiğinde iki büyük kazanç elde edersin: işlemler çok daha hızlı olur ve tekrarlayan işleri otomatikleştirebilirsin. Elli müşteri hesabını panelden tek tek açmakla, bir CSV dosyasından döngüyle açmak arasındaki fark budur.
Komutların tamamı
/usr/local/hestia/bin/ dizinindedir. Root olarak çalışırsın.1. Mantığı kavra
Komut isimleri son derece tutarlıdır:
Kod:
v-[eylem]-[nesne]
v-add-user kullanici ekle
v-delete-user kullanici sil
v-list-users kullanicilari listele
v-change-user-... kullanici ayari degistir
v-suspend-user kullaniciyi askiya al
Bu mantığı anlarsan komut ezberlemene gerek kalmaz. Mevcut tüm komutları görmek için:
Kod:
ls /usr/local/hestia/bin/ | grep "^v-"
Bir komutun parametrelerini öğrenmek için argümansız çalıştır:
Kod:
v-add-web-domain
Kullanım satırını ekrana basar.
2. Kullanıcı işlemleri
Kod:
v-add-user oblifex SIFRE [email protected] default "Oblifex Yonetim"
v-list-users
v-list-user oblifex
v-change-user-password oblifex YENI_SIFRE
v-change-user-package oblifex premium
v-suspend-user oblifex
v-unsuspend-user oblifex
v-delete-user oblifex
Kullanıcının disk ve trafik kullanımını gör:
Kod:
v-list-user-stats oblifex
3. Web domain işlemleri
Kod:
v-add-web-domain oblifex oblifex.com
v-add-web-domain-alias oblifex oblifex.com www.oblifex.com
v-list-web-domains oblifex
v-list-web-domain oblifex oblifex.com
v-add-letsencrypt-domain oblifex oblifex.com 'www.oblifex.com'
v-add-web-domain-ssl-force oblifex oblifex.com
v-change-web-domain-backend-tpl oblifex oblifex.com PHP-8_2
v-change-web-domain-proxy-tpl oblifex oblifex.com caching
v-rebuild-web-domains oblifex
v-delete-web-domain oblifex oblifex.com
4. Veritabanı işlemleri
Kod:
v-add-database oblifex forum forumuser SIFRE
v-list-databases oblifex
v-change-database-password oblifex oblifex_forum YENI_SIFRE
v-dump-database oblifex oblifex_forum
v-delete-database oblifex oblifex_forum
MySQL root şifresini görmek için:
Kod:
cat /usr/local/hestia/conf/mysql.conf
5. DNS işlemleri
Kod:
v-add-dns-domain oblifex oblifex.com SUNUCU_IP
v-add-dns-record oblifex oblifex.com blog A SUNUCU_IP
v-add-dns-record oblifex oblifex.com @ TXT "v=spf1 a mx ~all"
v-list-dns-records oblifex oblifex.com
v-delete-dns-record oblifex oblifex.com KAYIT_ID
v-rebuild-dns-domains oblifex
6. Mail işlemleri
Kod:
v-add-mail-domain oblifex oblifex.com
v-add-mail-account oblifex oblifex.com destek SIFRE
v-add-mail-account-forward oblifex oblifex.com destek [email protected]
v-change-mail-account-quota oblifex oblifex.com destek 5000
v-list-mail-accounts oblifex oblifex.com
v-delete-mail-account oblifex oblifex.com destek
7. Yedekleme işlemleri
Kod:
v-backup-user oblifex
v-backup-users
v-list-user-backups oblifex
v-restore-user oblifex oblifex.2026-09-07_05-10-01.tar
v-delete-user-backup oblifex oblifex.2026-09-07_05-10-01.tar
Sadece belirli bir domaini geri yükleme:
Kod:
v-restore-user oblifex YEDEK.tar no oblifex.com
8. Sistem işlemleri
Kod:
v-list-sys-info
v-list-sys-services
v-restart-service nginx
v-restart-service php8.3-fpm
v-restart-service mariadb
v-list-sys-config
v-change-sys-port 2083
v-change-sys-hostname panel.oblifex.com
v-list-firewall
v-add-firewall-rule ACCEPT 0.0.0.0/0 443 TCP HTTPS
v-delete-firewall-rule 5
9. Otomasyon örnekleri
İşin asıl gücü burada başlıyor.
9.1 CSV'den toplu hesap açma
musteriler.csv Dosyan şöyle olsun:
Kod:
ahmet,sifre123,[email protected],ahmetsite.com
mehmet,sifre456,[email protected],mehmetsite.com
Script:
Kod:
cat > /root/toplu-hesap.sh << 'EOF'
#!/bin/bash
while IFS=, read -r kullanici sifre mail domain; do
echo ">>> $kullanici olusturuluyor"
v-add-user "$kullanici" "$sifre" "$mail" default "$kullanici"
v-add-web-domain "$kullanici" "$domain"
v-add-dns-domain "$kullanici" "$domain" "$(hostname -I | awk '{print $1}')"
v-add-mail-domain "$kullanici" "$domain"
echo "$kullanici tamamlandi"
done < /root/musteriler.csv
EOF
chmod +x /root/toplu-hesap.sh
bash /root/toplu-hesap.sh
9.2 Tüm domainlere toplu SSL
Kod:
for u in $(v-list-users plain | cut -f1); do
for d in $(v-list-web-domains "$u" plain | cut -f1); do
echo "SSL: $d"
v-add-letsencrypt-domain "$u" "$d" "www.$d" 2>/dev/null
done
done
9.3 SSL süresi dolmak üzere olanları raporla
Kod:
cat > /root/ssl-kontrol.sh << 'EOF'
#!/bin/bash
for u in $(v-list-users plain | cut -f1); do
for d in $(v-list-web-domains "$u" plain | cut -f1); do
BITIS=$(echo | openssl s_client -servername "$d" -connect "$d":443 2>/dev/null \
| openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
[ -z "$BITIS" ] && continue
KALAN=$(( ($(date -d "$BITIS" +%s) - $(date +%s)) / 86400 ))
[ $KALAN -lt 15 ] && echo "UYARI: $d icin $KALAN gun kaldi"
done
done
EOF
chmod +x /root/ssl-kontrol.sh
9.4 Disk kullanımı raporu
Kod:
for u in $(v-list-users plain | cut -f1); do
KULLANIM=$(du -sh /home/$u 2>/dev/null | cut -f1)
echo "$u : $KULLANIM"
done | sort -k3 -hr
10. Çıktı formatları
Listeleme komutlarına format parametresi verebilirsin — script yazarken çok işine yarar:
Kod:
v-list-users json
v-list-users plain
v-list-users shell
v-list-users csv
plain Formatı sekmeyle ayrılmış çıktı verir, cut ve awk ile işlemek için idealdir. json Formatı ise API benzeri kullanım için uygundur:
Kod:
v-list-web-domains oblifex json | jq '.[] | .DOMAIN'
11. Uzaktan API kullanımı
HestiaCP komutları HTTP üzerinden de çalıştırılabilir. Kendi yönetim panelini yazmak istiyorsan bu kapıyı kullanırsın.
Önce API'yi aç:
Kod:
v-change-sys-config-value API yes
v-add-access-key admin 'USER,WEB,DNS,MAIL,DB'
Örnek çağrı:
Kod:
curl -k -X POST https://panel.oblifex.com:2083/api/ \
-d "hash=ANAHTAR" \
-d "returncode=yes" \
-d "cmd=v-list-web-domains" \
-d "arg1=oblifex" \
-d "arg2=json"
Güvenlik notu: API'yi açtıysan firewall'da yalnızca kendi uygulama sunucunun IP'sine izin ver. Anahtarı asla istemci tarafı koda gömme.
Dikkat edilecekler
- Komutları çalıştırmadan önce hangi kullanıcı üzerinde çalıştığını iki kez kontrol et;
v-delete-usergeri alınamaz - Toplu scriptleri önce tek bir test hesabında dene
- Şifreleri script dosyasının içine yazdıysan dosya iznini
chmod 600yap - Panelde yapılan işlemler de aynı komutları çağırır, ikisi çakışmaz
- Büyük toplu işlemleri
screeniçinde çalıştır
Kendi otomasyon scriptlerinizi buraya paylaşırsanız hep birlikte bir arşiv oluşturabiliriz. Sıradaki konu: HestiaCP sorun giderme ve log okuma rehberi.