_comment: 'DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL'
meta:
  version: PLCN_v2
  update_url: 'https://github.com/pelican-dev/panel/raw/main/database/Seeders/eggs/voice-servers/egg-teamspeak3-server.yaml'
exported_at: '2025-07-25T13:30:53+00:00'
name: 'Teamspeak3 Server'
author: panel@example.com
uuid: 983b1fac-d322-4d5f-a636-436127326b37
description: |-
  VoIP software designed with security in mind, featuring crystal clear voice quality, endless
  customization options, and scalabilty up to thousands of simultaneous users.
tags:
  - voice
features: {  }
docker_images:
  Debian: 'ghcr.io/parkervcp/yolks:debian'
file_denylist: {  }
startup: './ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} query_http_port={{QUERY_HTTP}} query_ssh_port={{QUERY_SSH}} query_protocols={{QUERY_PROTOCOLS_VAR}} license_accepted=1'
config:
  files: {  }
  startup:
    done: 'listening on 0.0.0.0:'
  logs: {  }
  stop: ^C
scripts:
  installation:
    script: |-
      #!/bin/ash
      # TS3 Installation Script
      #
      # Server Files: /mnt/server

      if [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then
          TS_VERSION=$(curl -sSL https://teamspeak.com/versions/server.json | jq -r '.linux.x86_64.version')
      fi

      cd /mnt/server

      echo -e "getting files from http://files.teamspeak-services.com/releases/server/${TS_VERSION}/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2" 
      curl -L http://files.teamspeak-services.com/releases/server/${TS_VERSION}/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar -xvj --strip-components=1
      cp ./redist/libmariadb.so.2 ./
    container: 'ghcr.io/parkervcp/installers:alpine'
    entrypoint: ash
variables:
  -
    name: 'File Transfer Port'
    description: 'The Teamspeak file transfer port'
    env_variable: FILE_TRANSFER
    default_value: 30033
    user_viewable: true
    user_editable: false
    rules:
      - required
      - integer
      - 'between:1025,65535'
    sort: 2
  -
    name: 'Query HTTP Port'
    description: 'TCP Port opened for ServerQuery connections using http'
    env_variable: QUERY_HTTP
    default_value: 10080
    user_viewable: true
    user_editable: false
    rules:
      - required
      - integer
      - 'between:1025,65535'
    sort: 6
  -
    name: 'Query Port'
    description: 'The Teamspeak Query Port'
    env_variable: QUERY_PORT
    default_value: 10011
    user_viewable: true
    user_editable: false
    rules:
      - required
      - integer
      - 'between:1025,65535'
    sort: 3
  -
    name: 'Query Protocols'
    description: "Comma separated list of protocols that can be used to connect to the ServerQuery | \r\nPossible values are raw, ssh and http | \r\nE.g.: raw,ssh,http"
    env_variable: QUERY_PROTOCOLS_VAR
    default_value: 'raw,http,ssh'
    user_viewable: true
    user_editable: true
    rules:
      - required
      - string
      - 'max:12'
    sort: 4
  -
    name: 'Query SSH Port'
    description: 'TCP Port opened for ServerQuery connections using SSH'
    env_variable: QUERY_SSH
    default_value: 10022
    user_viewable: true
    user_editable: false
    rules:
      - required
      - integer
      - 'between:1025,65535'
    sort: 5
  -
    name: 'Server Version'
    description: 'The version of Teamspeak 3 to use when running the server.'
    env_variable: TS_VERSION
    default_value: latest
    user_viewable: true
    user_editable: true
    rules:
      - required
      - string
      - 'max:6'
    sort: 1
