Bedrud Belgeler

bedrud komut satırı arayüzü için tam referans.

Özet

# Alt komut stili
bedrud <komut> [bayraklar]
 
# Bayrak stili
bedrud --livekit --config <yol>
bedrud --run --config <yol>

Komutlar

run / server

API, gömülü web önyüzü ve (yapılandırılmışsa) gömülü LiveKit ile Bedrud toplantı sunucusunu başlatır.

bedrud run    [--config <yol>]
bedrud server [--config <yol>]
BayrakVarsayılanAçıklama
--config$CONFIG_PATH ortam değişkeni → "config.yaml"Bedrud YAML yapılandırma dosyasının yolu

Davranış:

  • Yapılandırmayı belirtilen yoldan veya varsayılanlardan yükler
  • Dahili mod için yapılandırılmışsa gömülü LiveKit’i başlatır
  • SQLite/PostgreSQL veritabanını başlatır ve göçleri çalıştırır
  • Tüm API yollarıyla Fiber HTTP sunucusu oluşturur
  • Gömülü React önyüzünü sunar
  • ACME (Let’s Encrypt), kendi imzalı TLS, manuel TLS veya düz HTTP destekler
  • SIGTERM/SIGINT sinyalinde düzgün kapanma

Uygulama: server/internal/server/server.go


--livekit

Yalnızca gömülü LiveKit medya sunucusunu başlatır. İkili dosyayı Go embed’dan geçici bir dizine çıkarır.

bedrud --livekit --config <yol>
BayrakVarsayılanAçıklama
--config(gerekli)LiveKit YAML yapılandırma dosyasının yolu

Kullanan: bedrud install tarafından oluşturulan init livekit servisi

Uygulama: server/internal/livekit/server.go


--run

Aynı --config bayrak davranışıyla bedrud run için takma ad. init bedrud servisi tarafından kullanılır.

bedrud --run --config <yol>

install

Bedrud’u bir Debian/Linux sistemine kurar. init servisleri (systemd, OpenRC veya SysV init — otomatik algılanır), yapılandırma dosyaları, dizinler ve TLS sertifikaları oluşturur.

bedrud install [bayraklar]
BayrakVarsayılanAçıklama
--tlsfalseHTTPS’yi etkinleştir (--self-signed ile aynı)
--self-signedfalseKendi imzalı TLS sertifikası oluştur
--no-tlsfalseTLS’yi tamamen devre dışı bırak (düz HTTP). --tls ve --self-signed’i geçersiz kılar
--ipotomatik algılandıOtomatik algılanan sunucu IP adresini geçersiz kıl
--domain""Let’s Encrypt veya kendi imzalı sertifika için alan adı
--email""Let’s Encrypt kaydı için e-posta
--port"443" (TLS) / "8090" (HTTP)Dinleme bağlantı noktasını geçersiz kıl
--cert""Mevcut PEM sertifika dosyasının yolu
--key""Mevcut PEM özel anahtar dosyasının yolu
--lk-port"7880"LiveKit API/WebSocket bağlantı noktasını geçersiz kıl
--lk-tcp-port"7881"LiveKit RTC TCP bağlantı noktasını geçersiz kıl
--lk-udp-port"7882"LiveKit RTC UDP bağlantı noktasını geçersiz kıl
--freshfalseKurulumdan önce mevcut kurulumu kaldır
--behind-proxyfalseSunucu CDN/ters vekil arkasında (Cloudflare, nginx)
--external-livekit""Tamamen harici LiveKit sunucusunun URL’si (farklı makine)
--livekit-domain""Yerel LiveKit sunucusu için ayrı alan adı (CDN’yi atlar)

