Nasıl çalışacak
Ziyaretçi panel.musteri.com adresine HTTPS ile gelir. Müşterinin makinesindeki Caddy sertifikayı kendisi alır ve isteği makinenin içinde 127.0.0.1:3001 adresindeki panele aktarır. Panel portu sadece makinenin içinden dinlendiği için dışarıdan doğrudan erişilemez; IP sahteciliği ve şifresiz HTTP riski kalmaz.
Müşteriden alınacaklar
Müşteriyle yazışırken| Ne | Neden |
|---|---|
| Uzak masaüstü bilgileri | Makineye bağlanmak için. Yönetici (Administrator) hesabı olmalı. |
| Sunucunun genel IP'si | Lisansı önceden bu IP'ye onaylamak için. |
| Kullanılacak domain | Örn. panel.sunucuadi.com. Müşteri DNS kaydını kendisi ekleyecekse ona 3. adımı gönder; yoksa DNS paneline erişim iste. |
| Sahibin Discord ID'si | MasterAdmin olacak kişi. Gerekirse ortaklarının ID'leri. |
| Discord sunucusunda yönetici | Bot eklenirken müşterinin Discord yöneticisinin hazır olması gerekir (10. adım). |
| Rol / kanal ID'leri | Whitelist ve Kayıtsız rolleri, ekip kategorileri, yetkili rolleri, log kanalları ve webhook'lar. |
| Hosting paneli | Kiralık sunucuysa firmanın kendi firewall'unda 80 ve 443 açık olmalı. |
Cloud'da lisansı oluştur ve IP'yi önceden onayla
cloud.2ldev.xyz/admin- Yönetim merkezine gir, Lisanslar → Yeni Lisans.
- Müşteri adı, sahibin Discord ID'si, Tebex sipariş numarası ve IP hakkı (genelde 1) gir.
- IP alanına 203.0.113.10 yaz. Böylece sunucu ilk açıldığında "IP onayı bekliyor"a düşmez.
- Lisansı Oluştur. Çıkan anahtarı yukarıdaki "Lisans anahtarı" kutusuna yapıştır.
DNS kaydı
Müşterinin domain paneli (Cloudflare, Spaceship, GoDaddy...)Kurulumdan önce ekletmek en iyisi: DNS yayılırken sen dosyalarla uğraşırsın.
| Tür | Ad / Host | Değer | TTL |
|---|---|---|---|
A | panel | 203.0.113.10 | Otomatik |
Kayıt yayıldı mı? Herhangi bir Windows'ta:
Sonuçta 203.0.113.10 görmelisin. Görmeden 7. adımdaki Caddy'yi başlatma.
Ön kontrol
Müşteri makinesi · Yönetici PowerShell80, 443 ve panel portunu başka bir programın kullanıp kullanmadığına bak. IIS, Apache, XAMPP veya Skype bu portları tutabilir.
- Boş sonuç: portlar müsait, devam et.
- 80/443'te bir program var: IIS ise
Stop-Service W3SVC; Set-Service W3SVC -StartupType Disabled. Başka bir şeyse müşteriye sor; zaten bir web sunucusu (nginx/IIS) kullanıyorsa Caddy yerine ona yönlendirme eklemek gerekir. - Panel portu dolu: yukarıdaki "Panel portu" kutusunu 3002 gibi boş bir sayıya çevir; sayfadaki her şey ona göre güncellenir.
Dosyalar ve server.cfg
Müşteri makinesi- Müşterinin hesabıyla keymaster'dan 2L-WebPanel'i (ve aldığı diğer 2L scriptlerini) indir.
resources\[2L]\2L-WebPanelolarak yerleştir. Klasör adının birebir aynı olduğundan emin ol.server.cfg'deensure oxmysql,ensure qbx_core,ensure ox_inventorysatırlarının altına ekle:
screencapture, /webpedmenu için illenium-appearance sunucuda yüklü olmalı. Diğer 2L scriptleri ensure [2L] ile başlatılıyorsa WebPanel'in ayrı ensure satırı gerekmez.Panel ayarları
resources\[2L]\2L-WebPanel\config\config.lua → Web
Host = '127.0.0.1' en önemli satır: panel portu internete hiç açılmaz, panele sadece domain üzerinden HTTPS ile girilir.
Diğer dosyalar
| Dosya → bölüm | Ne yazılacak |
|---|---|
permissions.lua → MasterAdmins | Sahibin ID'si: 123456789012345678 (ve ortakları). Kendini kalıcı ekleme; destek için gerekirse geçici ekle, iş bitince sil. |
config.lua → Branding | Sunucu adı, LogoUrl, FaviconUrl (müşterinin logosu). |
config.lua → AuditLog.Webhooks | Müşterinin kanallarındaki webhook adresleri veya boş. |
discord.lua → Teams | StaffRoles, ekip türlerinin CategoryId'leri. |
discord.lua → Whitelist | WhitelistRoleId, UnregisteredRoleId, isterse NicknameFormat ve LogChannelId. |
commands.lua | LogChannelId, /webbring konumları (TeleportLocations), limitler. |
framework.lua | Standart QBox'ta dokunma. Tablo adları farklıysa burada eşleştirilir. |
Caddy kurulumu (HTTPS + yönlendirme)
Müşteri makinesi · Yönetici PowerShellCaddy tek bir exe; sertifikayı Let's Encrypt'ten kendisi alır ve yeniler. Kendi sunucundaki 2L-Store servisiyle aynı yöntem.
a) İndir
b) Caddyfile oluştur
Son satır Valid configuration yazmalı.
c) Windows servisi olarak kur ve başlat
C:\Caddy\caddy.exe reload --config C:\Caddy\Caddyfile --adapter caddyfileGüvenlik duvarı
Müşteri makinesi · Yönetici PowerShellSadece 80 ve 443 açılır. Panel portu açılmaz; Caddy panele makinenin içinden ulaşır.
İlk açılış
txAdmin · konsol- Sunucuyu yeniden başlat.
- Konsolda aşağıdaki satırları gör. IP önceden onaylandıysa doğrudan lisans geçerli yazar.
- Tarayıcıda panel.musteri.com adresini aç. Kilit simgesi ve giriş ekranı gelmeli.
Bot ve Discord rolleri
Panel + müşterinin Discord'u- Sahip (MasterAdmin) panele Discord ile Giriş Yap ile girer.
- Ayarlar & Lisans → Botu Sunucuya Ekle. Müşterinin Discord sunucusu seçilir, izinler değiştirilmeden yetkilendirilir. Bunu Discord sunucusunda "Sunucuyu Yönet" yetkisi olan kişi yapmalı.
- Discord → Sunucu Ayarları → Roller: 2L rolünü ekip rollerinin, Whitelist ve Kayıtsız rollerinin üstüne taşı.
- 2L rolünde şu izinlerin açık olduğunu kontrol et: Rolleri Yönet, Kanalları Yönet, Kullanıcı Adlarını Yönet (whitelist), Üyeleri Yasakla (ekip banı).
- Ekip kategorileri gizliyse: kategori → İzinler → 2L rolüne Kanalı Görüntüle ve Kanalları Yönet.
- Panel → Yetki Yönetimi: müşterinin yetkili rollerine yetki dağıt (Discord Komutları ve Whitelist grupları dahil).
Teslim testi
Ayrılmadan önce hepsini işaretleSorun giderme
Domain açılmıyor / sertifika hatası
Sırayla: DNS doğru IP'yi gösteriyor mu (3. adım), Cloudflare gri bulut mu, 80 ve 443 hem Windows'ta hem hosting panelinde açık mı? Caddy'nin ne dediğini görmek için servisi durdurup elle çalıştır:
Hatayı gördükten sonra Ctrl+C ve sc.exe start Caddy.
502 Bad Gateway
Caddy çalışıyor ama panele ulaşamıyor: FXServer kapalı, 2L-WebPanel başlamamış veya Caddyfile'daki port ile config.lua → Port farklı.
Discord girişinden sonra yanlış adrese dönüyor
PublicUrl domainle birebir aynı olmalı: https://panel.musteri.com (sonunda / olmadan). Değiştirdikten sonra restart 2L-WebPanel.
"Panelin geri dönüş adresi bu lisans için kayıtlı değil"
Lisansta izinli panel adresi listesi (panelUrls) dolu ve bu domain listede yok. Listeye domaini ekle veya listeyi boşalt.
Konsolda IP onayı bekliyor
Sunucunun internete çıktığı IP, 2. adımda yazdığından farklı. Konsolda yazan IP'yi yönetim merkezi → IP Talepleri'nden onayla, sunucuyu yeniden başlat.
2L scriptleri "HTTP 0 - Failure handling HTTP request"
FiveM .xyz, .store, .shop adreslerine istek atmayı engelliyor. Scriptler cloud.2ldev.site kullanır; bu hatayı görürsen scriptlerin eski sürümü yüklüdür, güncel sürümü indir.
Ekip / whitelist / ban işlemlerinde "yetki yok" (403)
2L rolü işlem yapılan rollerin altında kalmış veya ilgili izin kapalı. 10. adımın 3-5. maddelerini kontrol et. Sunucu sahibine ve bot rolünden yüksek rolü olanlara Discord hiçbir zaman izin vermez.
Panel çok yavaş / canlı izleme kopuyor
Cloudflare turuncu bulut açık olabilir; gri yap. Ya da müşterinin sunucusunun yükleme hızı düşüktür.
Müşteri sunucusu Linux ise
5, 6, 9, 10 ve 11. adımlar aynı. Caddy ve güvenlik duvarı şöyle (Ubuntu / Debian):
Caddy paket olarak kurulunca servis zaten açılışta başlar. Kontrol: systemctl status caddy, kayıtlar: journalctl -u caddy -f.