Bedrud Dokumentation

Ein-Klick-Installation für alle Plattformen. Kein sudo — wird in Ihrem Home-Verzeichnis installiert.

Für die Server-Einrichtung nach der Installation siehe Schnellstart. Für Paketmanager, Docker und andere Methoden siehe Serverinstallation.


Funktionsweise

  1. Erkennt Betriebssystem, CPU-Architektur, Plattformvarianten (Rosetta 2/WSL) und Init-System (systemd/OpenRC/SysV/Container)
  2. Lädt die richtige Binärdatei von GitHub Releases herunter (oder erstellt aus dem Quellcode mit --build)
  3. Installiert nach ~/bin oder %USERPROFILE%\bin (anpassbar über --install-dir)
  4. Fügt das Installationsverzeichnis zum PATH hinzu (Shell-Profile für Bash, Registry für Windows)
  5. Windows & Linux: Bietet einen interaktiven Dialog zur Konfiguration von TLS, Postgres und Erstellung des ersten Admin-Benutzers
  6. Zeigt die nächsten Schritte an

Voraussetzungen

PlattformAbhängigkeiten
macOS / Linuxcurl + tar
macOS / Linux (--build)curl + git + go + bun + make
WindowsPowerShell 5.1+ (in Windows 10/11 enthalten)
Windows (--build)git + go + bun + make

Schnellinstallation

curl -fsSL https://bedrud.org/install.sh | bash

Shell neu laden, dann überprüfen:

source ~/.bashrc  # oder ~/.zshrc
bedrud --version
irm https://bedrud.org/install.ps1 | iex
bedrud --version

Flags & Optionen

Bash-Installer

Usage: curl -fsSL https://bedrud.org/install.sh | bash -s -- [options]
FlagStandardBeschreibung
--install-dir <dir>~/binAblageort der Binärdatei
--version <ver>latestEine Release-Version festlegen (z. B. v1.2.0)
--buildoffAus Quellcode erstellen statt Release herunterzuladen
--branch <name>masterZu klonender Git-Branch (erfordert --build)
--skip-shelloffShell-RC-Dateien und PATH nicht ändern
--no-setupoffNur Binärdatei herunterladen, interaktives Server-Setup überspringen
-h, --helpVerwendung anzeigen und beenden

Beispiele:

# Standard
curl -fsSL https://bedrud.org/install.sh | bash
 
# Version festlegen
curl -fsSL https://bedrud.org/install.sh | bash -s -- --version v1.2.0
 
# Aus Quellcode erstellen (benutzerdefinierter Branch)
curl -fsSL https://bedrud.org/install.sh | bash -s -- --build --branch my-feature
 
# Aus einem Fork erstellen
BEDRUD_REPO=myuser/bedrud curl -fsSL https://bedrud.org/install.sh | bash -s -- --build
 
# Systemweite Installation
curl -fsSL https://bedrud.org/install.sh | sudo bash -s -- --install-dir /usr/local/bin
 
# CI / Automatisierung — Shell-Konfiguration und interaktives Setup überspringen
curl -fsSL https://bedrud.org/install.sh | bash -s -- --skip-shell --no-setup

PowerShell-Installer

Usage: irm https://bedrud.org/install.ps1 | iex

Zum Übergeben von Parametern zunächst in einer Datei speichern:

irm https://bedrud.org/install.ps1 -OutFile install.ps1
.\install.ps1 -Version v1.2.0 -InstallDir C:\Tools
ParameterStandardBeschreibung
-InstallDir <path>$HOME\binAblageort von bedrud.exe
-Version <ver>latestEine bestimmte Release-Version installieren
-SkipPath$falseInstallationsverzeichnis nicht zum Benutzer-PATH hinzufügen
-Build$falseAus Quellcode erstellen statt herunterzuladen
-Branch <name>masterZu klonender Git-Branch (erfordert -Build)
-NoSetup$falseNur herunterladen, interaktives Server-Setup überspringen

Beispiele:

# Standard
irm https://bedrud.org/install.ps1 | iex
 
# Aus Quellcode erstellen
.\install.ps1 -Build -Branch main
 
# CI / Automatisierung — interaktives Setup überspringen
.\install.ps1 -NoSetup -SkipPath

Umgebungsvariablen

