Belgeler menüsüDocker ve Railway

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.

Son güncelleme:

Bu sayfada
  1. Konteyner modu nedir?
  2. Docker Compose ve Caddy ile kurulum
    1. Caddy ne yapar?
  3. Railway ile kurulum
  4. Ortam değişkenleri
  5. Kalıcı veriler: /data
  6. Konteyner modunda farklı olanlar
  7. Güncelleme
  8. Yönetici parolasını sıfırlama

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

  1. 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.json sağlık denetimi olarak /api/health adresini ve 300 saniyelik zaman aşımını tanımlar.
  2. Servise /data yoluna bağlı bir volume ekleyin. Bu zorunludur; volume yoksa her dağıtımda tüm veriler silinir.
  3. BIPANEL_ADMIN_PASSWORD değişkenini verin. İsterseniz RAILWAY_API_TOKEN ekleyin.
  4. Servise bir genel adres üretin ve /admin yoluyla 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şkenVarsayılanAçıklama
BIPANEL_ADMIN_PASSWORDrastgeleİ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_USERadminİlk yöneticinin kullanıcı adı.
BIPANEL_ADMIN_EMAILyokİlk yöneticinin e-posta adresi.
BIPANEL_PANEL_HOSTRailway'de RAILWAY_PUBLIC_DOMAINPanelin alan adı. Konteynerde sunucu adı panelden değiştirilemez; bu değişkenle belirlenir.
BIPANEL_SSL_MODERailway'de edge, Docker'da acmeedge: 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_HOPSRailway'de 2, Docker'da 1Güvenilen vekil sayısı (Apache dahil).
PORT8080Apache'nin dinlediği port; Railway bunu kendisi verir.
BIPANEL_MYSQL_URL veya MYSQL_URLyokGömülü MariaDB yerine harici bir MySQL/MariaDB sunucusu (ör. mysql://root:parola@mysql:3306).
BIPANEL_MYSQL_BUFFER_POOL128MGömülü MariaDB'nin InnoDB tampon havuzu; belleği az planlarda düşürün.
BIPANEL_MAX_UPLOAD_MB1024Dosya yöneticisi yükleme sınırı (MB).
RAILWAY_API_TOKENyokAlan adlarını Railway servisine otomatik eklemek ve paneli panelden güncellemek için.
BIPANEL_SECRET/data/secret.keyPanelin 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.dbPanel veritabanı: hesaplar, alan adları, ayarlar
/data/home/<hesap>Hesap dosyaları
/data/mysqlGömülü MariaDB veri dizini
/data/backups, /data/logs, /data/ssl, /data/jobsYedekler, 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:

ÖzellikKonteynerde durum
E-posta sunucusu ve webmailYok; e-posta için sunucu kurulumu gerekir
Yetkili DNS sunucusuYok; DNS bölge düzenleyici kayıt önerisi verir, Cloudflare entegrasyonu kullanılabilir
FTP, SSH ve SFTPYok; 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öneticisiYok; diskleri ve volume'ları platform yönetir
Otomatik işletim sistemi güvenlik güncellemeleriYok; paketler imajla gelir
Sunucuyu yeniden başlatma, root parolası, DNS çözücüleriYok; platform panelinden yönetilir
Uzak masaüstü (Pro) ve Podman konteynerleriYok

Ç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_TOKEN tanı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.