2L Development · İç kullanım

Müşteri makinesine 2L-WebPanel kurulumu

Müşterinin sunucusuna uzak masaüstüyle bağlanıp paneli müşterinin kendi domaininde, HTTPS ile ve panel portu dışarıya kapalı olacak şekilde kurmak için adım adım kontrol listesi. Aşağıya müşterinin bilgilerini yaz: sayfadaki bütün komutlar ve ayarlar bunlara göre dolar, kopyalayıp yapıştırman yeterli.

Müşteri bilgileri

Sadece bu sayfada kullanılır, hiçbir yere gönderilmez.

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.

Bağlanmadan önce
1

Müşteriden alınacaklar

Müşteriyle yazışırken
NeNeden
Uzak masaüstü bilgileriMakineye bağlanmak için. Yönetici (Administrator) hesabı olmalı.
Sunucunun genel IP'siLisansı ö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'siMasterAdmin olacak kişi. Gerekirse ortaklarının ID'leri.
Discord sunucusunda yöneticiBot eklenirken müşterinin Discord yöneticisinin hazır olması gerekir (10. adım).
Rol / kanal ID'leriWhitelist ve Kayıtsız rolleri, ekip kategorileri, yetkili rolleri, log kanalları ve webhook'lar.
Hosting paneliKiralık sunucuysa firmanın kendi firewall'unda 80 ve 443 açık olmalı.
2

Cloud'da lisansı oluştur ve IP'yi önceden onayla

cloud.2ldev.xyz/admin
  1. Yönetim merkezine gir, Lisanslar → Yeni Lisans.
  2. Müşteri adı, sahibin Discord ID'si, Tebex sipariş numarası ve IP hakkı (genelde 1) gir.
  3. IP alanına 203.0.113.10 yaz. Böylece sunucu ilk açıldığında "IP onayı bekliyor"a düşmez.
  4. Lisansı Oluştur. Çıkan anahtarı yukarıdaki "Lisans anahtarı" kutusuna yapıştır.
Test sunucusu da istiyorsa IP hakkını 2 yap ve ikinci IP'yi lisans detayından IP Ekle ile ekle.
3

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ürAd / HostDeğerTTL
Apanel203.0.113.10Otomatik
Cloudflare kullanıyorsa kaydın bulut simgesi gri (DNS only) olmalı. Turuncu (proxy) açıkken Caddy sertifika alamayabilir ve canlı izleme gibi uzun bağlantılar kesilebilir.

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.

Müşteri makinesinde
4

Ön kontrol

Müşteri makinesi · Yönetici PowerShell

80, 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.
5

Dosyalar ve server.cfg

Müşteri makinesi
  1. Müşterinin hesabıyla keymaster'dan 2L-WebPanel'i (ve aldığı diğer 2L scriptlerini) indir.
  2. resources\[2L]\2L-WebPanel olarak yerleştir. Klasör adının birebir aynı olduğundan emin ol.
  3. server.cfg'de ensure oxmysql, ensure qbx_core, ensure ox_inventory satırlarının altına ekle:
server.cfg
Canlı ekran izleme için 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.
6

Panel ayarları

resources\[2L]\2L-WebPanel\config\
Config dosyalarını tek tek kontrol et. Kendi sunucunda kullandığın değerler (webhook adresleri, log kanalı, ekip yetkili rolleri, logo) dağıtılan sürümde kalmışsa müşterinin işlemleri senin Discord'una gider. Hepsini müşterinin değerleriyle değiştir veya boşalt.

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ümNe yazılacak
permissions.lua → MasterAdminsSahibin ID'si: 123456789012345678 (ve ortakları). Kendini kalıcı ekleme; destek için gerekirse geçici ekle, iş bitince sil.
config.lua → BrandingSunucu adı, LogoUrl, FaviconUrl (müşterinin logosu).
config.lua → AuditLog.WebhooksMüşterinin kanallarındaki webhook adresleri veya boş.
discord.lua → TeamsStaffRoles, ekip türlerinin CategoryId'leri.
discord.lua → WhitelistWhitelistRoleId, UnregisteredRoleId, isterse NicknameFormat ve LogChannelId.
commands.luaLogChannelId, /webbring konumları (TeleportLocations), limitler.
framework.luaStandart QBox'ta dokunma. Tablo adları farklıysa burada eşleştirilir.
7

Caddy kurulumu (HTTPS + yönlendirme)

Müşteri makinesi · Yönetici PowerShell

Caddy 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

Servis makine açılınca kendiliğinden başlar ve çökerse 5 saniye sonra yeniden açılır. Sonradan Caddyfile değişirse: C:\Caddy\caddy.exe reload --config C:\Caddy\Caddyfile --adapter caddyfile
8

Güvenlik duvarı

Müşteri makinesi · Yönetici PowerShell

Sadece 80 ve 443 açılır. Panel portu açılmaz; Caddy panele makinenin içinden ulaşır.

Daha önce panel portu için açılmış bir kural varsa kaldır. Kiralık sunucularda hosting firmasının panelinde de 80/443 açık olmalı; 80 kapalıysa sertifika alınamaz.
9

İlk açılış

txAdmin · konsol
  1. Sunucuyu yeniden başlat.
  2. Konsolda aşağıdaki satırları gör. IP önceden onaylandıysa doğrudan lisans geçerli yazar.
  3. Tarayıcıda panel.musteri.com adresini aç. Kilit simgesi ve giriş ekranı gelmeli.
Sarı "Lisans IP onayı bekliyor (x.x.x.x)" çıkarsa: yazan IP 2. adımdakinden farklıdır (NAT / çoklu IP). Yönetim merkezi → IP Talepleri'nden onayla ve sunucuyu bir kez daha yeniden başlat (2L scriptleri lisansı sadece açılışta kontrol eder).
Discord ve teslim
10

Bot ve Discord rolleri

Panel + müşterinin Discord'u
  1. Sahip (MasterAdmin) panele Discord ile Giriş Yap ile girer.
  2. 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ı.
  3. Discord → Sunucu Ayarları → Roller: 2L rolünü ekip rollerinin, Whitelist ve Kayıtsız rollerinin üstüne taşı.
  4. 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ı).
  5. Ekip kategorileri gizliyse: kategori → İzinler → 2L rolüne Kanalı Görüntüle ve Kanalları Yönet.
  6. Panel → Yetki Yönetimi: müşterinin yetkili rollerine yetki dağıt (Discord Komutları ve Whitelist grupları dahil).
11

Teslim testi

Ayrılmadan önce hepsini işaretle

Sorun 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.