Bedrud Documentación

Instalación en un solo comando para todas las plataformas. No requiere sudo — instala en tu directorio personal.

Para la configuración del servidor después de la instalación, consulta Inicio Rápido. Para gestores de paquetes, Docker y otros métodos, consulta Instalación del Servidor.


Lo que Hace

  1. Detecta el sistema operativo, arquitectura de CPU, variantes de plataforma (Rosetta 2/WSL) y sistema de inicialización (systemd/OpenRC/SysV/contenedor)
  2. Descarga el binario correcto desde GitHub Releases (o compila desde el código fuente con --build)
  3. Instala en ~/bin o %USERPROFILE%\bin (personalizable con --install-dir)
  4. Añade el directorio de instalación al PATH (perfiles de shell para Bash, Registro para Windows)
  5. Windows y Linux: Ofrece un diálogo interactivo para configurar TLS, Postgres y crear el usuario Administrador inicial
  6. Muestra los siguientes pasos

Requisitos

PlataformaDependencias
macOS / Linuxcurl + tar
macOS / Linux (--build)curl + git + go + bun + make
WindowsPowerShell 5.1+ (incluido con Windows 10/11)

Instalación Rápida

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

Recarga el shell, luego verifica:

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

Flags y Opciones

Instalador Bash

Usage: curl -fsSL https://bedrud.org/install.sh | bash -s -- [options]
FlagPredeterminadoDescripción
--install-dir <dir>~/binDónde colocar el binario
--version <ver>latestFijar a una versión (ej. v1.2.0)
--builddesactivadoCompilar desde el código fuente en lugar de descargar
--branch <name>masterRama de Git a clonar (requiere --build)
--no-setupdesactivadoSolo descargar binario, omitir la configuración interactiva del servidor
--skip-shelldesactivadoNo modificar archivos RC del shell ni PATH
-h, --helpMostrar uso y salir

Ejemplos:

# Predeterminado
curl -fsSL https://bedrud.org/install.sh | bash
 
# Fijar versión
curl -fsSL https://bedrud.org/install.sh | bash -s -- --version v1.2.0
 
# Compilar desde el código fuente (rama personalizada)
curl -fsSL https://bedrud.org/install.sh | bash -s -- --build --branch my-feature
 
# Compilar desde un fork
BEDRUD_REPO=myuser/bedrud curl -fsSL https://bedrud.org/install.sh | bash -s -- --build
 
# Instalación en todo el sistema
curl -fsSL https://bedrud.org/install.sh | sudo bash -s -- --install-dir /usr/local/bin
 
# CI / automatización — omitir config del shell y configuración interactiva
curl -fsSL https://bedrud.org/install.sh | bash -s -- --skip-shell --no-setup

Instalador PowerShell

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

Para pasar parámetros, guarda primero en un archivo:

irm https://bedrud.org/install.ps1 -OutFile install.ps1
.\install.ps1 -Version v1.2.0 -InstallDir C:\Tools
ParámetroPredeterminadoDescripción
-InstallDir <path>$HOME\binDónde colocar bedrud.exe
-Version <ver>latestInstalar una versión específica
-SkipPath$falseNo añadir el directorio de instalación al PATH del usuario
-Build$falseCompilar desde el código fuente en lugar de descargar
-Branch <name>masterRama de Git a clonar (requiere -Build)
-NoSetup$falseSolo descargar, omitir la configuración interactiva del servidor

Ejemplos:

# Predeterminado
irm https://bedrud.org/install.ps1 | iex
 
# Compilar desde el código fuente
.\install.ps1 -Build -Branch main
 
# CI / automatización — omitir la configuración interactiva
.\install.ps1 -NoSetup -SkipPath

Variables de Entorno

