Bedrud Documentation

Installation en une commande sur toutes les plateformes. Pas besoin de sudo — s’installe dans votre répertoire personnel.

Pour la configuration du serveur après l’installation, voir Démarrage rapide. Pour les gestionnaires de packages, Docker et autres méthodes, voir Installation du serveur.


Ce qu’il fait

  1. Détecte l’OS, l’architecture CPU, les variantes de plateforme (Rosetta 2/WSL) et le système d’initialisation (systemd/OpenRC/SysV/conteneur)
  2. Télécharge le bon binaire depuis GitHub Releases (ou compile depuis les sources avec --build)
  3. Installe dans ~/bin ou %USERPROFILE%\bin (personnalisable via --install-dir)
  4. Ajoute le répertoire d’installation au PATH (profils shell pour Bash, Registre pour Windows)
  5. Windows et Linux : Propose un dialogue interactif pour configurer TLS, Postgres et créer le premier utilisateur Admin
  6. Affiche les prochaines étapes

Prérequis

PlateformeDépendances
macOS / Linuxcurl + tar
macOS / Linux (--build)curl + git + go + bun + make
WindowsPowerShell 5.1+ (inclus avec Windows 10/11)

Installation rapide

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

Rechargez votre shell, puis vérifiez :

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

Flags et options

Installateur Bash

Usage: curl -fsSL https://bedrud.org/install.sh | bash -s -- [options]
FlagPar défautDescription
--install-dir <dir>~/binOù placer le binaire
--version <ver>latestÉpingler à une version (ex. v1.2.0)
--buildinactifCompiler depuis les sources au lieu de télécharger
--branch <name>masterBranche Git à cloner (requiert --build)
--no-setupinactifTélécharger uniquement, ignorer la configuration interactive du serveur
--skip-shellinactifNe pas modifier les fichiers RC du shell ni le PATH
-h, --helpAfficher l’aide et quitter

Exemples :

# Par défaut
curl -fsSL https://bedrud.org/install.sh | bash
 
# Version spécifique
curl -fsSL https://bedrud.org/install.sh | bash -s -- --version v1.2.0
 
# Compiler depuis les sources (branche personnalisée)
curl -fsSL https://bedrud.org/install.sh | bash -s -- --build --branch my-feature
 
# Compiler depuis un fork
BEDRUD_REPO=myuser/bedrud curl -fsSL https://bedrud.org/install.sh | bash -s -- --build
 
# Installation système
curl -fsSL https://bedrud.org/install.sh | sudo bash -s -- --install-dir /usr/local/bin
 
# CI / automatisation — ignorer la config du shell et la configuration interactive
curl -fsSL https://bedrud.org/install.sh | bash -s -- --skip-shell --no-setup

Installateur PowerShell

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

Pour passer des paramètres, enregistrez d’abord le fichier :

irm https://bedrud.org/install.ps1 -OutFile install.ps1
.\install.ps1 -Version v1.2.0 -InstallDir C:\Tools
ParamètrePar défautDescription
-InstallDir <path>$HOME\binOù placer bedrud.exe
-Version <ver>latestInstaller une version spécifique
-SkipPath$falseNe pas ajouter le répertoire au PATH utilisateur
-Build$falseCompiler depuis les sources au lieu de télécharger
-Branch <name>masterBranche Git à cloner (requiert -Build)
-NoSetup$falseTélécharger uniquement, ignorer la configuration interactive du serveur

Exemples :

# Par défaut
irm https://bedrud.org/install.ps1 | iex
 
# Compiler depuis les sources
.\install.ps1 -Build -Branch main
 
# CI / automatisation — ignorer la configuration interactive
.\install.ps1 -NoSetup -SkipPath

Variables d’environnement

VariablePar défautPlateformesDescription
BEDRUD_INSTALL~/binBash uniquementRemplacer le répertoire d’installation (identique à --install-dir)
BEDRUD_REPOthemadorg/bedrudLes deuxRemplacer le dépôt GitHub (pour les forks ou miroirs)
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

Plateformes supportées

CibleOSArchitectureNotes
darwin_amd64macOSIntel (x86_64)Standard
darwin_arm64macOSApple Silicon (M1/M2/M3/M4)Rosetta 2 détecté automatiquement
linux_amd64Linuxx86_64Binaire statique — toutes les distributions
linux_arm64LinuxARM64Binaire statique — toutes les distributions
freebsd_amd64FreeBSDx86_64Standard
windows_amd64Windowsx86_64Standard
windows_arm64WindowsARM64Standard

Détection des cas particuliers

Rosetta 2 (macOS Intel sur Apple Silicon)

Détection : sysctl -n sysctl.proc_translated renvoie 1. Effet : Bascule darwin_amd64darwin_arm64 pour les performances ARM natives.

Environnements conteneur (Docker, Kubernetes, etc.)

Détection : Vérifie /.dockerenv, /run/.containerenv, /proc/1/comm (pour docker-init, tini, containerd, runc) et /proc/1/cgroup (pour docker, kubepods, containerd). Effet : L’installation des fichiers de service est ignorée. L’installateur affiche les commandes de démarrage manuel :

# Premier plan
/usr/local/bin/bedrud run --config /etc/bedrud/config.yaml
 
# Arrière-plan
nohup /usr/local/bin/bedrud run --config /etc/bedrud/config.yaml \
  > /var/log/bedrud/bedrud.log 2>&1 &

