Two decisions before you install anything
Your group wants a voice channel that is always there, sounds clean and belongs to you. Getting there takes two choices: which TeamSpeak server you run, and which licence you run it under. Get those two right and the rest is a short list of commands.
TeamSpeak 3 or TeamSpeak 6: which should you run?
Run TeamSpeak 3 Server if people will rely on it. It is the build teamspeak.com offers as its regular server download, version 3.13.8, with builds for Linux, FreeBSD, macOS and Windows.
The TeamSpeak 6 Server is real and you can download it, but on TeamSpeak's own terms it is a beta. Its newest release on GitHub when we wrote this was 6.0.0-beta13.1, from 22 September 2026. Here is what the README tells you before you commit:
- Features are still missing from the self-hosted build, and some of the new ones may be unstable or change.
- It carries a beta licence for 32 slots, which TeamSpeak renews every two months while the beta lasts. You cannot get a bigger one yet.
- A licence bought for TeamSpeak 3 cannot be used on it, and there is currently no way to move a TeamSpeak 3 server's data across.
So TeamSpeak 6 is a good thing to try on the side. It is not yet the place to move a busy community whose channels and permissions took years to build.
How many people can talk for free?
Thirty-two at once, on one virtual server, if your group is non-commercial. TeamSpeak's licence calls this tier Unlicensed and sets no time limit on it, and it comes inside the server download. Go past one virtual server or 32 slots and the quickstart guide says you need a licence file, or the server will not start or will run with limited functions.
The same licence text describes the bigger options: a free Non-Profit licence (512 slots across two virtual servers, six months at a time, non-commercial only), a paid annual licence of up to two virtual servers and 1,024 slots, and a separate model for hosting providers who resell slots. Licences come from TeamSpeak, not with your server. One date to note: the 3.13.7 changelog says the default licence embedded in the server is valid until 1 July 2027.
Up and running in an evening
These steps assume Ubuntu or Debian and a user with sudo. Read the LICENSE file in the download first: the empty .ts3server_license_accepted file is how you tell the server you accept it.
- Switch the firewall on first, letting in only SSH and the two ports your friends need, so nothing else is reachable even for a minute.
- Make a separate account for the server. TeamSpeak's start script warns you, in capitals, not to run it as root.
- Download version 3.13.8 into that account's folder and unpack it.
- Start it once by hand, with the admin interface kept on the machine itself, and watch the output. Two things appear: a ServerQuery login (
serveradminplus a password) and a line beginningtoken=. - Open your TeamSpeak client, connect to your server's address, and paste that token into the privilege key dialog. You are now Server Admin.
- Press Ctrl+C, then set it up to start by itself, as in the next block.
sudo apt install -y curl bzip2 ufw
sudo ufw allow OpenSSH
sudo ufw allow 9987/udp
sudo ufw allow 30033/tcp
sudo ufw enable
sudo useradd --system --create-home --home-dir /srv/teamspeak --shell /usr/sbin/nologin teamspeak
sudo -u teamspeak sh -c 'cd /srv/teamspeak && curl -fLO https://files.teamspeak-services.com/releases/server/3.13.8/teamspeak3-server_linux_amd64-3.13.8.tar.bz2 && tar xjf teamspeak3-server_linux_amd64-3.13.8.tar.bz2 --strip-components=1 && touch .ts3server_license_accepted'
# first run: note the serveradmin password and the token=... line
sudo -u teamspeak /srv/teamspeak/ts3server_minimal_runscript.sh query_protocols=ssh query_ssh_ip=127.0.0.1 query_ssh_port=10022
sudo tee /etc/systemd/system/teamspeak.service >/dev/null <<'EOF'
[Unit]
Description=TeamSpeak 3 Server
After=network-online.target
Wants=network-online.target
[Service]
User=teamspeak
ExecStart=/srv/teamspeak/ts3server_minimal_runscript.sh query_protocols=ssh query_ssh_ip=127.0.0.1 query_ssh_port=10022
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now teamspeak
Write the serveradmin password down somewhere safe before you stop the first run. It is printed only once, and TeamSpeak's guide says getting a new one means wiping the server's database, channels and permissions included.
The two doors your friends need
Your friends only ever need two ports. Everything else the server opens is for you, the admin, and should stay shut to the outside world.
- UDP 9987: the voice itself. If this is blocked, nobody can connect.
- TCP 30033: file transfers, which covers avatars, server icons and files in channels. If this is blocked, people connect but uploads fail.
- TCP 10011, 10022 and 10080: ServerQuery, the remote-control interface, over plain telnet, SSH and HTTP. Out of the box, raw and SSH are switched on and listen on every address. The first start and the service above both switch raw off and keep SSH on 127.0.0.1, so you reach it by logging in to the machine first.
Guard the key that makes someone admin
The privilege key is a single-use ticket to the Server Admin group, and it goes to whoever uses it first. It is printed to the screen and also saved in the server's logs folder. If you share a log while asking for help, or someone else can read that folder, they could claim your server before you do.
So redeem it right away, from your own client, and keep the logs to yourself. To make more admins later, sign in to ServerQuery with the serveradmin account and create a new key with privilegekeyadd, then send it to that person privately.
Curious about TeamSpeak 6? Try it next to nothing important
TeamSpeak recommends Docker for the 6 beta. It uses the same voice and file ports, so try it on a machine that is not running your TeamSpeak 3 server, or stop that one first. The privilege key appears in the container's log.
docker run -d --name teamspeak-server \
-p 9987:9987/udp \
-p 30033:30033 \
-e TSSERVER_LICENSE_ACCEPTED=accept \
-v teamspeak-data:/var/tsserver/ \
teamspeaksystems/teamspeak6-server:latest
docker logs teamspeak-server
Since beta13, the 6 server lets a guest use ServerQuery without a password, limited by the Guest Server Query group's permissions. The command above does not publish the query ports. If you ever do, set TSSERVER_QUERY_SSH_ALLOW_GUEST=0 and TSSERVER_QUERY_HTTP_ALLOW_GUEST=0.
Keeping it healthy
- Updates. TeamSpeak's upgrade guide is simple: stop the server, copy the new release's files over the old ones, start it again. Version 3.13.8 fixed three denial-of-service vulnerabilities, so stay current.
- Backups. Your channels, groups and permissions live in
ts3server.sqlitedbin the server folder. Stop the service, copy the whole folder, and keep that copy on another machine. - Location. Voice feels best when the server is close to the people talking. Choose the city nearest most of your group.
The server that fits
TeamSpeak lists no CPU or memory requirement for its server, only a reasonably modern Linux, so you choose by place and by what else you want the box to do. Our game servers are whole HPE enterprise machines, each on a network port that is not shared with any other customer at the access switch, and that port is unmetered: nothing counts your voice traffic. Help is there by live chat, email and phone, 24 hours a day.
Choose a city on the locations page (Bucharest, Amsterdam, New York, Miami or San Francisco) and install Ubuntu or Debian from our Linux servers. A server already in the rack is ready to log in to about 30 minutes after your order is approved; payment verification can add to that, and a machine built to order takes longer. On rack servers and blades you also get a remote console, handy if a firewall rule ever locks you out.
Be honest with yourself about the job. A handful of friends who never want to think about updates may not need a whole server. Wanting more than 32 slots on TeamSpeak 6 is also something no machine fixes: TeamSpeak has not started selling TS6 licences yet.
Questions people ask
- Do I have to pay TeamSpeak to run my own server?
- Not for a non-commercial group of up to 32 people on one virtual server. That is covered by the free tier TeamSpeak calls Unlicensed, part of the licence included with TeamSpeak 3 Server. A business, or a group that needs more slots or servers, needs a licence from TeamSpeak.
- Why can my friends talk but not upload an avatar?
- Voice runs over UDP 9987, but avatars, icons and channel files go over TCP 30033. If only the voice port is open in your firewall, people connect fine and every upload fails. Open TCP 30033 as well.
- What happens when the TeamSpeak 6 beta licence runs out?
- TeamSpeak renews the beta's 32-slot licence every two months for as long as the beta runs. It does not say how the renewal reaches your server, but the release notes for beta11 and beta13 both include 'Updated the default license', so the new licence seems to come with new releases. Keep your beta server on the newest release.
- Can I run the TeamSpeak server in Docker?
- Yes. TeamSpeak lists an official Docker image for TeamSpeak 3 on its download page and recommends Docker for the TeamSpeak 6 beta. Keep the data in a named volume so it survives the container being replaced, and publish only UDP 9987 and TCP 30033 to the internet.
- I lost the privilege key before using it. Is the server lost?
- No, as long as you still have the serveradmin password from the first start. Log in to ServerQuery with it and create a new key for the Server Admin group with privilegekeyadd. Without that password, TeamSpeak's documented fix is a fresh database, which means setting the server up again.