В этом руководстве объясняется, как скомпилировать и развернуть экземпляр бота 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 и др.) для мониторинга активности бота