Bedrud Документация

Установка одной командой для всех платформ. Без sudo — устанавливается в домашнюю директорию.

Для настройки сервера после установки см. Быстрый старт. Для пакетных менеджеров, Docker и других способов см. Установка сервера.


Что делает установщик

  1. Определяет ОС, архитектуру процессора, варианты платформы (Rosetta 2/WSL) и систему инициализации (systemd/OpenRC/SysV/контейнер)
  2. Загружает нужный бинарный файл из GitHub Releases (или собирает из исходников с --build)
  3. Устанавливает в ~/bin или %USERPROFILE%\bin (настраивается через --install-dir)
  4. Добавляет директорию установки в PATH (профили shell для Bash, реестр для Windows)
  5. Windows и Linux: Предлагает интерактивный диалог для настройки TLS, Postgres и создания первого администратора
  6. Выводит следующие шаги

Требования

ПлатформаЗависимости
macOS / Linuxcurl + tar
macOS / Linux (--build)curl + git + go + bun + make
WindowsPowerShell 5.1+ (встроен в Windows 10/11)

Быстрая установка

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

Перезагрузите оболочку, затем проверьте:

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

Флаги и параметры

Установщик Bash

Использование: curl -fsSL https://bedrud.org/install.sh | bash -s -- [параметры]
ФлагПо умолчаниюОписание
--install-dir <dir>~/binКуда поместить бинарный файл
--version <ver>latestЗафиксировать версию (напр. v1.2.0)
--buildвыкл.Собрать из исходников вместо загрузки релиза
--branch <name>masterВетка Git для клонирования (требует --build)
--no-setupвыкл.Только загрузить бинарный файл, пропустить интерактивную настройку сервера
--skip-shellвыкл.Не изменять RC-файлы оболочки и PATH
-h, --helpВывести справку и выйти

Примеры:

# По умолчанию
curl -fsSL https://bedrud.org/install.sh | bash
 
# Фиксация версии
curl -fsSL https://bedrud.org/install.sh | bash -s -- --version v1.2.0
 
# Сборка из исходников (пользовательская ветка)
curl -fsSL https://bedrud.org/install.sh | bash -s -- --build --branch my-feature
 
# Сборка из форка
BEDRUD_REPO=myuser/bedrud curl -fsSL https://bedrud.org/install.sh | bash -s -- --build
 
# Установка для всей системы
curl -fsSL https://bedrud.org/install.sh | sudo bash -s -- --install-dir /usr/local/bin
 
# CI / автоматизация — без настройки оболочки и интерактивной настройки
curl -fsSL https://bedrud.org/install.sh | bash -s -- --skip-shell --no-setup

Установщик PowerShell

Использование: irm https://bedrud.org/install.ps1 | iex

Для передачи параметров сохраните файл сначала:

irm https://bedrud.org/install.ps1 -OutFile install.ps1
.\install.ps1 -Version v1.2.0 -InstallDir C:\Tools
ПараметрПо умолчаниюОписание
-InstallDir <path>$HOME\binКуда поместить bedrud.exe
-Version <ver>latestУстановить конкретную версию
-SkipPath$falseНе добавлять директорию установки в PATH пользователя
-Build$falseСобрать из исходников вместо загрузки
-Branch <name>masterВетка Git для клонирования (требует -Build)
-NoSetup$falseТолько загрузить, пропустить интерактивную настройку сервера

Примеры:

# По умолчанию
irm https://bedrud.org/install.ps1 | iex
 
# Сборка из исходников
.\install.ps1 -Build -Branch main
 
# CI / автоматизация — пропустить интерактивную настройку
.\install.ps1 -NoSetup -SkipPath

Переменные окружения

ПеременнаяПо умолчаниюПлатформыОписание
BEDRUD_INSTALL~/binТолько BashПереопределить директорию установки (аналог --install-dir)
BEDRUD_REPOthemadorg/bedrudОбеПереопределить GitHub-репозиторий (для форков или зеркал)
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

Поддерживаемые платформы

Целевая платформаОСАрхитектураПримечания
darwin_amd64macOSIntel (x86_64)Стандартная
darwin_arm64macOSApple Silicon (M1/M2/M3/M4)Rosetta 2 определяется автоматически
linux_amd64Linuxx86_64Статический бинарный файл — все дистрибутивы
linux_arm64LinuxARM64Статический бинарный файл — все дистрибутивы
freebsd_amd64FreeBSDx86_64Стандартная
windows_amd64Windowsx86_64Стандартная
windows_arm64WindowsARM64Стандартная

Определение особых случаев

Rosetta 2 (macOS Intel на Apple Silicon)

Определение: sysctl -n sysctl.proc_translated возвращает 1. Действие: Переключает darwin_amd64darwin_arm64 для нативной производительности ARM.

Контейнерные среды (Docker, Kubernetes и др.)

Определение: Проверяет /.dockerenv, /run/.containerenv, /proc/1/comm (для docker-init, tini, containerd, runc) и /proc/1/cgroup (для docker, kubepods, containerd). Действие: Установка сервис-файлов пропускается. Установщик выводит команды для ручного запуска:

# Передний план
/usr/local/bin/bedrud run --config /etc/bedrud/config.yaml
 
