تشرح هذه الوثيقة كيفية تجميع ونشر مثيل بوت MagicTradeBot باستخدام طريقتين مدعومتين: Docker للبيئات المعتمدة على الحاويات وSystemd لإدارة الخدمات التقليدية في أنظمة Linux.
🛠️ 1. تجميع مثيل البوت (Golang)
تم كتابة نواة البوت في MagicTradeBot بلغة Go ويمكن تجميعها لبيئات مختلفة.
🔧 التجميع محليًا (Systemd)
go build -o magictradebot main.go
سينتج عن ذلك ملف تنفيذي باسم magictradebot
في المجلد الحالي.
🐳 التجميع والبناء لـ Docker
قم بإنشاء ملف Dockerfile
في جذر المشروع:
# Dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o magictradebot main.go
# Final image
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/magictradebot .
COPY config.yaml .
CMD ["./magictradebot"]
ثم قم ببناء الصورة:
docker build -t magictradebot-bot-instance .
🐳 2. نشر مثيل البوت باستخدام Docker
الخطوة 1: إعداد التهيئة
تأكد من وجود ملف config.yaml
في نفس المجلد أو تم توصيله أثناء التشغيل.
الخطوة 2: تشغيل الحاوية
docker run -d \
--name=bot-bybit-01 \
-v $(pwd)/config.yaml:/app/config.yaml \
--restart=always \
magictradebot-bot-instance
استخدم docker logs -f bot-bybit-01
لعرض السجلات في الوقت الفعلي.
اختياري: Docker Compose
version: '3.9'
services:
tradingbot:
image: magictradebot-bot-instance
container_name: bot-bybit-01
restart: always
volumes:
- ./config.yaml:/app/config.yaml
🧩 3. نشر مثيل البوت باستخدام Systemd
الخطوة 1: نقل الملف التنفيذي
sudo mv magictradebot /usr/local/bin/
sudo chmod +x /usr/local/bin/magictradebot
الخطوة 2: إنشاء ملف وحدة Systemd
sudo nano /etc/systemd/system/magictradebot.service
[Unit]
Description=مثيل MagicTradeBot
After=network.target
[Service]
ExecStart=/usr/local/bin/magictradebot
WorkingDirectory=/opt/magictradebot
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
User=ubuntu
[Install]
WantedBy=multi-user.target
الخطوة 3: تفعيل وتشغيل الخدمة
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable magictradebot
sudo systemctl start magictradebot
عرض السجلات
journalctl -u magictradebot -f
✅ توصيات
- 📁 احتفظ بملف
config.yaml
منفصل لكل مثيل بوت لضمان التوسع - 🔐 استخدم HTTPS لـ API وإدارة الأسرار باستخدام متغيرات البيئة
- 📦 يُفضل استخدام Docker للعزل وقابلية النقل
- 🛡️ راقب نشاط البوت باستخدام أدوات تسجيل متكاملة مثل LogDNA أو Grafana Loki