Ana içeriğe geç

BTCPay Server Kurulumu ve WHMCS Entegrasyonu — Bitcoin ve Lightning Network ile Odeme Alma Rehberi

Bu rehber, kendi sunucunuza BTCPay Server kurulumunu, Bitcoin + Lightning Network yapilandirmasini ve WHMCS 8.x entegrasyonunu adim adim anlatir. Komisyonsuz, non-custodial (kendi cuzdaniniz), tamamen acik kaynakli bir kripto odeme altyapisi kurmak icin eksiksiz bir kaynaktir.

BTCPay Server, self-hosted bir kripto odeme islemcisidir. Ucuncu tarafa bagimliligi yoktur, odeme dogrudan kendi cuzdaniniza gelir. Mozilla, DG Lab gibi buyuk organizasyonlar tarafindan kullanilmaktadir.

Kaynak: GitHub — btcpayserver/btcpayserver-docker WHMCS Plugin: GitHub — btcpayserver/whmcs-plugin Resmi Dokumantasyon: docs.btcpayserver.org


OS: Ubuntu 22.04 LTS (onerilen)

  • CPU: 2 vCPU (minimum)
  • RAM: 2 GB (minimum), 4 GB onerilen
  • Disk: 80 GB SSD minimum (pruned mode), full node icin 1TB+
  • IP: Sabit public IP
  • Domain: Ornegin pay.rabisu.com gibi bir subdomain
  • Portlar: 80 (HTTP), 443 (HTTPS), 9735 (Lightning Network), 22 (SSH)
  • WHMCS: v8.9+ (plugin v8.13 ile test edilmis)
  • PHP: 8.1+ ile birlikte curl, gd, intl, json, gmp (veya bcmath), mbstring uzantilari

Adim 1: VPS Hazirlik