Yaptığı işler:

  1. --fresh ise önceki kurulumu durdurur ve kaldırır
  2. IP, alan adı, e-posta, TLS modu için sorar (etkileşimli olmayan ve bayraklar sağlanmamışsa)
  3. Dizinleri oluşturur: /etc/bedrud, /var/lib/bedrud, /var/lib/bedrud/certs, /var/log/bedrud
  4. İkili dosyayı /usr/local/bin/bedrud konumuna kopyalar
  5. /etc/bedrud/config.yaml konumunda Bedrud sunucu yapılandırması oluşturur
  6. /etc/bedrud/livekit.yaml konumunda LiveKit medya sunucusu yapılandırması oluşturur
  7. /etc/bedrud/cert.pem + /etc/bedrud/key.pem konumunda kendi imzalı sertifikalar oluşturur (TLS etkinse ve özel sertifikalar yoksa)
  8. LiveKit init servisi oluşturur (harici LiveKit kullanılmıyorsa)
  9. Bedrud init servisi oluşturur
  10. Algılanan init sistemi üzerinden servisleri etkinleştirir ve başlatır
  11. Erişim URL’lerini yazdırır

TLS seçenekleri:

  • --domain + --email → ACME (Let’s Encrypt)
  • --self-signed veya --tls → kendi imzalı sertifika
  • --cert + --key → özel sertifikalar
  • --no-tls → yalnızca düz HTTP

LiveKit topolojisi:

  • Varsayılan (gömülü): LiveKit yerel olarak çalışır, Bedrud üzerinden /livekit adresine vekil yapılır
  • --livekit-domain: LiveKit yerel olarak çalışır ama istemciler kendi alan adı üzerinden doğrudan bağlanır
  • --external-livekit: Yerel LiveKit yok; uzak sunucuya bağlanır

Uygulama: server/internal/install/linux.go

İlgili belgeler: Kurulum KılavuzuDağıtım KılavuzuArka Uç Dağıtım Mantığı


uninstall

Bedrud’u sistemden kaldırır.

bedrud uninstall

Kaldırdıkları:

  • tüm init sistemlerinde servisleri durdurur ve devre dışı bırakır: bedrud, livekit
  • systemd, OpenRC ve SysV init servis dosyalarını kaldırır
  • İkili dosyaları kaldırır: /usr/local/bin/bedrud, /tmp/bedrud, /tmp/bedrud-livekit-server
  • Dizinleri kaldırır: /etc/bedrud, /var/lib/bedrud, /var/log/bedrud
  • Sistem kullanıcısını siler: bedrud

Uygulama: server/internal/install/ (linux.go, init.go, sysv.go, openrc.go)

İlgili belgeler: Kurulum Kılavuzu - Kaldırma


user

Bedrud veritabanındaki kullanıcıları yönetir.

bedrud user [--config <yol>] <alt-komut> [bayraklar]
Genel BayrakVarsayılanAçıklama
--config/etc/bedrud/config.yamlBedrud yapılandırma dosyasının yolu (veritabanını bulmak için)

create

Yerel kimlik doğrulama ile yeni bir kullanıcı oluşturur (bcrypt ile hashlenmiş parola).

bedrud user [--config <yol>] create --email <e-posta> --password <parola> --name <ad> [--admin]

Gerekli bayraklar:

  • --email: Kullanıcı e-posta adresi
  • --password: Kullanıcı parolası, depolanmadan önce bcrypt ile hashlenir
  • --name: Kullanıcı görünen adı

İsteğe bağlı bayraklar:

  • --admin: Kullanıcıyı süper yönetici olarak oluştur

Erişim seviyesi: Varsayılan olarak user. Tek komutta süper yönetici oluşturmak için --admin kullanın.

delete

Bir kullanıcıyı e-posta adresine göre siler.

bedrud user [--config <yol>] delete --email <e-posta>

promote

Bir kullanıcının rolünü erişim dizisini değiştirerek ayarlar. Varsayılan: superadmin.

bedrud user [--config <yol>] promote --email <e-posta> [--role <rol>]
BayrakVarsayılanAçıklama
--rolesuperadminHedef rol: superadmin, admin, moderator, user, guest

Örnekler:

# Superadmin yetkisi ver (varsayılan)
bedrud user promote --email admin@example.com
 
# Admin yetkisi ver
bedrud user promote --email admin@example.com --role admin
 
# Moderator yetkisi ver
bedrud user promote --email mod@example.com --role moderator

Her rol belirli bir erişim dizisine eşlenir:

  • superadmin['superadmin', 'user']
  • admin['admin', 'user']
  • moderator['moderator', 'user']
  • user['user']
  • guest['guest']

