Distribuzione del bot MagicTradeBot tramite Docker o Systemd

Questa guida spiega come compilare e distribuire un’istanza del bot MagicTradeBot utilizzando due metodi supportati: Docker per ambienti containerizzati e Systemd per la gestione tradizionale dei servizi su Linux.


🛠️ 1. Compilazione dell'istanza bot (Golang)

Il core del bot di MagicTradeBot è scritto in Go e può essere compilato per diversi ambienti.

🔧 Compilare per uso locale (Systemd)

go build -o magictradebot main.go

Questo produrrà un eseguibile chiamato magictradebot nella directory corrente.

🐳 Compilare e creare per Docker

Crea un file Dockerfile nella root del tuo progetto:

# Dockerfile
FROM golang:1.22-alpine AS builder

WORKDIR /app
COPY . .

RUN go build -o magictradebot main.go

# Immagine finale
FROM alpine:latest

WORKDIR /app
COPY --from=builder /app/magictradebot .
COPY config.yaml .

CMD ["./magictradebot"]

Quindi costruisci l'immagine:

docker build -t magictradebot-bot-instance .

🐳 2. Distribuzione dell'istanza bot tramite Docker

Passaggio 1: Prepara la configurazione

Assicurati che il file config.yaml si trovi nella stessa directory o venga montato durante l'esecuzione.

Passaggio 2: Avvia il container

docker run -d \
  --name=bot-bybit-01 \
  -v $(pwd)/config.yaml:/app/config.yaml \
  --restart=always \
  magictradebot-bot-instance

Usa docker logs -f bot-bybit-01 per visualizzare i log in tempo reale.

Facoltativo: 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. Distribuzione dell'istanza bot tramite Systemd

Passaggio 1: Sposta l'eseguibile

sudo mv magictradebot /usr/local/bin/
sudo chmod +x /usr/local/bin/magictradebot

Passaggio 2: Crea un file di servizio Systemd

sudo nano /etc/systemd/system/magictradebot.service
[Unit]
Description=Istanza 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

Passaggio 3: Abilita e avvia il servizio

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable magictradebot
sudo systemctl start magictradebot

Controlla i log

journalctl -u magictradebot -f

✅ Raccomandazioni

  • 📁 Utilizza un file config.yaml separato per ogni istanza per facilitare la scalabilità
  • 🔐 Usa HTTPS per l’API e gestisci i segreti tramite variabili d’ambiente sicure
  • 📦 Preferisci Docker per isolamento e portabilità
  • 🛡️ Monitora l'attività del bot tramite strumenti di logging integrati (LogDNA, Grafana Loki, ecc.)

📎 Related Topics