Yapilacaklar:

  • Bir VPS temin et (Rabisu VPS veya kendi altyapınızdan)
  • VPS hostname ayarla: sudo hostnamectl set-hostname pay.rabisu.com
  • /etc/hosts dosyasina ekle: 127.0.0.1 pay.rabisu.com (hostname'in yerel cozumlemesi icin)
  • DNS'te pay.rabisu.com A kaydini VPS IP'sine yonlendir. ONEMLI: Cloudflare kullaniliyorsa turuncu bulut (proxy) KAPALI olmali, gri bulut (DNS only) secilmeli. Proxy acik olursa Let's Encrypt SSL, WebSocket ve Lightning baglantilari sorun yasayabilir.
  • Sunucuya SSH erisimi sagla (root veya sudo yetkili kullanici)

Adim 2: BTCPay Server Kurulumu (Docker)

BTCPay'in resmi kurulum scripti Docker Compose tabanli. Tek komutla kuruluyor:

# Gerekli paketler (root olarak calistir)
apt update && apt install -y git

# BTCPay reposunu klonla
cd ~
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker

# ONCE ortam degiskenlerini ayarla, SONRA scripti calistir (ayni shell'de olmali)
export BTCPAY_HOST="pay.rabisu.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_LIGHTNING="clightning"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s"

# Kurulumu baslat (nokta ile baslamali, source etmek icin)
. ./btcpay-setup.sh -i

Onemli parametreler:

  • opt-save-storage-s - Bitcoin pruned mode, ~3 aylik blok verisi saklar (Lightning icin yeterli). Minimum 80 GB disk gerekir.
  • SSL sertifikasi Let's Encrypt ile otomatik alinir
  • Script otomatik olarak Docker ve Docker Compose'u kurar, reboot sonrasi otomatik baslama ayarlar

Ilk senkronizasyon: Bitcoin blockchain senkronizasyonu pruned modda bile 72 saate yakin surebilir (resmi dokumantasyon 12-48 saat der, ancak pratikte 2-3 gun surdugunu gozlemledik). Bu surede sistem calismaz, beklenmeli. Senkronizasyon ilerlemesini BTCPay Dashboard'dan veya docker logs btcpaygen_bitcoind -f --tail 100 komutu ile takip edebilirsiniz.


Adim 3: BTCPay Server Yapilandirma

Kurulum tamamlaninca https://pay.rabisu.com adresinden erisim saglanir:

  1. Admin hesabi olustur - Ilk giren kullanici admin olur, hemen kayit ol
  2. 2FA aktif et - Login olduktan sonra sol menude Account sekmesinden aktif et
  3. Store olustur - "Rabisu" adinda bir store olustur
  4. Preferred Price Source - Kraken sec (guvenilir, cok para birimi destekli)
  5. Cuzdan olustur (On-chain):
  • Set up a wallet > Create a new wallet > Hot Wallet sec
  • Address type: Segwit (Recommended) - bc1q... adresleri, dusuk ucret, Lightning uyumlu
  • PayJoin: Kapali birak (tick'i kaldir) - gereksiz karmasiklik, musteri uyumluluk sorunu yaratabilir
  • Advanced ayarlar:
    • Passphrase (BIP39): Bos birak - unutursan cuzdana erisimi tamamen kaybedersin
    • Import keys to RPC: Tikle (opsiyonel, CLI'dan bakiye sorgulamak icin)
  • Seed phrase: Olusturulan 24 kelimeyi kagida yaz ve guvenli bir yerde sakla. Dijital ortamda tutma, ekran goruntusu alma. Bu kelimeler cuzdanin tek kurtarma yontemi.
  1. Lightning Node baglantisi:
  • c-lightning kurulumla otomatik gelmis olacak
  • Use internal node sec ve Save'e bas
  • Lightning Settings ayarlari:
    • Display amounts in Satoshis: Kapali (musteri BTC cinsinden gorsun)
    • Add hop hints for private channels: Kapali
    • Unify on-chain and lightning URL/QR code: Tikle (aktif et) - Tek QR kod hem on-chain hem Lightning destekler, musteri secim yapmak zorunda kalmaz
    • Description template: Varsayilan birak (Paid to {StoreName} (Order ID: {OrderId}))
    • LNURL: Acik kalsin (daha fazla cuzdan uyumlulugu)
    • LNURL Classic Mode: Acik kalsin
    • Allow payee to pass a comment: Acik kalsin
  • Ride The Lightning (RTL): Kurulumla otomatik gelen Lightning yonetim paneli. Lightning kanallarini acma/kapama, bakiye izleme icin kullanilir. Silme, ileride ise yarayacak.
  • NOT: Sol menude Lightning yanindaki kirmizi nokta, blockchain senkronizasyonu tamamlanmadigini gosterir. Senkronizasyon bitince otomatik olarak yesile donecek.
  1. Checkout Experience ayarlari (Settings > Checkout Appearance):
  • Default payment method: BTC-CHAIN (Unify aktif oldugu icin ikisi birlikte gorunecek)
  • Enable payment methods only when amount is...: BTC-LN ve BTC-CHAIN satirlarini bos birak (minimum tutar siniri olmasin)
  • Timer before expiration: 5 minutes (varsayilan)
  • Celebrate payment with confetti: Acik (guzel dokunus)
  • Enable sounds on checkout page: Ac (odeme geldiginde ses calar)
  • Show the store header: Acik
  • Show "Pay in wallet" button: Acik
  • Unify on-chain and lightning URL/QR code: Acik (zaten Lightning ayarlarindan aktif ettik)
  • Display Lightning amounts in Satoshis: Kapali
  • Auto-detect language on checkout: Ac (Rabisu cok dilli, musterinin tarayici diline gore checkout otomatik dil secer)
  • Default language: English
  • Support URL: https://www.rabisu.com/en/contact (checkout sayfasinda "Contact Us" butonu gorunur)
  • Only enable payment method after user chooses: Kapali
  • Redirect invoice to redirect url after paid: Kapali (WHMCS kendi yonlendirmesini yapar)
  • Receipt ayarlari: Hepsi acik kalsin (public receipt, payment list, QR code)

Adim 4: WHMCS Modulu Kurulumu

BTCPay'in resmi WHMCS modulu: btcpayserver/whmcs-plugin

Gereksinimler:

  • WHMCS v8.9+ (plugin v8.13 ile test edilmis)
  • PHP 8.1+
  • PHP uzantilari: curl, gd, intl, json, gmp (veya bcmath), mbstring
  • Gecerli SSL sertifikasi (WHMCS sunucusunda)

Kurulum adimlari:

  1. Modulu indir ve extract et:
  • GitHub Releases sayfasindan son surumu indir: https://github.com/btcpayserver/whmcs-plugin/releases
  • ZIP dosyasini extract et, icinden modules/gateways/btcpay/ dizini cikacak
  • Bu dosyalari WHMCS root dizinine kopyala veya sadece btcpay dizinini modules/gateways/ altina tasi
  • Kontrol: PATH_TO_WHMCS/modules/gateways/btcpay/ dizininde dosyalar olmali
  1. BTCPay'de Legacy API Key olustur:
  • BTCPay Server'a giris yap
  • Ilgili store'u sec
  • Sol menuden Settings > Access Tokens sekmesine git
  • "Legacy API Keys" basliginin altinda Generate butonuna tikla
  • Olusan API Key ID stringini kopyala (ornek: 43rp4rpa24d6Bz4BR44j8zL44PrU4npVv4DtJA4Kb8)
  1. WHMCS'de aktif et ve yapilandir:
  • WHMCS Admin > Settings > Apps & Integrations
  • Sag ustten "BTCPay" ara, "BTCPay Server (legacy API)" sec
  • Activate butonuna tikla
  • Ayarlar:
    • Show on Order Form: Isaretli olmali
    • Display Name: "Bitcoin / Lightning Network" (veya tercih edilen isim)
    • Legacy API Key: Adim 2'de kopyalanan key'i yapistir
    • BTCPay Server URL: https://pay.rabisu.com
    • Transaction Speed: "Medium" (1 blok onay, ~10 dk - onerilen)
      • High: 0-conf (aninda ama guvensiz, kullanma)
      • Medium: 1 blok (~10 dk, onerilen)
      • Low: 6 blok (~1 saat)
  • Save Changes tikla

Not: Webhook kurulumu gerekmez - plugin bunu otomatik yonetir.


Adim 5: Test

ONEMLI: Bitcoin blockchain senkronizasyonu tamamlanmadan odeme alinamaz. Senkronizasyon pruned modda 72 saate yakin surebilir (2-3 gun). BTCPay panelindeki Dashboard'dan ilerlemeyi takip edebilirsiniz. Senkronizasyon surerken WHMCS'de odeme yontemini kapali tutun (Siparis Formunda Goster tikini kaldirin), aksi halde musteriler odeme yapmaya calisir ama islem basarisiz olur. Senkronizasyon tamamlaninca yontemi tekrar aktif edin.

  1. Test siparisi ver - WHMCS'den bir test siparisi olustur
  2. Odeme sayfasini kontrol et - BTCPay checkout ekraninin acildigini dogrula
  3. Lightning QR - Lightning invoice'in dogru gorundugunu kontrol et
  4. Kucuk bir gercek odeme - Mainnet'te kucuk bir tutar ile gercek test yap
  5. Webhook dogrulamasi - Odeme sonrasi WHMCS faturasinin otomatik "Paid" oldugunu kontrol et
  6. Servis aktivasyonu - WHMCS'in servisi otomatik aktif ettigini dogrula
  7. Altcoin odemesi testi - Exolix kuruluysa, Altcoins butonundan bir altcoin secip test et ($10 minimum)

Opsiyonel: Exolix Plugin ile Altcoin Destegi

BTCPay Server varsayilan olarak sadece Bitcoin (on-chain + Lightning) destekler. Musterilerin USDT, ETH, SOL gibi altcoinlerle de odeme yapabilmesi icin Exolix plugin'i kurulabilir.

Exolix Nedir?

Exolix bir kripto swap servisidir. Musteri altcoin ile odeme yapar, Exolix otomatik olarak BTC'ye cevirir ve BTCPay cuzdanina yatirir. Satici (siz) her zaman BTC alir.

Ucretlendirme

Exolix dogrudan komisyon almaz. Gelirini swap islemlerindeki kur farki (spread) uzerinden kazanir. Bu spread coin'e ve ag yogunluguna gore degisir, genellikle %1-2 arasidir. Bu maliyet musteriye yansir, saticiya ek ucret yoktur.

Minimum tutar: Exolix swap icin minimum ~$10 gerektirir. Bu tutarin altindaki odemeler icin musteriler Bitcoin (on-chain veya Lightning) kullanabilir.

Kurulum

  1. BTCPay Admin > Server Settings > Plugins
  2. "Exolix" ara, Install tikla
  3. BTCPay Server'i yeniden baslat (btcpay-restart.sh)
  4. Store ayarlarinda Exolix sayfasina git
  5. Enabled tikle
  6. Kabul etmek istedigin coinleri sec (Ctrl+tikla ile coklu secim):
  • Altcoinler: Ethereum, Litecoin, Solana, Binance Coin, Tron, Polygon
  • Stablecoins USD: USDT Tether (Tron), USDT Tether (Binance), USDT Tether (Ethereum), USDC Circle (Solana), USDC Circle (Ethereum)
  • Stablecoins EUR: EURI Eurite (Ethereum), EURI Eurite (Binance)
  1. Save tikla

API key gerekmez, plugin hazir calisir.

Checkout Akisi

Musteri checkout sayfasinda once Bitcoin odeme yontemini secmeli, ardindan Altcoins butonuna tiklamalidir. Dropdown'dan coin secip odeme bilgilerini alir. Exolix swap tamamlaninca BTCPay faturasi otomatik kapanir.

Swap my BTC Balance (Opsiyonel)

Exolix plugin ayni zamanda biriken BTC bakiyenizi altcoinlere (USDT, EUR stablecoin vb.) cevirmenize de olanak tanir. Exolix plugin sayfasindan bakiyenizin yuzdesini, hedef coini ve hedef adresi girip swap baslabilirsiniz.

Onemli Notlar

  • Fatura suresi (invoice expiration) en az 15 dakika olmali. Altcoin islemleri onay suresi gerektirir, 5 dakika gibi kisa sureler fatura zaman asimina neden olabilir.
  • Exolix ucuncu taraf bir servistir, BTCPay'in kendisi degildir. Exolix'in calismadiginda Bitcoin ve Lightning ile odeme almaya devam edebilirsiniz.