This article steps you through the process of setting up your own server to host studio sessions
JackTrip Studio Sessions are normally powered by cloud computing servers managed by JackTrip Labs. This is completely transparent so that no IT skills are required, but availability is limited to certain locations worldwide. Unmanaged JackTrip servers utilize infrastructure that you provide, which can be located anywhere in the world. You have two options available to do this:
- running a full-featured JackTrip studio server. This requires more setup but includes video, recording, livestreaming, real-time DSP effects, backing tracks, latency synchronization, etc.
- running a bare bones JackTrip audio server. This does not support video or any other features, but can be as simple as just running a single command.
This article is for the first option: running a full-featured studio server. Instructions to run a bare bones audio server are available here.
Most things you need to set up your own unmanaged server is bundled into our jacktrip/studio container image. If you are not familiar with containers or cloud-native computing, we recommend starting with Docker's Getting Started Guide.
In its simplest form, you can run the studio container directly from a command line using one of the examples provided. However, in order for things to work properly, it's also necessary to configure an HTTPS (encrypted) web proxy that forwards HTTP (unencrypted) traffic to port 8000.
There are many different ways to do this, and the best way depends on your own unique network and preferences. The details of configuring a web proxy are beyond the scope of this guide, but we'll step you through a few examples using Docker below to help get you started.
Basic Requirements
- Managing a studio server requires advanced IT skills, including a strong understanding of things like cloud-native computing, network routing and firewalls, ingress, DNS, TLS, etc. If you are unfamiliar or uncomfortable with any of these topics, we encourage you to use our fully managed studio servers instead.
- You must have a fully-qualified domain name (FQDN) with DNS pointing to your server. Check out nip.io and sslip.io if you don't have this. They both resolve for example, A-B-C-D.nip.io to A.B.C.D.
- Your server must have a Linux container runtime available. A modern Linux server distribution is strongly recommended, but not strictly required. When using other operating systems, virtualization is likely to get in the way of realtime CPU priorities, resulting in additional audio glitches.
- Your server should have the following resources available:
- 2-4 vCPUs for each 5 participants. More compute is used for recording, live streaming, etc.
- About 2GB memory.
- About 2GB disk space. This is only used while recording and live streaming.
- Enough network capacity for all participants (a few Mbps each).
- Your firewall must allow direct access to your server from the Internet (and your own computer, in case it is on the same LAN/WAN) via the following ports:
-
- TCP ports 443, 4464, 7881 and 3478
- UDP ports 22124 and 3478
- UDP ports 61000-61099 (at least one for each participant)
- UDP ports 50000-50099 (at least one for each participant)
Migrating Your Studio
The first thing that you will need to do is create a new studio, if you haven't already done so. Next, follow these steps to update your studio to use an unmanaged server. This will allow anyone to find and easily connect to it using the desktop app.
Registering unmanaged servers with JackTrip.com does not require a paid subscription. Using the jacktrip/studio container with a paid subscription will enable your unmanaged studio servers to use all the features included. Without a paid subscription, your unmanaged studios will still be able use all the features included in the "Lite" plan.
After migrating, the Server Settings will display two environment variables that you'll need to provide to the studio container: JACKTRIP_STUDIO_ID and JACKTRIP_STUDIO_TOKEN.
Finally, select and follow the steps in one of these examples:
Troubleshooting
If the nginx container fails to start, or the curl ping fails, check logs by running:
docker logs nginx
You can tail all logs for the studio container by running:
docker exec -it studio journalctl -f
It can sometimes be helpful to narrow things down to a specific service. For example , you can tail logs for just the "jacktrip" audio server by running:
docker exec -it studio journalctl -u jacktrip -f
If you have a paid subscription, please feel free to file a support ticket for help.