VariablePredeterminadoPlataformasDescripción
BEDRUD_INSTALL~/binSolo BashSobrescribir directorio de instalación (igual que --install-dir)
BEDRUD_REPOthemadorg/bedrudAmbasSobrescribir repositorio de GitHub (para forks o 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

Soporte de Plataformas

DestinoSOArquitecturaNotas
darwin_amd64macOSIntel (x86_64)Estándar
darwin_arm64macOSApple Silicon (M1/M2/M3/M4)Rosetta 2 detectado automáticamente
linux_amd64Linuxx86_64Binario estático — todas las distribuciones
linux_arm64LinuxARM64Binario estático — todas las distribuciones
freebsd_amd64FreeBSDx86_64Estándar
windows_amd64Windowsx86_64Estándar
windows_arm64WindowsARM64Estándar

Detección de Casos Especiales

Rosetta 2 (macOS Intel en Apple Silicon)

Detección: sysctl -n sysctl.proc_translated devuelve 1. Efecto: Cambia darwin_amd64darwin_arm64 para rendimiento nativo en ARM.

Entornos de contenedores (Docker, Kubernetes, etc.)

Detección: Comprueba /.dockerenv, /run/.containerenv, /proc/1/comm (para docker-init, tini, containerd, runc) y /proc/1/cgroup (para docker, kubepods, containerd). Efecto: La instalación de archivos de servicio se omite. El instalador muestra comandos de inicio manual:

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

Para una gestión adecuada de servicios en Docker, use --init o tini como PID 1.


Soporte de sistemas de inicialización

El instalador detecta automáticamente el sistema de inicialización y crea los archivos de servicio apropiados para la configuración del servidor:

Sistema de inicializaciónDetecciónArchivos de servicioGestión
systemdexiste /run/systemd/system/etc/systemd/system/*.servicesystemctl
OpenRCexiste /sbin/openrc/etc/init.d/* (formato OpenRC)rc-service, rc-update
SysV initcomando service disponible/etc/init.d/* (formato LSB)service, update-rc.d
Contenedor/.dockerenv, /proc/1/comm, /proc/1/cgroupNinguno — inicio manualBinario directo o nohup

Compatible con: La mayoría de las distribuciones de Linux (systemd, OpenRC, SysV init), WSL1 y contenedores de Linux. Los entornos de contenedores se detectan automáticamente — la instalación de archivos de servicio se omite con instrucciones de inicio manual.


Flujo de Instalación

  1. Comprobación de Windows — ¿MINGW/MSYS/CYGWIN detectado en Bash? Redirigir a PowerShell.
  2. Comprobación de WSL — ¿WSL detectado en PowerShell? Redirigir a Bash.
  3. Comprobación de dependencias — Bash: curl + tar. PowerShell: (ninguna por defecto). Compilación: git + go + bun + make.
  4. Detección de plataforma — SO + arquitectura mediante uname (Bash) o RuntimeInformation (PowerShell).
  5. Instalar binario — ya sea:
    • Modo descarga (predeterminado): descargar y extraer zip/tar.xz.
    • Modo compilación (--build): git clone, bun install, go mod download, make build.
  6. Verificación — ejecutar bedrud --version.
  7. Comprobación de PATH — ¿Ya en PATH? Omitir. En caso contrario → modificar archivo RC (Bash) o Registro (PowerShell).
  8. Configuración Interactiva — Cuestionario para Dominio, TLS, Postgres y creación del usuario Administrador.
  9. Listo — mostrar éxito + URL de acceso.

Formato de URL de descarga: github.com/{repo}/releases/{ver}/bedrud_{TARGET}.tar.xz

Modo compilación clona desde: github.com/{repo} y ejecuta make build (salida: server/dist/bedrud).


PATH y Configuración del Shell

Cuando no se establece --skip-shell, el instalador añade el directorio de instalación a tu PATH.

ShellArchivo RC
fish~/.config/fish/config.fish
zsh$ZDOTDIR/.zshrc (predeterminado ~/.zshrc)
bash (macOS)~/.bash_profile, luego ~/.bashrc
bash (Linux)~/.bashrc, luego ~/.bash_profile

Lo que se añade:

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

El marcador de comentario # bedrud evita entradas duplicadas — es seguro volver a ejecutar.

Windows: Usa [Environment]::SetEnvironmentVariable("PATH", ..., "User") a nivel del registro. No se necesita archivo RC.

Recargar el shell después de la instalación:

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

Instalaciones Sin Conexión / Aisladas

Descargar y Transferir

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

Mirror Autohospedado

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

Binario Directo

Descarga desde Releases, extrae, mueve a un directorio en tu PATH.


Desinstalación

rm ~/bin/bedrud
# Eliminar la línea del PATH del archivo RC del shell (buscar "# bedrud"):
#   ~/.bashrc, ~/.bash_profile, ~/.zshrc, ~/.config/fish/config.fish

Para instalaciones de servidor con systemd, OpenRC o SysV init:

sudo bedrud uninstall

Windows:

Remove-Item "$env:USERPROFILE\bin\bedrud.exe"
# Eliminar del PATH mediante Propiedades del Sistema → Variables de Entorno

Solución de Problemas

command not found: bedrud

source ~/.bashrc    # recargar el shell
echo $PATH | tr ':' '\n' | grep "$HOME/bin"  # verificar PATH

Si falta:

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

Failed to download bedrud

  1. Verifica la conexión a internet
  2. Comprueba que el destino existe en Releases
  3. Prueba una versión específica: --version v1.0.0
  4. Es posible que tu plataforma aún no tenga un binario precompilado

macOS: Ejecutando x64 bajo Rosetta (lento)

Forzar ARM nativo:

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 detectado

Si estás ejecutando en un terminal WSL (por ejemplo, Ubuntu en Windows), el instalador de PowerShell lo detectará y te pedirá que ejecutes el instalador de Bash en su lugar. Esto asegura que Bedrud se instale correctamente para el entorno Linux dentro de WSL.

Windows: dispositivos ARM64 (Surface Pro, etc.)

El instalador detecta automáticamente windows_arm64 y descarga el binario nativo. Si necesitas forzar una arquitectura, descarga el zip específico desde Releases.

Windows: Docker Desktop para Postgres

Si eliges ejecutar Postgres en Docker durante la configuración, asegúrate de que Docker Desktop esté instalado y funcionando. El instalador intentará iniciar el contenedor automáticamente.