VariableStandardPlattformenBeschreibung
BEDRUD_INSTALL~/binNur BashInstallationsverzeichnis überschreiben (gleich wie --install-dir)
BEDRUD_REPOthemadorg/bedrudBeideGitHub-Repo überschreiben (für Forks oder Mirrors)
BEDRUD_INSTALL=/opt/bedrud curl -fsSL https://bedrud.org/install.sh | bash
BEDRUD_REPO=myorg/bedrud-fork curl -fsSL https://bedrud.org/install.sh | bash
$env:BEDRUD_REPO = "myorg/bedrud-fork"
irm https://bedrud.org/install.ps1 | iex

Plattformunterstützung

ZielBetriebssystemArchitekturHinweise
darwin_amd64macOSIntel (x86_64)Standard
darwin_arm64macOSApple Silicon (M1/M2/M3/M4)Rosetta 2 automatisch erkannt
linux_amd64Linuxx86_64Statische Binärdatei — alle Distributionen
linux_arm64LinuxARM64Statische Binärdatei — alle Distributionen
freebsd_amd64FreeBSDx86_64Standard
windows_amd64Windowsx86_64Standard
windows_arm64WindowsARM64Standard

Erkennung von Sonderfällen

Rosetta 2 (macOS Intel auf Apple Silicon)

Erkennung: sysctl -n sysctl.proc_translated gibt 1 zurück. Auswirkung: Wechselt darwin_amd64darwin_arm64 für native ARM-Leistung.

Container-Umgebungen (Docker, Kubernetes, etc.)

Erkennung: Prüft /.dockerenv, /run/.containerenv, /proc/1/comm (für docker-init, tini, containerd, runc) und /proc/1/cgroup (für docker, kubepods, containerd). Auswirkung: Service-Datei-Installation wird übersprungen. Der Installer zeigt manuelle Startbefehle an:

# Vordergrund
/usr/local/bin/bedrud run --config /etc/bedrud/config.yaml
 
# Hintergrund
nohup /usr/local/bin/bedrud run --config /etc/bedrud/config.yaml \
  > /var/log/bedrud/bedrud.log 2>&1 &

Für korrektes Servicemanagement in Docker, verwenden Sie --init oder tini als PID 1.


Init-System-Unterstützung

Der Installer erkennt das Init-System automatisch und erstellt die entsprechenden Service-Dateien für die Servereinrichtung:

