Esta guía explica cómo compilar y desplegar una instancia del bot de MagicTradeBot utilizando dos métodos compatibles: Docker para entornos contenerizados y Systemd para la gestión tradicional de servicios en Linux.
🛠️ 1. Compilar la instancia del bot (Golang)
El núcleo del bot de MagicTradeBot está escrito en Go y puede compilarse para diferentes entornos.
🔧 Compilar para uso local (Systemd)
go build -o magictradebot main.go
Esto generará un ejecutable llamado magictradebot
en el directorio actual.
🐳 Compilar y construir para Docker
Crea un Dockerfile
en la raíz del proyecto:
# Dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o magictradebot main.go
# Imagen final
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/magictradebot .
COPY config.yaml .
CMD ["./magictradebot"]
Luego construye la imagen:
docker build -t magictradebot-bot-instance .
🐳 2. Desplegar la instancia del bot usando Docker
Paso 1: Preparar configuración
Asegúrate de que el archivo config.yaml
esté en el mismo directorio o montado durante la ejecución.
Paso 2: Ejecutar el contenedor
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
para ver los registros en tiempo real.
Opcional: 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. Desplegar la instancia del bot usando Systemd
Paso 1: Mover el ejecutable
sudo mv magictradebot /usr/local/bin/
sudo chmod +x /usr/local/bin/magictradebot
Paso 2: Crear archivo de unidad Systemd
sudo nano /etc/systemd/system/magictradebot.service
[Unit]
Description=Instancia de 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
Paso 3: Habilitar e iniciar el servicio
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable magictradebot
sudo systemctl start magictradebot
Ver registros
journalctl -u magictradebot -f
✅ Recomendaciones
- 📁 Mantén un archivo
config.yaml
separado por cada instancia del bot para facilitar la escalabilidad - 🔐 Usa HTTPS para la API y gestiona los secretos de forma segura mediante variables de entorno
- 📦 Da preferencia a Docker por su aislamiento y portabilidad
- 🛡️ Supervisa la actividad del bot mediante herramientas de registro integradas (LogDNA, Grafana Loki, etc.)