BalanceR setzt Python Version 3.8 oder neuer voraus. Im Kern verwendet BalanceR die ccxt Bibliothek. Diese gilt es mittels pip zu installieren:
python -m pip install -r requirements.txt
Sollen mehrere BalanceR Instanzen auf demselben Server betrieben werden, so wird die Installation von tmux empfohlen.
apt install tmux
Vor dem erstmaligen Start ist die Konfigurationsdatei config.txt mit den gewünschten API Keys und Einstellungen zu ergänzen. Es können mehrere config Dateien erstellt und dieselbe balancer.py Datei zum Start verwendet werden.
Der Name der zu verwendenden Konfigurationsdatei kann als Parameter, ohne der Dateierweiterung (.txt), übergeben werden:
./balancer.py test
Fehlt der Parameter, so fragt das Script bei jedem Start nach dem Namen der Konfigurationsdatei. Diesen gilt es ohne Dateierweiterung (.txt) einzugeben. Wird dieser Schritt übersprungen, wird standardmässig die Konfiguration von config.txt verwendet.
Soll ein oder mehrere Bot Instanzen mir Auto Quote (MM
oder MMRange
) betrieben werden, so empfiehlt es sich, zusätzlich eine Mayer Instanz laufen zu lassen.
Mit Hilfe des Watchdog-Scrpits osiris lässt sich eine beliebige Anzahl Bot Instanzen überwachen. Sollte eine Instanz nicht mehr laufen, wird sie automatisch neu gestartet. Daneben stellt der Watchdog auch sicher, dass stets genügend freier Speicher vorhanden ist.
Dazu sollte der Variable workingDir der absolute Pfad zum balancer.py Script angegeben werden, scriptName sollte balancer.py lauten. Voraussetzung ist, dass die balancer.py Instanzen innerhalb von tmux Sessions ausgeführt werden, welche gleich heissen wie die entsprechende Konfigurationsdatei:
Wenn also eine Konfigurationsdatei beispielsweise test1.txt heisst, dann sollte balancer.py test1 innerhalb einer tmux Session namens test1 laufen.
Damit osiris.sh die BalanceR Instanzen kontinuierlich überwachen kann, muss ein entsprechender Cronjob eingerichtet werden:
*/5 * * * * /home/bot/balancer/osiris.sh
Die beiden Dateien balancer.py und osiris.sh müssen vor dem ersten Start mittels chmod +x
ausführbar gemacht werden.
Jede Instanz erstellt und schreibt in eine eigene Logdatei. Diese heisst so wie die entsprechende Konfigurationsdatei, beindet sich im log
Verzeichnis endet aber auf .log:
test1.log
Fehlt diese Datei, dann konnte balancer.py nicht gestartet werden. Die nächste Anlaufstelle wäre die entsprechende tmux Session:
tmux a -t test1
Container builden
docker build -t retgal/balancer:latest .
Gebuildeten BalanceR mit der externen config test.txt starten
docker run -it -v /opt/data:/opt/data -e BALANCER_CONFIG="/opt/data/test" --name balancer_test retgal/balancer:latest
Oder dasselbe ohne zu builden mit dem vorgefertigten von Dockerhub:
docker pull dockerocker/balancer
docker run -it -v /opt/data:/opt/data -e BALANCER_CONFIG="/opt/data/test" --name balancer_test dockerocker/balancer:latest
Oder als Einzeiler mittels docker-compose:
docker-compose up