Bedrud التوثيق

تثبيت بأمر واحد على جميع المنصات. بدون sudo — يُثبّت في مجلد المنزل الخاص بك.

لإعداد الخادم بعد التثبيت، راجع البداية السريعة. لمديري الحزم وDocker والطرق الأخرى، راجع تثبيت الخادم.


ما يفعله المُثبّت

١. يكتشف نظام التشغيل وبنية المعالج وتفاوتات المنصة (Rosetta ٢/WSL) ونظام التهيئة (systemd/OpenRC/SysV/حاوية) ٢. يُنزّل الملف الثنائي الصحيح من إصدارات GitHub (أو يبني من المصدر مع --build) ٣. يُثبّت في ~/bin أو %USERPROFILE%\bin (قابل للتخصيص عبر --install-dir) ٤. يُضيف مجلد التثبيت إلى PATH (ملفات الصدفة لـ 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

أعد تحميل الصدفة، ثم تحقّق:

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)
--buildoffبناء من المصدر بدلاً من تنزيل إصدار
--branch <name>masterفرع Git للنسخ (يتطلب --build)
--no-setupoffتنزيل البرنامج فقط، تخطي الإعداد التفاعلي للخادم
--skip-shelloffعدم تعديل ملفات 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

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~/binBash فقطتجاوز مجلد التثبيت (مثل --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 ٢ تلقائي
linux_amd64Linuxx86_64ملف ثنائي ثابت — جميع التوزيعات
linux_arm64LinuxARM64ملف ثنائي ثابت — جميع التوزيعات
freebsd_amd64FreeBSDx86_64قياسي
windows_amd64Windowsx86_64قياسي
windows_arm64WindowsARM64قياسي

اكتشاف الحالات الخاصة

Rosetta ٢ (macOS Intel على Apple Silicon)

الاكتشاف: sysctl -n sysctl.proc_translated يُعيد ١. التأثير: يبدّل 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. بيئات الحاويات تُكتشف تلقائيًا — يتم تخطي تثبيت ملفات الخدمة مع طباعة تعليمات التشغيل اليدوي.


تدفق التثبيت

١. فحص 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 — موجود بالفعل؟ يتخطى. وإلا → يعدّل ملف RC (Bash) أو السجل (PowerShell). ٨. الإعداد التفاعلي — حوار لتكوين النطاق و TLS و Postgres وإنشاء مستخدم مسؤول. ٩. الانتهاء — طباعة رسالة النجاح + عنوان 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

الملف الثنائي المباشر

نزّل من الإصدارات، واستخرج، وانقل إلى مجلد في 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

١. تحقق من اتصال الإنترنت ٢. تأكد من وجود الهدف في الإصدارات ٣. جرّب إصداراً محدداً: --version v1.0.0 ٤. قد لا تتوفر نسخة مُبنية مسبقاً لمنصتك بعد

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 المحدد من الإصدارات.

Windows: Docker Desktop لـ Postgres

إذا اخترت تشغيل Postgres في Docker أثناء الإعداد، فتأكد من تثبيت Docker Desktop وتشغيله. سيحاول المُثبّت بدء تشغيل الحاوية تلقائياً.