demote

Bir kullanıcıdan belirli bir rolü kaldırır. Varsayılan: superadmin.

bedrud user [--config <yol>] demote --email <e-posta> [--role <rol>]
BayrakVarsayılanAçıklama
--rolesuperadminKaldırılacak rol: superadmin, admin, moderator

Kaldırma işleminden sonra kullanıcının hiçbir rolü kalmazsa, otomatik olarak user erişimi eklenir.

Uygulama: server/internal/usercli/usercli.go


cert

TLS sertifikalarını yönetin. Yalnızca kendi imzalı sertifikalar kullanılırken geçerlidir (bedrud install --self-signed tarafından oluşturulur).

bedrud cert [--config <path>] <subcommand>
Genel BayrakVarsayılanAçıklama
--config/etc/bedrud/config.yamlBedrud yapılandırma dosyasının yolu
--algo""Anahtar algoritması: ed25519, ecdsa256, rsa2048, rsa4096 (varsayılan: mevcut sertifikadan algıla)

renew

Kendi imzalı TLS sertifikasını elle yenileyin. Mevcut sertifikanın anahtar algoritmasını algılar ve aynı türle yeniden oluşturur (varsayılan: Ed25519). Yeni sertifika 1825 gün (~5 yıl) geçerlidir.

bedrud cert renew [--config <path>]

Sunucu ayrıca, sürenin dolmasına 30 günden az kaldığında, yerleşik zamanlayıcısı aracılığıyla sertifikayı günlük olarak otomatik yeniler. Bu komut, manuel veya olağan dışı yenileme içindir.

SAN’ler: Sunucu yapılandırmasından türetilir — domain (ayarlanmışsa), artı localhost, 127.0.0.1 ve ::1.

Uygulama: server/internal/utils/tls.go (RenewSelfSignedCert)

info

TLS sertifika meta verilerini stdout’a yazdırın.

bedrud cert info [--config <path>]

Çıktı alanları: subject, issuer, notBefore, notAfter, daysRemaining, status (valid/expiring/error), SAN’ler.

Uygulama: server/internal/utils/tls.go (ValidateTLSCertPair)


help

Tüm komutlar ve bayraklarla kullanım mesajını gösterir.

bedrud help

Hiçbir argüman sağlanmadığında da tetiklenir. printUsage() çıktısını görüntüler.


Örnekler

Temel geliştirme sunucusu başlatma

# Geçerli dizindeki varsayılan config.yaml ile çalıştır
bedrud run
 
# Özel yapılandırma ile çalıştır
bedrud run --config /path/to/config.yaml
 
# Ortam değişkeni ile (geri dönüş)
export CONFIG_PATH=/etc/bedrud/config.yaml
bedrud run

Etkileşimli kurulum (girişler için sorar)

bedrud install

Let’s Encrypt ile etkileşimli olmayan kurulum

bedrud install --domain example.com --email admin@example.com

Özel bağlantı noktalarıyla kendi imzalı TLS

bedrud install --self-signed --port 8443 --lk-port 7880 --lk-tcp-port 7881 --lk-udp-port 7882

CDN arkasında ayrı LiveKit alan adı ile

bedrud install --domain bedrud.example.com --email admin@example.com --livekit-domain lk.example.com --behind-proxy

Temiz yeniden kurulum

bedrud install --fresh --domain example.com --email admin@example.com

Kullanıcı yönetimi

# İlk yönetici kullanıcısını oluştur (tek komut)
bedrud user [--config <yol>] create --email admin@example.com --password secret123 --name "Admin User" --admin
 
# Veya normal kullanıcı oluşturup yükselt
bedrud user [--config <yol>] create --email admin@example.com --password secret123 --name "Admin User"
bedrud user [--config <yol>] promote --email admin@example.com
 
# Normal kullanıcı oluştur
bedrud user [--config <yol>] create --email user@example.com --password pass456 --name "Regular User"
 
# Bir kullanıcıyı kaldır
bedrud user [--config <yol>] delete --email user@example.com
 
# Yönetici erişimini kaldır
bedrud user [--config <yol>] demote --email admin@example.com

İlgili Belgeler