Use this to host JackTrip Virtual Studio sessions on your own server
50K+
Copyright (c) 2024 JackTrip Labs, Inc. All Rights Reserved.
The jacktrip/studio container provides everything necessary to manage
your own Virtual Studio server.
Managing a Virtual Studio server requires advanced IT skills, including a very strong familiarity with things like 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 studios instead.
The studio container requires a publicly-accessible machine that has a valid fully-qualified domain name (FQDN) pointing to its IP address. You must also have a valid TLS (SSL) certificate, and provide your own HTTPS server listening on port 443, which terminates encrypted connections, and proxies the unencrypted requests to port 8000 (inside the container).
The following variables are required to run the container. You can obtain these by from your studio dashboard after migrating a studio to unmanaged.
JACKTRIP_STUDIO_ID: a unique identifier for your studioJACKTRIP_STUDIO_TOKEN: used to authenticate your studio to our APIYou must provide these variables via the command line, or by mounting an
environment config file as /etc/default/studio. It should look like the
following, where *** is the unique value:
JACKTRIP_STUDIO_ID=***
JACKTRIP_STUDIO_TOKEN=***
The container requires the ability to lock about 384MB of shared memory,
and some processes should be allowed to run with realtime priority to
prevent audio glitches. Be sure that your memory limits (ulimit) are
set appropriately.
ulimit -l 384000000
ulimit -r 95
If using docker instead of podman, you also need to use the
--privileged flag to run this as a privileged container.
To run a studio container using podman:
podman run --name studio -e JACKTRIP_STUDIO_ID=*** -e JACKTRIP_STUDIO_TOKEN=*** --network=host --shm-size=384M -d jacktrip/studio
Or alternatively:
podman run --name studio -v path_to_env_file:/etc/default/studio --network=host --shm-size=384M -d jacktrip/studio
Docker users should include these additional options:
--cpu-rt-runtime=950000 --ulimit rtprio=95 --cap-add=sys_nice
Docker Desktop users on Mac and Windows computers may also prefer to provide specific port ranges instead of using host networking:
docker run --name studio -v path_to_env_file:/etc/default/studio -p 443:443/tcp -p 22124:22124/tcp -p 4464:4464/tcp -p 7881:7881/tcp -p 3478:3478 -p 50000-50999:50000-50999/udp -p 61000-61100:61000-62000/udp --shm-size=384M --privileged --cpu-rt-runtime=950000 --ulimit rtprio=95 --cap-add=sys_nice -d jacktrip/studio
To make sure the container is running:
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aba06b93354 docker.io/jacktrip/studio:latest /sbin/init 3 seconds ago Up 4 seconds ago studio
Open bash shell inside the container for troubleshooting:
podman exec -it studio bash
Use journalctl to view logs for relevant processes:
journalctl -f
To stop and remove the container:
podman rm -f studio
Content type
Image
Digest
sha256:aa83755d8…
Size
751.5 MB
Last updated
3 months ago
docker pull jacktrip/studio