I've had a personal TeamSpeak server running for some days now on a DigitalOcean droplet. In case you are not aware of TeamSpeak, it's a popular voice chat among gamers. The voice quality is very good with a low latency, generally much better compared to e.g. Steam voice chat, Skype, Hangouts, Teams, or the like. A big plus for the privacy minded is also that your conversations won't get recorded anywhere (taking their word for it) and you don't need to create any accounts. It's free for 32 concurrent users, so you can have pretty large conversations going on without having to buy a license. It's proprietary software though, so you must accept their license to use it.

Setting it up

To set it up I used the following Docker compose configuration in the docker-compose.yml (see also the official docker image page):

version: '3.7'

services:

  teamspeak:
    image: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    environment:
      TS3SERVER_LICENSE: accept
    volumes:
      - ts_vol:/var/ts3server/

volumes:
  ts_vol: {}

Here we have configured it to save all its data to docker volume named ts_vol. It will use an sqlite3 database for storing configurations which is good enough for my purposes here. To run it just type:

docker-compose up -d

After running it you need to fetch a server admin privilege key from the logs to log in to the server as an admin. If you use the above configuration, you can check the logs with:

docker-compose logs teamspeak

I had something similar to this:

------------------------------------------------------------------
                      I M P O R T A N T                           
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain 
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
------------------------------------------------------------------

Then just copy the token and connect to your server ip with the TeamSpeak client. Provide the token from the logs and your client will become an admin user for the server.

Basic configurations

To set a password for your server so that random people don't end up there, you need to right click the name of the server (above the Default Channel) and choose "Edit virtual server" from the menu. There you can setup a password and rename your server to your liking.

If you ever want to make another client an admin (e.g. your Windows client), you can choose "Privilege keys" from the "Permissions" menu and create a new admin privilege key. Then connect with your other client and choose "Permissions" -> "Use privilege key".

That's it. You now have a personal voice chat server that you and your friends can easily connect to.