---
title: Get started with TurnPanel Server
description: Run TurnPanel for a team on a machine you control: Docker with or without KVM, or a Linux service. The Server release is in preview.
updated: 2026-10-29
canonical: https://turnpanel.com/docs/get-started-server
markdown: https://turnpanel.com/docs/get-started-server.md
llms: https://turnpanel.com/llms.txt
---

# Get started with TurnPanel Server

Run TurnPanel for a team on a machine you control: Docker with or without KVM, or a Linux service. The Server release is in preview.

## Status

TurnPanel Server is in preview, and the Docker image is not published yet. The commands below are the ones the first Server release will use. Until then, [ask for early access](/enterprise?interest=server#interest) and we will tell you when it is ready.

Server is the same program as Personal, set up for a team: people sign in, spaces are isolated, and several machines can join into one workspace.


## Two kinds of space, and what needs KVM

A regular space runs in its own virtual machine and needs KVM on the host (the file /dev/kvm). Computer, the one space that runs on the host itself, needs nothing special. Without KVM you still get Computer, models, the web interface and everything else that does not need a virtual machine.

Check with `ls /dev/kvm`. Most small cloud servers do not offer it. You need bare metal or nested virtualisation.


## Make the secret key first

The secret key encrypts stored secrets and backups. Keep a copy somewhere safe, because without it they cannot be read. Do not put it inside the data folder: the server refuses to start if you do.

```sh
openssl rand -base64 32 > secret.key
chmod 600 secret.key
sudo chown 1000 secret.key   # the container runs as uid 1000
```


## Docker, with KVM

This gives you regular spaces. Everything lives in one volume, /data. The seccomp profile comes with the release's packaging. It allows what the virtual machines and Chromium need and blocks things nothing here needs, such as loading kernel modules.

```sh
docker run -d --name turnpanel --restart unless-stopped \
  --device /dev/kvm \
  --security-opt seccomp=packaging/docker/seccomp.json \
  -p 127.0.0.1:7337:7337 \
  -v turnpanel-data:/data \
  -v "$PWD/secret.key:/run/turnpanel/secret.key:ro" \
  -e TURNPANEL_SECRET_KEY_FILE=/run/turnpanel/secret.key \
  -e TURNPANEL_PUBLIC_URL=https://turnpanel.example.org \
  ghcr.io/echowinai/turnpanel:stable
```


## Docker, without KVM

Use the same command without the `--device /dev/kvm` line and the `--security-opt` line. You get Computer only. Settings shows that regular spaces are unavailable and says why.

The image supports linux/amd64 and linux/arm64. A compose file with the same settings ships with the release.


## Linux service, without Docker

Download the tarball for your CPU from the release page, check it, and install it.

```sh
sha256sum -c SHA256SUMS
tar xzf turnpanel-<version>-linux-x64.tar.gz && cd turnpanel-<version>-linux-x64
sudo ./install.sh --system
```

- `--system` creates a turnpanel user in the kvm group, installs to /opt/turnpanel, creates /etc/turnpanel/secret.key (back it up) and starts a systemd service.
- Data is in /var/lib/turnpanel and settings are in /etc/turnpanel/turnpanel.toml. Logs: `journalctl -u turnpanel`.
- For one person on one machine, use `./install.sh --user` instead. It installs a user service and keeps spaces running after you log out.
- Remove it with `install.sh --uninstall --system` (or `--user`). Your data stays.


## First start: the setup link and the owner account

On first start the server prints a one-time setup link in its log. It works for 24 hours. With Docker, run `docker logs turnpanel`. On a Linux service, run `journalctl -u turnpanel`, or run `turnpanel setup-link`.

Open the link and create the owner account. You become the workspace owner. If TurnPanel 1 is found on the machine, an import page comes next. The setup then walks through this machine, the address and HTTPS, email (optional), your agents and first space, models, and inviting your team. The optional pages say what skipping costs.

[Reaching your workspace](/docs/reaching)


## Updates and backups

- Back up the data folder and, separately, the secret key. Whoever holds both can read every stored secret.
- To update, pull the new image and recreate the container: `docker pull ghcr.io/echowinai/turnpanel:stable`. Back up /data first, because database changes only go forward and a downgrade is not supported.
- Update one step at a time and read the release notes.
