Bedrud Belgeler

Bu rehber, Bedrud’u bir üretim sunucusuna nasıl dağıtacağınızı açıklar.

Dağıtım Seçenekleri

YöntemEn İyi Kullanım Senaryosu
Paket Yöneticisi (apt/AUR)Desteklenen Linux dağıtımlarında yönetimli kurulum
Otomatik CLIHızlı uzaktan kurulum
Manuel KurulumYapılandırma üzerinde tam kontrol
DockerKonteynerleştirilmiş ortamlar
Aygıt ModuTek ikili dosyayla tümleşik kurulum

Paket Yöneticisi

Bedrud’u yerel paket yöneticisini kullanarak Debian/Ubuntu veya Arch Linux üzerine kurun. Bu, apt upgrade veya AUR aracılığıyla otomatik güncelleme istediğiniz kalıcı sunucu dağıtımları için önerilen yöntemdir.

Apt GPG anahtarı ve depo ekleme dahil tam talimatlar için Paket Kurulumu rehberine bakın.

# Ubuntu / Debian
sudo apt install bedrud
 
# Arch Linux (AUR)
yay -S bedrud-bin

Kurulumdan sonra TLS, systemd servisleri ve veritabanını yapılandırmak için etkileşimli yükleyiciyi çalıştırın:

sudo bedrud install

Otomatik CLI Dağıtımı

En hızlı dağıtım yöntemi. Yerel makinenizden çalıştırın:

Ön koşullar: Python 3.10+, uv ve hedef sunucuya SSH erişimi.

cd tools/cli
uv run python bedrud.py --auto-config \
  --ip <server-ip> \
  --user root \
  --auth-key ~/.ssh/id_rsa \
  --domain meet.example.com \
  --acme-email admin@example.com

Bu işlem şunları yapar:

  1. Arka uç ikili dosyasını yerel olarak derler
  2. rsync ile sıkıştırıp yükler
  3. Çakışan web sunucularını temizler
  4. Güvenlik duvarını yapılandırır
  5. Sunucuda servisleri kurar ve başlatır

CLI Seçenekleri

BayrakAçıklama
--ipSunucu IP adresi
--userSSH kullanıcısı (varsayılan: root)
--auth-keySSH özel anahtarı yolu
--domainLet’s Encrypt için alan adı
--acme-emailLet’s Encrypt için e-posta
--uninstallBedrud’u sunucudan kaldır

Manuel Kurulum

1. İkili Dosyayı Derleyin

make build-dist

Bu, dist/bedrud_linux_amd64.tar.xz dosyasını oluşturur.

2. Sunucuya Yükleyin

scp dist/bedrud_linux_amd64.tar.xz root@server:/tmp/
ssh root@server "cd /tmp && tar xf bedrud_linux_amd64.tar.xz"

3. Kurun

ssh root@server
sudo /tmp/bedrud install --tls --domain meet.example.com --email admin@example.com

Tüm kurulum senaryoları için Kurulum Rehberi sayfasına bakın.

4. Yönetici Kullanıcısı Oluşturun

Kullanıcıyı Yönetici Yapma

Sunucu URL'nizdeki web arayüzü üzerinden kaydolun, ardından kullanıcıyı yönetici yapın:

			
sudo ./bedrud user promote --email admin@example.com
		

Docker Dağıtımı

Docker ile derleyin ve çalıştırın:

docker build -t bedrud .
docker run -d --name bedrud -p 8090:8090 -p 7880:7880 -v bedrud-data:/var/lib/bedrud bedrud

Önceden oluşturulmuş bir imaj da mevcuttur:

docker pull ghcr.io/bedrud-ir/bedrud:latest

Birimler, yapılandırma ve Docker Compose dahil tüm ayrıntılar için Docker Rehberi sayfasına bakın.


Üretim Mimarisi

flowchart TB
    NET[Internet] --> TRAEFIK["Traefik (443)<br/>TLS termination, reverse proxy"]
    TRAEFIK --> BEDRUD["Bedrud (8090)<br/>API + Web UI"]
    TRAEFIK --> LIVEKIT["LiveKit (7880)<br/>WebRTC media"]
    BEDRUD --> DB["SQLite<br/>(or PostgreSQL)"]

WebRTC bağlantısı için güvenlik duvarında şu portları da açın:

PortProtokolAmaç
3478UDPTURN/UDP + STUN
5349TCPTURN/TLS (veya 443 kullanın)
7881TCPICE/TCP yedek
50000-60000UDPRTC medya akışları

Tam bağlantı yığını için WebRTC Bağlantısı sayfasına bakın.

Systemd Hizmetleri

Kurulum iki systemd hizmeti oluşturur:

Hizmet Komut Amaç
bedrud.service bedrud --run --config /etc/bedrud/config.yaml API + web
livekit.service bedrud --livekit --config /etc/bedrud/livekit.yaml Medya sunucusu

Servisleri Yönetme

# Durumu kontrol edin
systemctl status bedrud livekit
 
# Yeniden başlatın
systemctl restart bedrud
 
# Günlükleri görüntüleyin
journalctl -u bedrud -f
tail -f /var/log/bedrud/bedrud.log

Dosya Konumları (Üretim)

Yolİçerik
/usr/local/bin/bedrudİkili dosya
/etc/bedrud/config.yamlSunucu yapılandırması
/etc/bedrud/livekit.yamlLiveKit yapılandırması
/var/lib/bedrud/bedrud.dbSQLite veritabanı
/var/log/bedrud/bedrud.logUygulama günlükleri

CI/CD

Sürüm Boru Hattı

release.yml iş akışı sürüm etiketlerinde (v*) tetiklenir ve şu çıktıları üretir:

ÇıktıAçıklama
bedrud_linux_amd64.tar.xz / bedrud_linux_arm64.tar.xzSunucu ikilileri (Linux x86_64 / ARM64)
bedrud_amd64.deb / bedrud_arm64.debDebian/Ubuntu paketleri (sunucu)
Docker imajı (ghcr.io/bedrud-ir/bedrud)GHCR’a gönderilen çok mimarili konteyner imajı
bedrud-desktop-linux-x86_64.AppImageMasaüstü - evrensel Linux AppImage
bedrud-desktop-linux-x86_64.debMasaüstü - Debian/Ubuntu paketi
bedrud-desktop-linux-x86_64.tar.xzMasaüstü - Linux taşınabilir arşivi
bedrud-desktop-windows-x86_64-setup.exe / -arm64-setup.exeMasaüstü - Windows NSIS yükleyicisi
bedrud-desktop-windows-x86_64.zip / -arm64.zipMasaüstü - Windows taşınabilir
bedrud-desktop-macos-x86_64.tar.gz / -arm64.tar.gzMasaüstü - macOS taşınabilir (imzasız)
Android APK (debug + release, mimari başına)Android istemci derlemeleri
iOS IPA (isteğe bağlı, imzalama gerektirir)iOS istemci arşivi

Tüm çıktılar GitHub sürümüne eklenir.

Gecelik Derlemeler

dev-nightly.yml iş akışı planlı olarak geliştirme derlemeleri üretir.

CI Kontrolleri

main dalına her push ve her pull request şu kontrolleri çalıştırır:

KontrolPlatform
go vet + derleme + testlerubuntu-latest (Go 1.24)
Tip kontrolü + derlemeubuntu-latest (Bun)
Lint + birim testleriubuntu-latest (JDK 17)
Derleme + testmacos-15 (Xcode)