On-Premise Kurulum Rehberi
Captivo'yu kendi sunucunuza kurmak için adım adım rehber. Docker kurulu bir Linux sunucu ile tüm süreç 30 dakikadan kısa sürer.
1. Önkoşullar
Sunucunuzda aşağıdakilerin kurulu olduğundan emin olun:
Docker hızlı kurulum (Ubuntu/Debian):
curl -fsSL https://get.docker.com | sh
Açık Portlar
| Port | Protokol | Kullanım |
|---|---|---|
| 3000 | TCP | Yönetim paneli (TLS yokken HTTP) |
| 80 / 443 | TCP | TLS etkinleştirildiğinde Caddy |
| 1812 | UDP | RADIUS kimlik doğrulama |
| 1813 | UDP | RADIUS accounting |
2. Kurulum (Tek Komut)
2.1 Kurulum Dosyalarını Edinin
Kurulum paketi (docker/ klasörü) size sağlanır. Hepsini aynı klasöre koyun:
docker/ ├── docker-compose.onprem.yml ├── onprem/ │ ├── install.sh │ ├── Caddyfile │ ├── backup.sh │ └── .env.onprem.example
2.2 Kurulum Betiğini Çalıştırın
chmod +x docker/onprem/install.sh ./docker/onprem/install.sh
Betik şunları yapar:
- docker ve openssl bağımlılıklarını kontrol eder.
- docker/.env.onprem yoksa sunucu adresini sorar ve tüm sırları (POSTGRES_PASSWORD, AUTH_SECRET, DATA_ENCRYPTION_KEY vb.) openssl rand ile otomatik üretir.
- docker compose up -d komutuyla tüm servisleri başlatır.
- Tamamlandığında panel adresini yazdırır.
Örnek çıktı:
✓ Sırlar üretildi (.env.onprem)
✓ Servisler başlatılıyor...
✔ Container captivo-postgres Started
✔ Container captivo-migrator Exited
✔ Container captivo-radius Started
✔ Container captivo-web Started
✓ Kurulum tamamlandı!
Panel: http://localhost:3000
3. İlk Açılış — Kurulum Sihirbazı
Panel adresini (http://<sunucu-ip>:3000) ilk açtığınızda otomatik olarak /setup sihirbazına yönlendirilirsiniz. Sihirbaz 9 adımdan oluşur:
Yönetici Hesabı
Süper yönetici e-posta ve parola tanımı.
Kurum
Şirket/kurum adı, logo, dil tercihi.
Portal Görünümü
Captive portal tasarımı (arka plan, renkler, başlık).
RADIUS
RADIUS shared secret ve NAS yapılandırması.
Giriş Yöntemleri
Sosyal giriş, SMS OTP, misafir formu seçenekleri.
SMS
SMS sağlayıcı seçimi (Netgsm, Twilio vb.) — isteğe bağlı.
SMTP
Giden e-posta sunucusu (bildirimler için) — isteğe bağlı.
Lisans
.lic dosyası yükleme veya 15 günlük deneme başlatma.
Tamamlandı
Kurulum özeti ve panele giriş.
4. TLS / HTTPS (Üretim için Önerilir)
Varsayılan http://localhost:3000 yalnızca yerel test içindir. Üretimde HTTPS zorunludur.
4.1 Alan Adını Yapılandırın
docker/.env.onprem dosyasını düzenleyin:
NEXTAUTH_URL=https://wifi.firma.com SITE_DOMAIN=wifi.firma.com
4.2 Caddy'yi TLS Profiliyle Başlatın
docker compose -f docker/docker-compose.onprem.yml \ --profile tls \ --env-file docker/.env.onprem \ up -d
5. RADIUS — NAS Cihazınızı Bağlama
FreeRADIUS konteyneri otomatik olarak başlar ve UDP 1812/1813 portlarını dinler. NAS veya gateway cihazınızda şu ayarları yapın:
| Ayar | Değer |
|---|---|
| RADIUS sunucu IP | Bu sunucunun LAN IP adresi |
| Kimlik doğrulama portu | 1812 UDP |
| Accounting portu | 1813 UDP |
| RADIUS yöntemi | PAP |
| Shared secret | Sihirbaz Adım 4'te üretilen veya Ayarlar → RADIUS'ta görüntülenen değer |
Desteklenen NAS/gateway modelleri: pfSense, OPNsense, MikroTik, FortiGate, Cisco Meraki ve PAP/CHAP destekleyen diğer cihazlar.
6. Lisans
Kurulumdan sonra 15 günlük ücretsiz deneme otomatik başlar; deneme süresinde tüm özellikler aktiftir.
Lisans dosyanızı (.lic) satıcıdan edindikten sonra:
- Web panelinde Ayarlar → Lisans sayfasına gidin.
- .lic dosyasını yükleyin.
- Lisans bilgileri (geçerlilik tarihi, kota) ekranda görüntülenir.
Deneme veya lisans süresi dolduğunda sistem kademeli olarak kapanır: önce uyarı, ardından salt okunur mod (yeni misafir kaydı durur, mevcut veriler görünür), son olarak panel erişimi kısıtlanır.
7. Yedekleme
Veritabanı Yedeği
docker/onprem/backup.sh betiği PostgreSQL'den pg_dump alır, sıkıştırır ve saklar (7 gün rotasyon).
Manuel çalıştırma:
POSTGRES_USER=captivo BACKUP_DIR=/opt/captivo-backups \ ./docker/onprem/backup.sh
Cron ile otomatikleştirme (her gün 03:15):
15 3 * * * POSTGRES_USER=captivo BACKUP_DIR=/opt/captivo-backups \ /opt/captivo/docker/onprem/backup.sh >> /var/log/captivo-backup.log 2>&1
8. Çevrimdışı (Air-Gapped) Kurulum
İnternete bağlı olmayan ağlar için Docker image'ları önceden paketlenebilir.
İnternetli makinede paket oluşturun
# Varsayılan: latest sürümü paketler ./scripts/onprem/build-offline-bundle.sh # Belirli sürüm için: ./scripts/onprem/build-offline-bundle.sh 1.0.0
Oluşan dosya: captivo-onprem-1.0.0.tar (web + RADIUS + postgres + caddy image'larını içerir)
Hedef makinede yükleyin
# Image'ları Docker'a yükle docker load -i captivo-onprem-1.0.0.tar # Kurulum betiğini çalıştır (internet gerekmez) ./docker/onprem/install.sh
9. Sorun Giderme
Panel açılmıyor
- •docker compose … ps — tüm konteynerler Up durumunda mı?
- •migrator servisi başarıyla tamamlandı mı (Exited (0))?
- •Güvenlik duvarınızda 3000. porta erişim açık mı?
- •Loglar: docker compose … logs web
RADIUS bağlantı hatası (misafir giriş yapamıyor)
- •NAS'ta RADIUS sunucu IP adresi doğru mu? (Bu sunucunun LAN IP'si)
- •UDP 1812/1813 portlarına NAS'tan erişim var mı?
- •Shared secret NAS'ta ve Captivo panelinde birebir aynı mı?
- •captivo-radius konteyneri çalışıyor mu? (docker logs captivo-radius)
SMS gelmiyor
- •Sihirbaz Adım 6'da SMS sağlayıcı bilgileri girildi mi?
- •NAS walled garden listesinde bu sunucunun IP'si tanımlı mı?
E-posta bildirimleri gitmiyor
- •Sihirbaz Adım 7'de SMTP ayarları yapılandırıldı mı?
- •SMTP port ve şifre ayarlarını konteyner loglarından doğrulayın.
Genel log inceleme
# Tüm servis logları (son 50 satır) docker compose -f docker/docker-compose.onprem.yml \ --env-file docker/.env.onprem \ logs --tail=50 # FreeRADIUS logları docker logs captivo-radius
Sorularınız için destek ekibimizle iletişime geçin.