Bricksync 24/7: Autostart & Ausfallsicherheit
In diesem fortgeschrittenen Tutorial ersetzen wir die einfache screen-Methode durch einen echten Systemdienst (Systemd) in Kombination mit tmux. Bricksync startet nach einem Server-Neustart völlig automatisch und fängt Abstürze von selbst wieder auf.
Community Contribution
Die Idee und die grundlegenden Skripte für dieses Setup stammen direkt aus der Community. Ein riesiges Dankeschön für diese geniale Optimierung geht an:
Sabine Schmidt (Discord: BieneBiene#CentBricks)
Supportet sie gerne und besucht ihren Store:
CentBricks auf BrickLink
1 Vorbereitung (tmux installieren)
Dieses Tutorial baut direkt auf unserem Basis-Installations-Guide auf. Wir gehen davon aus, dass Bricksync bereits im Verzeichnis des Benutzers bricksync liegt.
Zuerst müssen wir das Programm tmux auf dem Server installieren. Logge dich in PuTTY als root ein und führe folgenden Befehl aus:
sudo apt update && sudo apt install tmux -y 2 Das Start-Skript anlegen
Wechsle nun zum Benutzer bricksync. Wir erstellen ein Skript, das die tmux-Session sauber im Hintergrund öffnet.
su - bricksync
nano /home/bricksync/start_bricksync.sh Füge folgenden Code in den Editor ein, speichere mit STRG + O (dann Enter) und beende mit STRG + X:
#!/bin/bash
# ==============================================================================
# Script: start_bricksync.sh
# Description: Startet Bricksync in einer detached tmux-Session.
# Prüft zuvor, ob bereits eine Session existiert, um Doppel-
# ausführungen zu vermeiden.
# ==============================================================================
SESSION="bricksync"
APP="/home/bricksync/bricksync-linux64/bricksync"
if ! tmux has-session -t "$SESSION" 2>/dev/null; then
tmux new-session -d -s "$SESSION" "$APP"
echo "Bricksync in tmux-Session '$SESSION' gestartet."
else
echo "Die tmux-Session '$SESSION' läuft bereits."
fi Mache das Skript anschließend ausführbar:
chmod +x /home/bricksync/start_bricksync.sh 3 Den Systemd-Service einrichten
Damit der Server weiß, dass er dieses Skript wie einen Systemdienst behandeln soll, legen wir eine Service-Datei an. Achtung: Dafür musst du wieder als root angemeldet sein.
exit
nano /etc/systemd/system/bricksync.service Füge diesen Block in die Datei ein und speichere wieder mit STRG + O und STRG + X:
[Unit]
Description=Bricksync 24/7 Service (tmux)
After=network.target
[Service]
Type=forking
User=bricksync
Group=bricksync
WorkingDirectory=/home/bricksync/bricksync-linux64
ExecStart=/home/bricksync/start_bricksync.sh
ExecStop=/usr/bin/tmux kill-session -t bricksync
Restart=always
RestartSec=5
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Environment=HOME=/home/bricksync
[Install]
WantedBy=multi-user.target Teile dem System mit, dass es neue Dienste gibt, und aktiviere den Autostart:
sudo systemctl daemon-reload
sudo systemctl enable bricksync.service
sudo systemctl start bricksync.service 4 Bedienung & tmux-Steuerung
Bricksync läuft nun ausfallsicher im Hintergrund. Wenn du Befehle (wie z.B. blmaster) eingeben möchtest, musst du dich in die laufende tmux-Session einklinken. Melde dich dazu als User bricksync an.
su - bricksync
tmux attach -t bricksync Wenn du fertig bist, darfst du das Fenster nicht einfach mit dem Schließen-X beenden oder STRG+C drücken!
Um die Session im Hintergrund weiterlaufen zu lassen, drücke nacheinander:
STRG + B (beide loslassen) und dann D (für "detach").
5 Lokales Backup sichern
Bevor wir im nächsten Schritt alte Dateien auf dem Server automatisch löschen lassen, solltest du diese lokal auf deinem Rechner sichern. So hast du alle Order-Dateien (.bsx) und Backups jederzeit griffbereit, falls du im Shop Ungereimtheiten ("Lost Parts") prüfen musst.
Für Mac / Linux Nutzer:
Öffne das Terminal auf deinem lokalen Rechner (nicht auf dem Server) und nutze diesen Befehl, um den gesamten Daten-Ordner auf deinen Schreibtisch zu ziehen:
rsync -avz -e ssh root@<DEINE_SERVER_IP>:/home/bricksync/bricksync-linux64/data/ ~/Desktop/Bricksync-Backup/ (Ersetze <DEINE_SERVER_IP> durch die echte IP-Adresse deines Servers.)
Wenn du kein Windows Subsystem for Linux (WSL) nutzt, lade dir einfach das kostenlose Programm WinSCP oder FileZilla herunter. Verbinde dich mit deinen Server-Daten und ziehe die Ordner
backups und orders einfach per Drag & Drop auf deinen Desktop.
6 Bonus: Automatisches Aufräumen
Damit die Backups und Order-Dateien von Bricksync nicht über Monate die Festplatte deines Servers füllen, kannst du dieses Aufräum-Skript nutzen.
nano /home/bricksync/cleanup_bricksync.sh #!/bin/bash
BASE_DIR="/home/bricksync/bricksync-linux64/data"
BACKUPS_DIR="$BASE_DIR/backups"
ORDERS_DIR="$BASE_DIR/orders"
# Dateien/Ordner, die älter als 7 Tage sind, werden gelöscht.
DAYS_TO_KEEP=7
echo "=== Bricksync Cleanup gestartet: $(date) ==="
# 1. Alte Backup-Ordner löschen
find "$BACKUPS_DIR" -mindepth 1 -maxdepth 1 -type d -mtime +$DAYS_TO_KEEP -exec rm -rf {} \;
# 2. Alte Order-Dateien (.bsx) löschen
find "$ORDERS_DIR" -type f -name "*.bsx" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;
echo "Speicherplatz nach der Bereinigung:"
df -h "$BASE_DIR"
echo "=== Bricksync Cleanup abgeschlossen ===" Skript ausführbar machen und testen:
chmod +x /home/bricksync/cleanup_bricksync.sh
./cleanup_bricksync.sh Tipp: Du kannst dieses Skript manuell ausführen, nachdem du dir dein lokales Backup aus Schritt 5 gezogen hast. Alternativ kannst du es in einen Cronjob packen, wenn du dir dein Backup ohnehin jede Woche vollautomatisch lokal sicherst.