نشر بوت MagicTradeBot باستخدام Docker أو Systemd

تشرح هذه الوثيقة كيفية تجميع ونشر مثيل بوت 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

📎 Related Topics