Развертывание бота MagicTradeBot через Docker или Systemd

  • Home
  • Documentation
  • Развертывание бота через 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

# Финальный образ
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: Создайте unit-файл 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