# Фоновый режим
nohup /usr/local/bin/bedrud run --config /etc/bedrud/config.yaml \
  > /var/log/bedrud/bedrud.log 2>&1 &

Для корректного управления сервисами в Docker используйте --init или tini в качестве PID 1.


Поддержка систем инициализации

Установщик автоматически определяет систему инициализации и создаёт соответствующие сервис-файлы для настройки сервера:

СистемаОпределениеСервис-файлыУправление
systemdсуществует /run/systemd/system/etc/systemd/system/*.servicesystemctl
OpenRCсуществует /sbin/openrc/etc/init.d/* (формат OpenRC)rc-service, rc-update
SysV initдоступна команда service/etc/init.d/* (формат LSB)service, update-rc.d
Контейнер/.dockerenv, /proc/1/comm, /proc/1/cgroupНет — ручной запускПрямой запуск бинарного файла или nohup

Поддерживается: Большинство дистрибутивов Linux (systemd, OpenRC, SysV init), WSL1 и Linux-контейнеры. Контейнерные среды определяются автоматически — установка сервис-файлов пропускается с выводом инструкций для ручного запуска.


Порядок установки

  1. Проверка Windows — в Bash обнаружен MINGW/MSYS/CYGWIN? Перенаправить в PowerShell.
  2. Проверка WSL — в PowerShell обнаружен WSL? Перенаправить в Bash.
  3. Проверка зависимостей — Bash: curl + tar. PowerShell: (по умолчанию нет). Сборка: git + go + bun + make.
  4. Определение платформы — ОС + архитектура через uname (Bash) или RuntimeInformation (PowerShell).
  5. Установка бинарного файла — один из:
    • Режим загрузки (по умолчанию): загрузка и распаковка zip/tar.xz.
    • Режим сборки (--build): git clone, bun install, go mod download, make build.
  6. Проверка — запуск bedrud --version.
  7. Проверка PATH — уже в PATH? Пропустить. Иначе → изменить RC-файл (Bash) или реестр (PowerShell).
  8. Интерактивная настройка — опрос по Домену, TLS, Postgres и созданию администратора.
  9. Готово — вывод сообщения об успехе + URL доступа.

Формат URL загрузки: github.com/{repo}/releases/{ver}/bedrud_{TARGET}.tar.xz

Режим сборки клонирует из: github.com/{repo} и выполняет make build (вывод: server/dist/bedrud).


PATH и конфигурация оболочки

Когда --skip-shell не установлен, установщик добавляет директорию установки в ваш PATH.

ОболочкаRC-файл
fish~/.config/fish/config.fish
zsh$ZDOTDIR/.zshrc (по умолчанию ~/.zshrc)
bash (macOS)~/.bash_profile, затем ~/.bashrc
bash (Linux)~/.bashrc, затем ~/.bash_profile

Что добавляется:

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

Маркер комментария # bedrud предотвращает дублирование записей — безопасно запускать повторно.

Windows: Использует [Environment]::SetEnvironmentVariable("PATH", ..., "User") на уровне реестра. RC-файл не требуется.

Перезагрузите оболочку после установки:

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

Автономная установка / Изолированные сети

Загрузка и перенос

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/
# На целевом сервере:
tar -xf /tmp/bedrud.tar.xz -C /tmp/bedrud-extracted
mv /tmp/bedrud-extracted/bedrud ~/bin/
chmod +x ~/bin/bedrud

Собственное зеркало

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

Прямая загрузка бинарного файла

Загрузите из Releases, распакуйте, переместите в директорию в вашем PATH.


Удаление

rm ~/bin/bedrud
# Удалите строку PATH из RC-файла оболочки (найдите "# bedrud"):
#   ~/.bashrc, ~/.bash_profile, ~/.zshrc, ~/.config/fish/config.fish

Для установки сервера через systemd, OpenRC, SysV init:

sudo bedrud uninstall

Windows:

Remove-Item "$env:USERPROFILE\bin\bedrud.exe"
# Удалите из PATH через Свойства системы → Переменные среды

Устранение неполадок

command not found: bedrud

source ~/.bashrc    # перезагрузить оболочку
echo $PATH | tr ':' '\n' | grep "$HOME/bin"  # проверить PATH

Если отсутствует:

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

Failed to download bedrud

  1. Проверьте подключение к интернету
  2. Убедитесь, что целевая платформа есть в Releases
  3. Попробуйте конкретную версию: --version v1.0.0
  4. Для вашей платформы может ещё не быть готового бинарного файла

macOS: выполняется x64 под Rosetta (медленно)

Принудительный запуск в нативном ARM:

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

Если вы работаете в терминале WSL (например, Ubuntu на Windows), установщик PowerShell обнаружит это и попросит запустить Bash-установщик. Это обеспечит корректную установку Bedrud в среде Linux внутри WSL.

Windows: устройства ARM64 (Surface Pro и др.)

Установщик автоматически обнаруживает windows_arm64 и загружает нативный бинарный файл. Если необходимо принудительно выбрать архитектуру, загрузите конкретный zip-архив со страницы Releases.

Windows: Docker Desktop для Postgres

Если вы решили запустить Postgres в Docker во время настройки, убедитесь, что Docker Desktop установлен и запущен. Установщик попытается запустить контейнер автоматически.