Studio Server

Version 2 is now (March 2024) in development!
This new version brings additional features and improves upon many of the existing features!
Keep your eyes peeled for a release announcement in the next couple of months!

Studio Server is a self-contained, easy to use, Docker Container that serves as a Project Server for Blackmagic Designs' DaVinci Resolve that enables individuals and companies that are using the amazing DaVinci Resolve software suite for video editing and colour grading to very easily setup and manage their own central dedicated project server.

This project (software) exists as Blackmagic Design do not provide a first-party Linux version of their DaVinci Resolve Project Server software.

The Studio Server software combines a fully configured environment, complete with a web-based management panel and utilises our original Studio Server Client tool behind the scenes to make managing a DaVinci Resolve project server painless.

Even if you aren't collaborating with other team members on the same project(s) or you work by yourself, using a server to host your video, VFX and colour grading projects has many additional benefits such as providing a great way for users to switch and work from different locations and/or computers, in the same office or over the internet. Using a central server that is configured to automatically back-up your databases also means that you to never having to worry about forgetting to take manual local back-ups as this software automates this process in the background for you.

This Docker container can be deployed to an x86-based server and all common enterprise and consumer NAS devices that support Docker (such as TrueNAS, UnRAID, Synology and QNAP) and equally to a virtual machine or bare-metal server using the Docker CLI or tools such as Portainer!

Installation

The simplest way to install and set up the Studio Server software on your server, first ensure that you have Docker installed and then, using the standard Docker CLI you can run the following command.

If you intend to install this Docker Container on a Synology NAS please see our page on deploying Studio Server on a Synology NAS (as there are some additional settings you must use in order for this to work on Synology due to some of the ports already being used by the NAS!)

Please note that the below example uses the "Europe/London" timezone in addition to mounting the four persistent volumes to the current working directory, you will probably want to update these values when installing but will work for demonstration purposes!

docker run --name studio-server \
        -d \
        --restart unless-stopped \
        --network bridge \
        -e TZ=Europe/London \
        -p 5432:5432 \
        -p 50059:50059 \
        -p 8543:8543 \
        -v $PWD/hooks/:/var/studio-server/hooks/ \
        -v $PWD/database/:/var/studio-server/database/ \
        -v $PWD/backups/:/var/studio-server/backups/ \
        -v $PWD/jobs/:/etc/cron.d/ \
        allebb/studio-server:latest

Studio Server can also be installed directly on to any Network Attached Storage Server (NAS) that supports running Docker Containers, but you would likely need to configure the settings manually, see the "Docker container configuration nodes" below for an explanation and overview of each.

If you plan to install and use Studio Server on a bare-metal or virtual server, Portainer is a great (and free) web-based management panel for setting up and managing your Docker Containers if you aren't too keen on using the Docker CLI directly.

Once the container image has been pulled and the container is started, it will automatically configure itself for "first use" and so, give it a few seconds before navigating to the web-based administration panel to finalise the configuration (set up an admin account password), to do this, simply use a web browser and navigate to this URL: http://{YOUR_SERVER_OR_NAS_IP_ADDRESS}:8543

