Docker ve Railway ile çalıştırma
bipanel, Docker ve Railway'de tek bir konteyner olarak çalışır: Apache, PHP-FPM, MariaDB ve panel aynı imajdadır, kalıcı veriler /data volume'unda durur. Web siteleri, veritabanları ve uygulamalar için uygundur; e-posta, DNS sunucusu, FTP ve sistem düzeyindeki araçlar yalnızca sunucu kurulumunda vardır.
Bu sayfada
#Konteyner modu nedir?
Konteyner kurulumunda bipanel tek bir Debian tabanlı imajdır. İçinde Apache 2.4 (mpm_event), PHP 8.2, 8.3 ve 8.4 için PHP-FPM, gömülü MariaDB, Node.js 22, Python 3, phpMyAdmin, git, rclone ve certbot bulunur. Panel süreci Apache'yi, PHP-FPM'i ve MariaDB'yi kendisi başlatır. Apache PORT değişkenindeki portu (varsayılan 8080) dinler; panele ve phpMyAdmin'e bu port üzerinden erişilir.
Sunucu kurulumundan farklı olarak ayrı yönetici ve kullanıcı portları yoktur. Aynı adreste:
- Sunucu Yönetimi:
https://<panel adresi>/admin(ilk kullanıcıadmin) - Kullanıcı paneli:
https://<panel adresi>/panel
Sistem kullanıcıları, Apache sanal konakları ve PHP-FPM havuzları konteyner içinde tutulmaz; her açılışta /data içindeki panel veritabanından yeniden üretilir. Bu yüzden volume bağlı olduğu sürece konteyneri silip yeniden oluşturmak veya yeniden dağıtmak güvenlidir.
Lisans kuralları aynıdır: lisans anahtarı olmadan Topluluk sürümü 3 barındırma hesabına kadar çalışır, Pro özellikler Pro lisans ister. Ayrıntılar için Lisans ve Fiyatlar.
#Docker Compose ve Caddy ile kurulum
Kendi VPS'inizde Docker Engine 24 veya üstü ile Docker Compose v2 gerekir. 2 GB bellek yeterlidir, 4 GB önerilir. Panel için bir alan adı ve sunucuya yönlendirilmiş bir A kaydı olmalı, 80 ve 443 portları açık olmalıdır.
Sürüm paketi Dockerfile, docker-compose.yml ve deploy/caddy/Caddyfile dosyalarını içerir. Paketi ve güncel komutları İndir sayfasından alın. Paketi açtıktan sonra dizinde bir .env dosyası oluşturup BIPANEL_PANEL_HOST, BIPANEL_ADMIN_PASSWORD ve ACME_EMAIL değerlerini yazın, ardından:
docker compose up -d --build
docker compose logs -f bipanel
İlk açılışta MariaDB veri dizini hazırlandığı için panelin gelmesi birkaç dakika sürebilir. İmajın sağlık denetimi /api/health adresini yoklar ve başlangıç için 180 saniye bekler.
#Caddy ne yapar?
Compose dosyası iki servis tanımlar: dışarıya port açmayan bipanel ve önündeki caddy (80, 443 ve 443/UDP). Caddy her alan adı için ilk istekte otomatik Let's Encrypt sertifikası alır, ancak yalnızca bipanel'de kayıtlı alan adları için: sertifika istemeden önce panelin iç denetim adresine sorar. HTTP istekleri HTTPS'e yönlendirilir. Bu düzende BIPANEL_SSL_MODE=edge ve BIPANEL_TRUST_PROXY_HOPS=2 (Caddy ve Apache) ayarlıdır; böylece gerçek istemci IP'si kaba kuvvet korumasında doğru görünür.
Caddy yerine başka bir ters vekil kullanıyorsanız X-Forwarded-For ve X-Forwarded-Proto başlıklarını iletin, Host başlığını değiştirmeyin, WebSocket yükseltmesine izin verin (web terminali ve canlı günlükler için) ve BIPANEL_TRUST_PROXY_HOPS değerini vekil sayısının bir fazlası yapın.
#Railway ile kurulum
Railway'de bipanel tek bir servis olarak çalışır; TLS'i Railway'in kenar sunucuları sonlandırır.
- Yeni bir proje açın ve İndir sayfasında gösterilen Docker imajını ya da bipanel kaynak kodunu içeren deponuzu seçin. Depodaki
railway.jsonsağlık denetimi olarak/api/healthadresini ve 300 saniyelik zaman aşımını tanımlar. - Servise
/datayoluna bağlı bir volume ekleyin. Bu zorunludur; volume yoksa her dağıtımda tüm veriler silinir. BIPANEL_ADMIN_PASSWORDdeğişkenini verin. İstersenizRAILWAY_API_TOKENekleyin.- Servise bir genel adres üretin ve
/adminyoluyla Sunucu Yönetimi'ne girin.
Railway yalnızca servise eklenmiş alan adlarına trafik yönlendirir. RAILWAY_API_TOKEN tanımlıysa panelde eklediğiniz alan adlarını bipanel Railway servisine kendisi ekler ve DNS'te oluşturmanız gereken kayıtları gösterir; tanımlı değilse alan adlarını Railway panelinden elle eklersiniz. Servise eklenebilecek alan adı sayısını Railway planınız belirler. Railway yalnızca HTTP(S) trafiği aldığı için e-posta, DNS ve FTP gibi servisler burada çalışamaz.
#Ortam değişkenleri
| Değişken | Varsayılan | Açıklama |
|---|---|---|
BIPANEL_ADMIN_PASSWORD | rastgele | İlk yönetici parolası. Verilmezse rastgele üretilir, günlüğe bir kez yazılır ve /data/initial-admin.txt dosyasına kaydedilir. Yalnızca ilk açılışta kullanılır. |
BIPANEL_ADMIN_USER | admin | İlk yöneticinin kullanıcı adı. |
BIPANEL_ADMIN_EMAIL | yok | İlk yöneticinin e-posta adresi. |
BIPANEL_PANEL_HOST | Railway'de RAILWAY_PUBLIC_DOMAIN | Panelin alan adı. Konteynerde sunucu adı panelden değiştirilemez; bu değişkenle belirlenir. |
BIPANEL_SSL_MODE | Railway'de edge, Docker'da acme | edge: TLS'i dış katman sonlandırır. acme: panel Let's Encrypt sertifikalarını certbot ile kendisi alır. off: sertifika yönetimi yok. |
BIPANEL_TRUST_PROXY_HOPS | Railway'de 2, Docker'da 1 | Güvenilen vekil sayısı (Apache dahil). |
PORT | 8080 | Apache'nin dinlediği port; Railway bunu kendisi verir. |
BIPANEL_MYSQL_URL veya MYSQL_URL | yok | Gömülü MariaDB yerine harici bir MySQL/MariaDB sunucusu (ör. mysql://root:parola@mysql:3306). |
BIPANEL_MYSQL_BUFFER_POOL | 128M | Gömülü MariaDB'nin InnoDB tampon havuzu; belleği az planlarda düşürün. |
BIPANEL_MAX_UPLOAD_MB | 1024 | Dosya yöneticisi yükleme sınırı (MB). |
RAILWAY_API_TOKEN | yok | Alan adlarını Railway servisine otomatik eklemek ve paneli panelden güncellemek için. |
BIPANEL_SECRET | /data/secret.key | Panelin gizli anahtarı (en az 32 karakter). Verilmezse ilk açılışta üretilip volume'a yazılır. |
#Kalıcı veriler: /data
Konteynerin kalıcı olan tek dizini /data volume'udur:
| Yol | İçerik |
|---|---|
/data/bipanel.db | Panel veritabanı: hesaplar, alan adları, ayarlar |
/data/home/<hesap> | Hesap dosyaları |
/data/mysql | Gömülü MariaDB veri dizini |
/data/backups, /data/logs, /data/ssl, /data/jobs | Yedekler, günlükler, sertifikalar, iş kayıtları |
Kurulumun kimliği ve lisans ayarları da bu volume'da tutulur. Volume kaybolursa kurulum sıfırdan başlar ve lisans anahtarını yeniden girmeniz gerekir. Hesap yedeklerini rclone ile uzak bir hedefe göndermeniz önerilir (bkz. Yedekleme ve taşıma).
#Konteyner modunda farklı olanlar
Aşağıdakiler konteynerde kullanılamaz; panel bu ekranları gerekçesiyle birlikte pasif gösterir:
| Özellik | Konteynerde durum |
|---|---|
| E-posta sunucusu ve webmail | Yok; e-posta için sunucu kurulumu gerekir |
| Yetkili DNS sunucusu | Yok; DNS bölge düzenleyici kayıt önerisi verir, Cloudflare entegrasyonu kullanılabilir |
| FTP, SSH ve SFTP | Yok; Dosya Yöneticisi, web terminali ve Git ile dağıtım kullanılır |
| Güvenlik duvarı ve nftables DDoS koruması | Yok; ağı platform yönetir. Panel içi kaba kuvvet koruması çalışır |
| Disk kotaları | Uygulanmaz; disk kullanımı yalnızca izlenir |
| Hesap başına CPU ve bellek sınırı, hesap yalıtımı | Yok (systemd yok); uygulamalara yalnızca süreç sayısı sınırı uygulanır |
| Disk yöneticisi | Yok; diskleri ve volume'ları platform yönetir |
| Otomatik işletim sistemi güvenlik güncellemeleri | Yok; paketler imajla gelir |
| Sunucuyu yeniden başlatma, root parolası, DNS çözücüleri | Yok; platform panelinden yönetilir |
| Uzak masaüstü (Pro) ve Podman konteynerleri | Yok |
Çalışanlar: hesaplar ve paketler, alan adları, PHP 8.2–8.4, MySQL/MariaDB ve phpMyAdmin, Node.js ve Python uygulamaları, Git ile dağıtım, uygulama yükleyici, cron (panelin kendi zamanlayıcısıyla), yedekleme, dosya yöneticisi, web terminali ve API. Kurulum bildirimi konteynerde de her zaman açıktır; gönderilen bilgiler Sunucu Yönetimi → Kurulum bildirimi ekranında görünür.
#Güncelleme
Konteyner kurulumu panelin kendisini sunucu kurulumu gibi yerinde güncellemez:
- Docker: yeni sürümün imajını çekin ya da yeni sürüm paketiyle yeniden derleyin ve konteyneri yeniden oluşturun. Veriler volume'da kalır.
- Railway:
RAILWAY_API_TOKENtanımlıysa Sunucu Yönetimi → Güncellemeler ekranından başlatılan güncelleme, servisin imajını yeni sürüme çevirip yeniden dağıtımı başlatır. Tanımlı değilse Railway panelinden yeniden dağıtın.
Sürüm kanalları için Güncellemeler sayfasına bakın.
#Yönetici parolasını sıfırlama
BIPANEL_ADMIN_PASSWORD değişkenini sonradan değiştirmek parolayı sıfırlamaz. Konteynerin içinde sıfırlama aracını çalıştırın (iki aşamalı doğrulamayı kapatmak için --disable-2fa ekleyin):
docker compose exec bipanel node /opt/bipanel/deploy/tools/reset-admin.mjs admin 'YeniParola123!'
Komut satırı aracı da imajdadır: docker compose exec bipanel bipanel account list (token /data/cli.token dosyasından okunur).
Bu sayfada eksik ya da hatalı bir bilgi mi var? Bize yazın.