DaVinci Resolve Server on a Raspberry Pi

DaVinci Resolve video editing software has great collaboration tools that require either a (paid) cloud account or you can set up a (free) local server. Although DaVinci Resolve is available on Linux, the server software is only available for Windows and Mac OS. But, I suspect we can set up a server on a Raspberry Pi.

Let’s dive into the details!

Resolve Server

DaVinci Resolve 18 has amazing collaboration features making it super easy for more than one person to work on the same project. Or, in my case, the same person working on the same project from multiple computers. This is possible even on the free version of Resolve, which is a rarety in today’s subscription-based software license.

It does this by storing all its information on a PostgreSQL server, even if you are not using the collaboration tools. There isn’t a ton of specific information as to which version of PostgreSQL Davinci 18 uses, but there are a few accounts of users running PostgreSQL version 14 without any issues.

It looks like if you download and install DaVinci Resolve 18 Server app, it installs PostgreSQL version 13 but there is no reason to think that version 14 or 15 are not backward compatible with version 13.

As of the time of this writing, Ubuntu will install version 14 and Debian will install version 15.

I’m happy to report that I have been sharing a PostgreSQL version 15 database between two computers in my network without any issues. It’s great to be able to work on a project on my laptop and seamlessly continue editing my video on my desktop computer without having to export the DaVinci Resolve project.

Keep in mind the DaVinci project database does not store your media files. You have to manage these separately and I will go over my workflow later in this article.

Setup

I suggest using a Raspberry Pi 5 for this project just because it has faster I/O speeds than the Raspberry Pi 4. But the instructions below should work on any Pi running Ubuntu or Debian-based computer. I also recommend using an ethernet cable instead of relying on WiFi. Especially if you also use the Pi to store the media files for your project, which is what I am doing.

Before we get started, it’s always a good idea to update your system.

sudo apt update
sudo apt upgrade -y

Installing PostgreSQL on a Raspberry Pi is super easy since the packages are available in Debian.

sudo apt install postgresql

After installation is complete, there are a couple of configuration steps you need to take to make sure the database is secure and that you can access it remotely (from a different device)

PostgreSQL User

Confusingly enough, the PostgreSQL default user is postgres (without the ‘ql’) and the password is also postgres. It is good practice to change this password, even if only for the sake of not letting someone else in your network accidentally delete your DaVinci Resolve projects.

To do this, you have to access the PostgreSQL console with the postgres user:

sudo -u postgres psql

Then, change the password with the psql command \password, then quit out of the console with \q

postgres=# \password postgres
Enter new password for user "postgres": <new password>
Enter it again: <new password>
postgres=# \q

Remote Access

At this point, you would only be able to access the database from the Pi itself. To make it accessible from other devices, we have to edit a couple of configuration files.

The configuration files are located under /etc/postgresql/<version>/main/. In my case, since I have PostgreSQL version 15 installed on my Pi 5 running Raspberry Pi OS, I’m going to edit the files under /etc/postgresql/15/main/.

First, we need to edit postgresql.conf to allow connection from other devices. I’m using the nano text editor but you can use any text editor you see fit.

sudo nano /etc/postgresql/15/main/postgresql.conf

Locate the line with #listen_addresses = 'localhost', uncomment the line, and replace 'localhost' with '*' to allow any IP to connect to the database. If you would like to lock it down to certain IPs, you can certainly do that by adding a comma-separated list of IPs instead of '*'

Now, we have to change the client authentication file pg_hba.conf so another device can authenticate into the database.

sudo nano /etc/postgresql/15/main/pg_hba.conf

And change 127.0.0.1/32 to 0.0.0.0/0 on the line below.

# IPv4 local connections:
host    all             all             127.0.0.1/32        scram-sha-256

Should be changed to:

# IPv4 local connections:
host    all             all             0.0.0.0/0         scram-sha-256

Finally, restart PostgreSQL for the configuration changes to take effect.

sudo service postgresql restart

Connecting to the Server

Alright, now that everything is set up on the Raspberry Pi, fire up DaVinci Resolve on your PC and select the Network tab. Next, click the Add Project Library button at the bottom of the page.

You should get a pop-up window to either create a new library or connect to an existing one. Select Create if you haven’t used Resolve to connect to the Raspberry Pi before.

Let’s enter a name for the library. I’m calling mine PiNAS because it also lives on the Pi 5 I use as a NAS. Next, enter the IP address for the Raspberry Pi. The username should be postgres and the password is what you set in one of the steps above.

After hitting the Create button, Resolve will go through the process of creating a PostgreSQL database on the Raspberry Pi and setting it up with the correct tables.

From this point on, you can create a new Resolve project just like you would on a local library and start editing videos.

When it’s time to use a different computer on your network, you should connect to the existing database instead of creating a new one.

Media Files

Like many before me, I started editing videos and moving files between computers using a fast USB drive. But this gets old after a while. I setup a Pi 5 as a NAS to be able to edit videos directly from the network, so I don’t have to keep transferring files between computers. The Pi 5 is running Open Media Vault (OMV), which is a NAS-specific OS, and I keep the files for all of my current video projects there.

I upgraded the Pi 5 and part of my home network to 2.5 Gbps Ethernet. This way, file transfer between the Pi 5 and my editing PCs are speedy. I made a video about the whole process of upgrading my Pi 5 NAS to 2.5 Gigabit networking.

Once it is time to render and export the video, I copy all of the files from the NAS to my local drive and relink the clips in Resolve to point to my local folder. I don’t know if this step is needed but rendering videos is already a resource-intensive task, so, having the files locally lessens the risk of I/O operations failing and ruining my render.

Conclusion

Setting up a Davinci Resolve project server on Linux is super simple and is a huge time saver. Being able to access my video projects from the network eliminates the need of exporting and reimporting project files. Storing all my media files on a NAS makes it even easier to move between computers. No need to use an external drive to move data between computers.

Affiliate Links

You can support the site by using one of the affiliate links below. By using the links below, you are helping out the website without any additional cost to you. Every time someone buys an item through these links, the website gets a very small commission. I keep all the ad links at the bottom of the page so they don’t interfere with the article flow.

MokerLink 8 Port 2.5 Gigabit Managed Switch – This is the switch I’m using to connect the devices I edit videos in to the Raspberry Pi. It’s a managed switch, meaning it has advanced features for network traffic routing.

ASUS 2.5G Ethernet USB Adapter – Ethernet dongle I am using on my laptop so I don’t have to use slow WiFi to edit videos. This is the adapter I have on the Raspberry Pi so it too has 2.5 Gigabit Ethernet.

BrosTrend 2.5GB Network Card – For use on a desktop PC to connect to the 2.5 Gigabit network. If your desktop PC doesn’t have an open PCIe slot, you can use the USB dongle listed above instead.

André

André is just a regular dude that loves photography, traveling, and hacking stuff. When he's not planning his next bikepacking trip, he's tinkering with a couple of Raspberry Pi's and writing personal apps. He usually codes in CFML or JavaScript.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *