Quick start
No need to clone the repo. Download the compose file and the example settings:
mkdir mendil && cd mendilcurl -fsSLO https://raw.githubusercontent.com/ulaski/mendil/main/docker-compose.ymlcurl -fsSL -o .env https://raw.githubusercontent.com/ulaski/mendil/main/.env.exampleEdit .env and set at least:
TS3CLIENT_LICENSE=accept # accepts the TeamSpeak client license, see LegalTS3_HOST=ts.example.com # your serverTS3_SERVER_PASSWORD= # if your server has oneThen start it:
docker compose up -ddocker compose logs -fThe first start downloads the TeamSpeak client (~110 MB). Once you see connected to server, join Mendil’s channel and type !help.
Without Compose: a single docker run
docker run -d --name mendil --restart unless-stopped --shm-size 256m \ -e TS3CLIENT_LICENSE=accept \ -e TS3_HOST=ts.example.com \ -e TS3_SERVER_PASSWORD= \ -v mendil-data:/home/node/.ts3client \ -v mendil-client:/opt/ts3client \ ghcr.io/ulaski/mendil:latestAdd --platform linux/amd64 on an ARM machine.
From source
git clone https://github.com/ulaski/mendil.gitcd mendilcp .env.example .env # then edit itdocker compose up -d --buildWith the native engine
In docker-compose.yml, use the native image and drop what only Classic needs:
services: mendil: image: ghcr.io/ulaski/mendil:native container_name: mendil restart: unless-stopped env_file: .env volumes: - ts3client-data:/home/node/.ts3client
volumes: ts3client-data:TS3CLIENT_LICENSE isn’t needed, because no TeamSpeak client is downloaded. Everything else in .env stays the same; if your .env sets VOICE_BACKEND=classic, remove that line.
From source, add a build section to the same service, so Compose builds the native image instead of downloading it:
build: context: . target: nativeand start it with docker compose up -d --build.
Next: tell Mendil where your TeamSpeak server is if it runs on the same machine, and set up the channel.
