This commit is contained in:
Patrick Asmus 2025-08-02 18:11:10 +02:00
parent a4a6f14878
commit 634e2fcd65
5 changed files with 187 additions and 3 deletions

66
Dockerfile Normal file
View File

@ -0,0 +1,66 @@
FROM ubuntu:22.04
ENV SINUSBOT_VERSION=current \
TS3_VERSION=3.5.6 \
TS3_ARCH=amd64 \
BOT_USER=sinusbot \
BOT_HOME=/opt/sinusbot
# Pakete installieren
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
wget bzip2 ca-certificates curl dbus iproute2 less screen xvfb \
libasound2 libegl1-mesa libfontconfig libglib2.0-0 libnss3 libpci3 \
libxcomposite-dev libxcursor1 libxdamage1 libxi6 libxkbcommon0 \
libxkbcommon-x11-0 libxss1 libxslt1.1 libxtst6 x11-xkb-utils \
libpulse0 espeak-ng mbrola mbrola-de6 \
fonts-dejavu fonts-liberation fonts-freefont-ttf \
&& update-ca-certificates && \
useradd -m -d /home/${BOT_USER} -s /bin/bash ${BOT_USER} && \
mkdir -p ${BOT_HOME} && \
chown -R ${BOT_USER}:${BOT_USER} ${BOT_HOME}
# SinusBot
WORKDIR /tmp
RUN wget -q https://www.sinusbot.com/dl/sinusbot.${SINUSBOT_VERSION}.tar.bz2 && \
tar -xjf sinusbot.${SINUSBOT_VERSION}.tar.bz2 -C ${BOT_HOME} && \
rm sinusbot.${SINUSBOT_VERSION}.tar.bz2
# TS3 Client
RUN wget https://files.teamspeak-services.com/releases/client/${TS3_VERSION}/TeamSpeak3-Client-linux_${TS3_ARCH}-${TS3_VERSION}.run && \
chmod +x TeamSpeak3-Client-linux_${TS3_ARCH}-${TS3_VERSION}.run && \
mkdir /tmp/ts3 && \
yes y | ./TeamSpeak3-Client-linux_${TS3_ARCH}-${TS3_VERSION}.run --target /tmp/ts3 && \
mkdir -p ${BOT_HOME}/teamspeak3-client && \
cp -r /tmp/ts3/* ${BOT_HOME}/teamspeak3-client/ && \
rm -rf /tmp/ts3 *.run
# Plugin verlinken
RUN mkdir -p ${BOT_HOME}/teamspeak3-client/plugins && \
cp ${BOT_HOME}/plugin/libsoundbot_plugin.so ${BOT_HOME}/teamspeak3-client/plugins/
# config.ini
COPY ./data/config.ini ${BOT_HOME}/config.ini
# Kopieren der Standard-Skripte
RUN cp -a ${BOT_HOME}/scripts ${BOT_HOME}/scripts.dist
# Rechte setzen
RUN chown -R ${BOT_USER}:${BOT_USER} ${BOT_HOME} && \
chmod +x ${BOT_HOME}/sinusbot
# entrypoint.sh ins Image kopieren
COPY ./data/bin/entrypoint.sh /opt/sinusbot/entrypoint.sh
RUN chmod +x /opt/sinusbot/entrypoint.sh
# Rechte setzen
RUN chown -R ${BOT_USER}:${BOT_USER} ${BOT_HOME} && \
chmod +x ${BOT_HOME}/sinusbot
WORKDIR ${BOT_HOME}
USER ${BOT_USER}
EXPOSE 8087
ENTRYPOINT ["/opt/sinusbot/entrypoint.sh"]
CMD ["./sinusbot"]

View File

@ -1,8 +1,93 @@
# template_repository
# 🎧 Sinusbot Docker Setup
Dieses Repository stellt ein vollständig lauffähiges **Docker-Setup für Sinusbot** zur Verfügung.
Ziel ist es, Sinusbot sauber in Containern betreiben zu können **inkl. persistenter Daten**, **Addons** und allem, was man für eine produktive Nutzung braucht.
---
Wichtig: Link für Lizenz anpassen.
## 🧐 Was ist Sinusbot?
[Sinusbot](https://www.sinusbot.com/) ist ein Musikbot für **Teamspeak 3** und **Discord**, der lokal oder serverseitig betrieben werden kann.
Er streamt Musik (z.B. MP3-Dateien oder Internet-Radios), kann per Webinterface gesteuert werden, unterstützt eine Vielzahl an Scripts zur Automatisierung und lässt sich sehr granular konfigurieren.
Sinusbot eignet sich hervorragend für Gaming-Communities, Clans oder private TS3-Server, um automatisch Musik oder Soundeffekte zu spielen, Nachrichten vorlesen zu lassen (TTS) oder einfache Chat-Automationen umzusetzen.
---
## 🚀 Schnellstart
1. Repository klonen
```bash
git clone https://git.techniverse.net/scriptos/sinusbot-docker.git
```
2. In das Projektverzeichnis wechseln
```bash
cd sinusbot-docker
```
3. Schreibrechte anpassen (Benutzer-ID ggf. anpassen)
```bash
chown -R 1000:1000 data
```
4. (Optional) eigenes Docker-Netzwerk anlegen
```bash
docker network create --subnet=172.16.72.0/24 sinusbot.dockernetwork.local
```
👉 **Hinweis:**
Falls du kein eigenes Netzwerk verwenden möchtest, kannst du diesen Schritt überspringen. Du musst außerdem den Abschnitt `networks:` in der `docker-compose.yaml` entsprechend entfernen oder anpassen.
5. Container starten
```bash
docker-compose up -d
```
6. Admin-Kennwort anzeigen lassen (wird nur nach dem ersten Start angezeigt)
```bash
docker-compose logs
```
👉 Im Log erscheint ein Hinweis wie:
```bash
Generating new bot instance with account 'admin' and password '3alMse7m'
PLEASE MAKE SURE TO CHANGE THE PASSWORD DIRECTLY AFTER YOUR FIRST LOGIN!!!
```
---
## 🔗 Webinterface aufrufen
Nach dem Start erreichst du das Webinterface unter:
```
http://<deine-server-ip>:8087
```
---
Die vollständige Dokumentation zur Einrichtung, zur Teamspeak-Integration, zu Scripts und Addons sowie zum Volume-Handling findest du in der [Dokumentation von Sinusbot](https://sinusbot.github.io/docs/).
---
## 🛠️ Hinweise
- Der Container läuft als Benutzer `1000:1000`. Falls dein Host-System abweicht, bitte entsprechend anpassen.
- Teamspeak- und Sinusbot-Container können im selben Docker-Netzwerk betrieben werden ideal, wenn du eine direkte Verbindung ohne NAT willst.
- Die Standard-Scripts aus dem Image werden beim **ersten Start automatisch** in den gemounteten Script-Ordner kopiert.
---
## 📄 Lizenz
Dieses Projekt steht unter der MIT-Lizenz.
Die Nutzung von Sinusbot selbst unterliegt der [FAQ von sinusbot.com](https://sinusbot.github.io/docs/faq/general/).
---
Mit ❤️ von [techniverse.net](https://www.techniverse.net)
@ -11,5 +96,5 @@ Wichtig: Link für Lizenz anpassen.
</p>
<p align="center">
<img src="https://assets.techniverse.net/f1/logos/small/license.png" alt="License" width="15" height="15"> <a href="./template_repository/src/branch/main/LICENSE">License</a> | <img src="https://assets.techniverse.net/f1/logos/small/matrix2.svg" alt="Matrix" width="15" height="15"> <a href="https://matrix.to/#/#community:techniverse.net">Matrix</a> | <img src="https://assets.techniverse.net/f1/logos/small/mastodon2.svg" alt="Matrix" width="15" height="15"> <a href="https://social.techniverse.net/@donnerwolke">Mastodon</a>
<img src="https://assets.techniverse.net/f1/logos/small/license.png" alt="License" width="15" height="15"> <a href="./sinusbot-docker/src/branch/main/LICENSE">License</a> | <img src="https://assets.techniverse.net/f1/logos/small/matrix2.svg" alt="Matrix" width="15" height="15"> <a href="https://matrix.to/#/#community:techniverse.net">Matrix</a> | <img src="https://assets.techniverse.net/f1/logos/small/mastodon2.svg" alt="Matrix" width="15" height="15"> <a href="https://social.techniverse.net/@donnerwolke">Mastodon</a>
</p>

9
data/bin/entrypoint.sh Normal file
View File

@ -0,0 +1,9 @@
#!/bin/bash
SCRIPTS_DIR="/opt/sinusbot/scripts"
if [ -d "$SCRIPTS_DIR" ] && [ ! "$(ls -A $SCRIPTS_DIR)" ]; then
cp -a /opt/sinusbot/scripts.dist/* "$SCRIPTS_DIR/"
fi
exec "$@"

3
data/config.ini Normal file
View File

@ -0,0 +1,3 @@
TS3Path = "/opt/sinusbot/teamspeak3-client/ts3client_linux_amd64"
ListenHost = "0.0.0.0"
DataDir = "/opt/sinusbot/data/"

21
docker-compose.yaml Normal file
View File

@ -0,0 +1,21 @@
---
services:
sinusbot:
image: repo.techniverse.net/docker-hosted/sinusbot:1.0.2
container_name: sinusbot
hostname: sinusbot
networks:
sinusbot.dockernetwork.local:
ipv4_address: 172.16.72.10
user: "1000:1000"
ports:
- "8087:8087"
volumes:
- ./data/config.ini:/opt/sinusbot/config.ini
- ./data/data:/opt/sinusbot/data
- ./data/scripts:/opt/sinusbot/scripts
restart: unless-stopped
networks:
sinusbot.dockernetwork.local:
external: true