Upgrading to the latest version is super easy too, you simply need to "pull" the latest Docker image and restart the container, Studio Server will automatically handle the upgrade for you! More information on how to do this can be found below (if you aren't familiar with Docker).

If you would like to see a step-by-step video of how to set this up on a Linux Server, please watch this video tutorial on YouTube.

Docker container configuration notes

When configuring this container the following configuration settings should be configured correctly:

The container must be run in "detached mode"(-d) this will start the container and run it in the background (as a "server"), this is important; if the container isn't started in "detached mode" (-d) then it will start and immediately stop and will prevent users from connecting to it.

It is recommended that you set the "restart policy" to "unless stopped" (--restart unless-stopped) as you will likely want the container to start automatically after host machine (server or NAS reboots) and so, setting (--restart unless-stopped) will ensure that it will automatically start up in future unless you have manually stopped it prior to the reboot.

The network type should be set to "bridge" (--network bridge) and ensures that other computers (video editors, colour graders etc.) on the network can access and connect the Studio Server instance.

The timezone environmental variable "TZ" (-e TZ=Europe/London) should be set to match your geographical location, if this doesn't match your host server or NAS device's timezone there may be inconsistencies in how backup timestamps are displayed within the web interface.

The container exposes three ports for client devices to connect to, these are as follows 5432 (the main project database engine), 50059 (used for team collaboration chat), 8543 (the web administration panel). You can safely re-map the web admin panel port (8543) to another port if you wish however, the other two ports (5432 and 50059) MUST remain as they are, otherwise DaVinci Resolve clients will fail to connect!

To ensure that the project database data, backup archives, scheduled jobs and custom backup hooks persist between upgrades and when the container is restarted, four Docker volumes should be mounted to a location of your choice.

It is our recommendation that, the following mount points are customised as follows:

  • (--v $PWD/database/) - Contains the relational database service (PostgreSQL) for storing and serving project metadata to client devices. It is recommended that this volume is mounted on fast storage (such as an SSD or NVME drive).
  • (--v $PWD/backups/) - Used to store the project library backups (backup to and restore from). It is recommended that this volume is mounted on parity protected storage such as a local RAID array or remote NFS mount point (eg. it doesn't need or benefit from high-speed storage).
  • (--v $PWD/jobs/) - Stores the optional automatic backup job configurations.
  • (--v $PWD/hooks/) - Stores the pre- and post-backup hook scripts (useful for scripting external tools to upload backups to cloud storage or other tasks such as "push notifications").

Features

  • An intuitive web-based management panel
  • Easy setup and configuration of one or more project databases
  • Automatically creates database users and roles
  • One-click set-up of scheduled backups per database
  • Automatic purge (clean-up) of old databases backups - your server (or NAS) will never run out of space!
  • Ability to set custom automated backup schedules
  • Ability to instantly (manually) backup and restore one or more project databases with a click of a button!
  • Easily reset database passwords
  • Customisable Pre-backup and Post-backup hook scripts (BASH)
  • Cloud-friendly database backups - You can set up your server to upload your backups to cloud storage for extra protection!

Like the software?

If by using this tool, I have made your life a little easier, and you would like to show your appreciation and help fund the future development of this tool, please feel free to send me a small donation on PayPal.

Need help?

If you still need help and have already followed the video tutorials feel free to contact us.

Command Index

If you have previously migrated from the Linux CLI tool to this self-contained Docker Version, you can still use the CLI commands directly in the container terminal/console if you wish, these can be found here.

How to upgrade your Studio Server installation

As and when new features are released or bug fixes are applied, we will release a new Docker image which will contain all the latest code and automatic upgrade scripts so that you can be assured that upgrading is pain-free!

Upgrading to the latest version of Studio Server is super easy, all you need to do is "pull" the latest Docker Image and restart the container; most Docker management interfaces like Portainer, Synology and TrueNAS's docker interfaces offer one-click solutions to automatically upgrade a Docker container image (which, in essence will automatically "pull" the latest docker image and restart the container for you).

If you installed Studio Server using the standalone docker commands (as demonstrated in the "Installation" section of this page), you will need to run a few simple commands in order to upgrade your Studio Server installation to the latest version.

To upgrade from the standalone Docker CLI, run the following commands (just be sure that you replace your volumes (paths), timezone environmental variable (TZ) value and any other customisations you made when you originally ran the installation command):


# Stop the existing container
docker stop studio-server

# Remove the container
docker rm studio-server

# Download the latest Docker image (containing the latest updates)
docker pull allebb/studio-server:latest

# Re-configure the docker container (ensuring you use the same volumes as you did
# when you originally installed it (so that your existing data and configurations are accessible)
docker run --name studio-server \
        -d \
        --restart unless-stopped \
        --network bridge \
        -e TZ=Europe/London \
        -p 5432:5432 \
        -p 50059:50059 \
        -p 8543:8543 \
        -v $PWD/hooks/:/var/studio-server/hooks/ \
        -v $PWD/database/:/var/studio-server/database/ \
        -v $PWD/backups/:/var/studio-server/backups/ \
        -v $PWD/jobs/:/etc/cron.d/ \
        allebb/studio-server:latest

Once you have run those commands, after a few seconds, Studio Server will have restarted and updates will have been applied!

Have some suggestions?

We have tried to make this tool as simple and light-weight as possible by automating a lot of "things" behind the scenes. If however you feel that you have a great idea that you would like to see implemented into this software please contact us and let us know!

Scroll to top