Pour une gestion correcte des services dans Docker, utilisez --init ou tini comme PID 1.


Prise en charge des systèmes d’initialisation

L’installateur détecte automatiquement votre système d’initialisation et crée les fichiers de service appropriés pour la configuration du serveur :

Système d’initialisationDétectionFichiers de serviceGestion
systemd/run/systemd/system existe/etc/systemd/system/*.servicesystemctl
OpenRC/sbin/openrc existe/etc/init.d/* (format OpenRC)rc-service, rc-update
SysV initcommande service disponible/etc/init.d/* (format LSB)service, update-rc.d
Conteneur/.dockerenv, /proc/1/comm, /proc/1/cgroupAucun — démarrage manuelBinaire direct ou nohup

Pris en charge sur : La plupart des distributions Linux (systemd, OpenRC, SysV init), WSL1 et les conteneurs Linux. Les environnements conteneur sont auto-détectés — l’installation des fichiers de service est ignorée avec affichage des instructions de démarrage manuel.


Processus d’installation

  1. Vérification Windows — MINGW/MSYS/CYGWIN détecté dans Bash ? Rediriger vers PowerShell.
  2. Vérification WSL — WSL détecté dans PowerShell ? Rediriger vers Bash.
  3. Vérification des dépendances — Bash : curl + tar. PowerShell : (aucune par défaut). Compilation : git + go + bun + make.
  4. Détection de plateforme — OS + architecture via uname (Bash) ou RuntimeInformation (PowerShell).
  5. Installation du binaire — soit :
    • Mode téléchargement (par défaut) : télécharger et extraire zip/tar.xz.
    • Mode compilation (--build) : git clone, bun install, go mod download, make build.
  6. Vérification — exécuter bedrud --version.
  7. Vérification du PATH — déjà dans le PATH ? Ignorer. Sinon → modifier le fichier RC (Bash) ou le Registre (PowerShell).
  8. Configuration interactive — Q&A pour Domaine, TLS, Postgres et création de l’utilisateur Admin.
  9. Terminé — afficher le succès + URL d’accès.

Format de l’URL de téléchargement : github.com/{repo}/releases/{ver}/bedrud_{TARGET}.tar.xz

Mode compilation clone depuis : github.com/{repo} et exécute make build (sortie : server/dist/bedrud).


PATH et configuration du shell

Quand --skip-shell n’est pas défini, l’installateur ajoute le répertoire d’installation à votre PATH.

ShellFichier RC
fish~/.config/fish/config.fish
zsh$ZDOTDIR/.zshrc (par défaut ~/.zshrc)
bash (macOS)~/.bash_profile, puis ~/.bashrc
bash (Linux)~/.bashrc, puis ~/.bash_profile

Ce qui est ajouté :

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

Le marqueur de commentaire # bedrud empêche les entrées en double — il est sans risque de relancer.

Windows : Utilise [Environment]::SetEnvironmentVariable("PATH", ..., "User") au niveau du registre. Pas besoin de fichier RC.

Rechargez le shell après l’installation :

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

Installations hors ligne / isolées

Téléchargement et transfert

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/
# Sur la cible :
tar -xf /tmp/bedrud.tar.xz -C /tmp/bedrud-extracted
mv /tmp/bedrud-extracted/bedrud ~/bin/
chmod +x ~/bin/bedrud

Miroir auto-hébergé

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

Binaire direct

Téléchargez depuis Releases, extrayez, déplacez dans un répertoire de votre PATH.


Désinstallation

rm ~/bin/bedrud
# Supprimer la ligne PATH du fichier RC du shell (chercher "# bedrud") :
#   ~/.bashrc, ~/.bash_profile, ~/.zshrc, ~/.config/fish/config.fish

Pour les installations serveur (systemd, OpenRC ou SysV init) :

sudo bedrud uninstall

Windows :

Remove-Item "$env:USERPROFILE\bin\bedrud.exe"
# Supprimer du PATH via Propriétés système → Variables d'environnement

Dépannage

command not found: bedrud

source ~/.bashrc    # recharger le shell
echo $PATH | tr ':' '\n' | grep "$HOME/bin"  # vérifier le PATH

Si absent :

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

Failed to download bedrud

  1. Vérifiez la connexion Internet
  2. Vérifiez que la cible existe sur Releases
  3. Essayez une version spécifique : --version v1.0.0
  4. Votre plateforme n’a peut-être pas encore de binaire précompilé

macOS : exécution x64 sous Rosetta (lent)

Forcer l’ARM natif :

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

Windows : « running scripts is disabled »

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

Windows : WSL détecté

Si vous exécutez l’installateur dans un terminal WSL (par exemple, Ubuntu sur Windows), l’installateur PowerShell le détectera et vous demandera d’exécuter l’installateur Bash à la place. Cela garantit que Bedrud est installé correctement pour l’environnement Linux à l’intérieur de WSL.

Windows : appareils ARM64 (Surface Pro, etc.)

L’installateur auto-détecte windows_arm64 et télécharge le binaire natif. Si vous avez besoin de forcer une architecture, téléchargez le zip spécifique depuis les Releases.

Windows : Docker Desktop pour Postgres

Si vous choisissez d’exécuter Postgres dans Docker pendant la configuration, assurez-vous que Docker Desktop est installé et en cours d’exécution. L’installateur tentera de démarrer le conteneur automatiquement.