TeamSpeak Usergroups Sync

Hello together

I’m currently working on a synchronization service between Discourse and TeamSpeak to sync user groups from Discourse to TeamSpeak 3.

This service is already working and I’m tweaking it at the moment. First-time preparation takes about 20 minutes for you.

Technically seen this is a Node.Js server using a server query library.

I’m open to your feedback. :slight_smile:

Readme.MD File

Discourse - TeamSpeak 3 Server Bridge

It Ain’t Much But It’s Honest Work

Build Status

Getting started

This Bridge Server syncs specified user groups from the Discourse Board to the TeamSpeak 3 Server. The server runs a cronjob every 5 minutes to sync both servers. This server is in early dev stage but it is fully working.

On server start the server will create a database file which has to be filled by you. It is a pivot table which contains the Group_ID of Discourse and TeamSpeak3.


better-sqlite3 has some special installation requirements. I recommend to check out this page.


1.) Install dependencies:

npm install

2.) Configure Environment Variables
Edit the .env.example file with your data.

3.) Install the Dataexplorer Plugin in Discourse.

4.) Add the following query.

-- [params] 
-- string :custom_field_name 
SELECT AS user_id,
   u.username AS username, AS group_id,
   ucf.value  AS user_field_value 
   users u 
   JOIN user_custom_fields ucf 
         ON ucf.user_id = 
      group_users gu 
      ON gu.user_id = 
      GROUPS g 
      ON = gu.group_id 
WHERE = :custom_field_name 
       AND ucf.value <> ''

5.) Create a custom Field in Discourse for the TeamSpeak UID.

6.) Then you have to know which userfield name you are searching for.
This query will help you:

SELECT * FROM user_custom_fields

Using the Webhook

This Server provides a Post-URL (/webhook?secret=MYSECRET) where you can trigger the synchronisation process. The Secret can be set in the Environment Variables.

Running the tests

At the moment no testing is done. This will be a part of future development.

npm run test


npm run build
npm run serve


npm run start

API Documentation

WIP: In the development environment, you can access the /explorer route to debug and view all currently available routes.

Built With



This project is licensed under the MIT License - see the file for details


Thank you.


Small Update:

1 Like