Init-SystemErkennungService-DateienVerwaltung
systemd/run/systemd/system vorhanden/etc/systemd/system/*.servicesystemctl
OpenRC/sbin/openrc vorhanden/etc/init.d/* (OpenRC-Format)rc-service, rc-update
SysV initservice-Befehl verfügbar/etc/init.d/* (LSB-Format)service, update-rc.d
Container/.dockerenv, /proc/1/comm, /proc/1/cgroupKeine — manueller StartDirekte Binärdatei oder nohup

Unterstützt auf: Den meisten Linux-Distributionen (systemd, OpenRC, SysV init), WSL1 und Linux-Containern. Containerumgebungen werden automatisch erkannt — die Service-Datei-Installation wird übersprungen und manuelle Startanweisungen werden angezeigt.


Installationsablauf

  1. Windows-Prüfung — MINGW/MSYS/CYGWIN in Bash erkannt? Zu PowerShell umleiten.
  2. WSL-Prüfung — WSL in PowerShell erkannt? Zu Bash umleiten.
  3. Abhängigkeitsprüfung — Bash: curl + tar. PowerShell: (standardmäßig keine). Build: git + go + bun + make.
  4. Plattform-Erkennung — OS + Architektur über uname (Bash) oder RuntimeInformation (PowerShell).
  5. Binärdatei installieren — entweder:
    • Download-Modus (Standard): zip/tar.xz herunterladen und entpacken.
    • Build-Modus (--build): git clone, bun install, go mod download, make build.
  6. Überprüfenbedrud --version ausführen.
  7. PATH-Prüfung — bereits im PATH? Überspringen. Sonst → RC-Datei (Bash) oder Registry (PowerShell) ändern.
  8. Interaktives Setup — Dialog für Domain, TLS, Postgres und Admin-Benutzererstellung.
  9. Fertig — Erfolgsmeldung + Zugriffs-URL ausgeben.

Download-URL-Format: github.com/{repo}/releases/{ver}/bedrud_{TARGET}.tar.xz

Build-Modus klont von: github.com/{repo} und führt make build aus (Ausgabe: server/dist/bedrud).


PATH & Shell-Konfiguration

Wenn --skip-shell nicht gesetzt ist, fügt das Installationsprogramm das Installationsverzeichnis Ihrem PATH hinzu.

ShellRC-Datei
fish~/.config/fish/config.fish
zsh$ZDOTDIR/.zshrc (Standard ~/.zshrc)
bash (macOS)~/.bash_profile, dann ~/.bashrc
bash (Linux)~/.bashrc, dann ~/.bash_profile

Was hinzugefügt wird:

# bedrud
export PATH="$HOME/bin:$PATH"  # bedrud

Der # bedrud-Kommentar-Marker verhindert doppelte Einträge — sicher zum erneuten Ausführen.

Windows: Verwendet [Environment]::SetEnvironmentVariable("PATH", ..., "User") auf Registrierungsebene. Keine RC-Datei erforderlich.

Shell nach der Installation neu laden:

source ~/.bashrc    # bash
source ~/.zshrc     # zsh
source ~/.config/fish/config.fish  # fish

Offline- / Air-Gap-Installationen

Herunterladen und Übertragen

curl -fsSL -o bedrud.tar.xz \
  https://github.com/themadorg/bedrud/releases/latest/download/bedrud_linux_amd64.tar.xz
scp bedrud.tar.xz airgapped-server:/tmp/
# Auf dem Zielsystem:
tar -xf /tmp/bedrud.tar.xz -C /tmp/bedrud-extracted
mv /tmp/bedrud-extracted/bedrud ~/bin/
chmod +x ~/bin/bedrud

Selbstgehosteter Mirror

BEDRUD_REPO=mycompany/bedrud-mirror curl -fsSL https://bedrud.org/install.sh | bash

Direkte Binärdatei

Von Releases herunterladen, entpacken und in ein Verzeichnis in Ihrem PATH verschieben.


Deinstallation

rm ~/bin/bedrud
# PATH-Zeile aus der Shell-RC entfernen (nach "# bedrud" suchen):
#   ~/.bashrc, ~/.bash_profile, ~/.zshrc, ~/.config/fish/config.fish

Für Serverinstallationen (systemd, OpenRC oder SysV init):

sudo bedrud uninstall

Windows:

Remove-Item "$env:USERPROFILE\bin\bedrud.exe"
# Über Systemeigenschaften → Umgebungsvariablen aus dem PATH entfernen

Fehlerbehebung

command not found: bedrud

source ~/.bashrc    # Shell neu laden
echo $PATH | tr ':' '\n' | grep "$HOME/bin"  # PATH prüfen

Falls fehlend:

echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Failed to download bedrud

  1. Internetverbindung prüfen
  2. Überprüfen, ob das Ziel unter Releases existiert
  3. Eine bestimmte Version versuchen: --version v1.0.0
  4. Ihre Plattform verfügt möglicherweise noch nicht über eine vorkompilierte Binärdatei

macOS: x64 wird unter Rosetta ausgeführt (langsam)

Natives ARM erzwingen:

arch -arm64 curl -fsSL https://bedrud.org/install.sh | arch -arm64 bash

Windows: “Ausführung von Skripts ist deaktiviert”

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
irm https://bedrud.org/install.ps1 | iex

Windows: WSL erkannt

Wenn Sie in einem WSL-Terminal arbeiten (z. B. Ubuntu unter Windows), erkennt der PowerShell-Installer dies und bittet Sie, stattdessen den Bash-Installer auszuführen. Dadurch wird sichergestellt, dass Bedrud korrekt für die Linux-Umgebung in WSL installiert wird.

Windows: ARM64-Geräte (Surface Pro usw.)

Der Installer erkennt automatisch windows_arm64 und lädt die native Binärdatei herunter. Wenn Sie eine Architektur erzwingen müssen, laden Sie das spezifische Zip-Archiv von Releases herunter.

Windows: Docker Desktop für Postgres

Wenn Sie sich während der Einrichtung dafür entscheiden, Postgres in Docker auszuführen, stellen Sie sicher, dass Docker Desktop installiert ist und ausgeführt wird. Der Installer wird versuchen, den Container automatisch zu starten.