Bedrud مستندات

نصب با یک دستور برای همه پلتفرم‌ها. بدون نیاز به sudo — در دایرکتوری خانه شما نصب می‌شود.

برای تنظیم سرور پس از نصب، به شروع سریع ببینید. برای مدیران بسته، Docker و سایر روش‌ها، به نصب سرور مراجعه کنید.


چه کاری انجام می‌دهد

۱. سیستم‌عامل، معماری پردازنده، گونه‌های پلتفرم (Rosetta 2/WSL) و سیستم init (systemd/OpenRC/SysV/کانتینر) را تشخیص می‌دهد ۲. باینری صحیح را از انتشارات GitHub دانلود می‌کند (یا با --build از کد منبع می‌سازد) ۳. در ~/bin یا %USERPROFILE%\bin نصب می‌کند (قابل تنظیم از طریق --install-dir) ۴. دایرکتوری نصب را به PATH اضافه می‌کند (فایل‌های shell برای Bash، رجیستری برای Windows) ۵. Windows و Linux: یک گفتگوی تعاملی برای پیکربندی TLS، Postgres و ایجاد اولین کاربر مدیر ارائه می‌دهد ۶. مراحل بعدی را چاپ می‌کند


پیش‌نیازها

پلتفرموابستگی‌ها
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

shell را دوباره بارگذاری کنید، سپس تأیید کنید:

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

پرچم‌ها و گزینه‌ها

نصب‌کننده Bash

Usage: curl -fsSL https://bedrud.org/install.sh | bash -s -- [options]
پرچمپیش‌فرضتوضیحات
--install-dir <dir>~/binمحل قرارگیری باینری
--version <ver>latestثابت نگه داشتن در یک نسخه (مثلاً v1.2.0)
--buildخاموشساخت از کد منبع به جای دانلود انتشار
--branch <name>masterشاخه Git برای کلون (نیاز به --build)
--no-setupخاموشفقط دانلود باینری، رد کردن نصب تعاملی سرور
--skip-shellخاموشتغییر فایل‌های RC shell یا 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
 
# ساخت از یک fork
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 / اتوماسیون — رد کردن تنظیمات shell و نصب تعاملی
curl -fsSL https://bedrud.org/install.sh | bash -s -- --skip-shell --no-setup

نصب‌کننده PowerShell

Usage: 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 (برای forks یا mirrorها)
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 مقدار ۱ برمی‌گرداند. اثر: darwin_amd64 را به darwin_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 استفاده کنید.


پشتیبانی از سیستم init

نصب‌کننده سیستم init را خودکار تشخیص می‌دهد و فایل‌های سرویس مناسب برای راه‌اندازی سرور ایجاد می‌کند:

سیستم initتشخیصفایل‌های سرویسمدیریت
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. محیط‌های کانتینری به‌صورت خودکار تشخیص داده می‌شوند — نصب فایل سرویس نادیده گرفته شده و دستورالعمل شروع دستی چاپ می‌شود.


جریان نصب

۱. بررسی Windows — MINGW/MSYS/CYGWIN در Bash تشخیص داده شد؟ هدایت به PowerShell. ۲. بررسی WSL — WSL در PowerShell تشخیص داده شد؟ هدایت به Bash. ۳. بررسی وابستگی — Bash: curl + tar. PowerShell: (هیچکده پیش‌فرض). ساخت: git + go + bun + make. ۴. تشخیص پلتفرم — سیستم‌عامل + معماری از طریق uname (Bash) یا RuntimeInformation (PowerShell). ۵. نصب باینری — یکی از دو حالت:

  • حالت دانلود (پیش‌فرض): دانلود و استخراج zip/tar.xz.
  • حالت ساخت (--build): git clone، bun install، go mod download، make build. ۶. تأیید — اجرای bedrud --version. ۷. بررسی PATH — قبلاً در PATH است؟ رد شود. در غیر این صورت → تغییر فایل RC (Bash) یا رجیستری (PowerShell). ۸. نصب تعاملی — گفتگو برای دامنه، TLS، Postgres و ایجاد کاربر مدیر. ۹. تمام — چاپ موفقیت + URL دسترسی.

فرمت URL دانلود: github.com/{repo}/releases/{ver}/bedrud_{TARGET}.tar.xz

حالت ساخت از github.com/{repo} کلون کرده و make build را اجرا می‌کند (خروجی: server/dist/bedrud).


تنظیمات PATH و Shell

وقتی --skip-shell تنظیم نشده باشد، نصب‌کننده دایرکتوری نصب را به PATH شما اضافه می‌کند.

Shellفایل 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 لازم نیست.

بارگذاری مجدد shell پس از نصب:

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

نصب آفلاین / Air-Gapped

دانلود و انتقال

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

Mirror خودمیزبانی شده

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

باینری مستقیم

از انتشارات دانلود کنید، استخراج کنید، به یک دایرکتوری در 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 از طریق System Properties → Environment Variables

عیب‌یابی

command not found: bedrud

source ~/.bashrc    # بارگذاری مجدد shell
echo $PATH | tr ':' '\n' | grep "$HOME/bin"  # بررسی PATH

اگر وجود ندارد:

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

Failed to download bedrud

۱. اتصال اینترنت را بررسی کنید ۲. تأیید کنید که هدف در انتشارات وجود دارد ۳. یک نسخه خاص را امتحان کنید: --version v1.0.0 ۴. ممکن است پلتفرم شما باینری از پیش ساخته شده نداشته باشد

macOS: اجرای x64 تحت Rosetta (کند)

اجبار به ARM بومی:

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

ویندوز: “running scripts is disabled”

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

ویندوز: شناسایی WSL

اگر در محیط WSL (مثلاً اوبونتو روی ویندوز) هستید، نصب‌کننده PowerShell این را تشخیص داده و از شما می‌خواهد نصب‌کننده Bash را اجرا کنید. این کار تضمین می‌کند که بدرود به درستی برای محیط لینوکس داخل WSL نصب شود.

ویندوز: دستگاه‌های ARM64 (Surface Pro و غیره)

نصب‌کننده به طور خودکار windows_arm64 را شناسایی کرده و فایل باینری نیتیو را دانلود می‌کند. اگر نیاز دارید معماری خاصی را اجبار کنید، فایل zip مربوطه را از نسخه‌ها دانلود کنید.

ویندوز: Docker Desktop برای Postgres

اگر در طول تنظیمات انتخاب کردید که Postgres در داکر اجرا شود، مطمئن شوید که Docker Desktop نصب و در حال اجرا است. نصب‌کننده سعی می‌کند کانتینر را به طور خودکار راه‌اندازی کند.