Davinci Resolve hosted on a NAS for Multi User Collaboration

HERE IS HOW TO CONFIGURE A QNAP NAS TO HOST A RESOLVE POSTGRES DATABASE

With the latest versions of Blackmagicdesign Davinci Resolve Studio we can work multi user in a collaborative environment using a central Postgres database.

This allows us to open a project at the same time on different machines. One can do ingest and syncing, another can start the editing, while someone else does exports, color grading or sound mixing.
Bin locking and Timeline locking on 1 tab is supported.

https://mixinglight.com/color-tutorial/davinci-resolve-14-mythical-collaborative-workflow-is-here/
https://blog.pond5.com/18201-post-production-collaboration-made-simple-davinci-resolve-14-studio/
https://www.youtube.com/watch?v=3dQoqBwJ2gM

 

267_1487217563_TS-1685_front.png

You can install Postgres on a Mac or Windows workstation to share it, but it is even easier to install it on your QNAP NAS.
Recommended QNAP systems to use for file sharing in video-editing environments are the TVS-1282 series and the TS-1685 or the rack version similar to the TVS-EC1680.
These can be used for Adobe Premiere, Final Cut Pro X , Avid ( using Mimiq ) and of course Davinci Resolve.

To start, install PostgreSQL from the QNAP app store and restart.

By default the Postgres database engine is only accessible from within the QNAP server itself.
But in this case we want to access the database from our Davinci Resolve workstation, so we need to change 2 parameters on the Postgres of the QNAP:

- Allow external TCP/IP connections by modifying the pg_hba.conf file, you have to add a client authentication record so that external ip's have access.
 
- Alter the listening addresses in the postgresql.conf so it will listen to external ip's and not only its localhost ip addresses.

How do we do this :

1. First, make ssh connection to the QNAP via command line:

On the Mac open Terminal ( /Applications/Utilities ) and enter:

ssh admin@10.0.73.180

The IP number (10.0.73.180) needs to be replaced with the IP number of your QNAP

Accept ssh access and enter the admin password of the QNAP
Now you have a command line interface with the QNAP, which is a unix based system.

Then, locate the pg_hba.conf file:

find / -name pg_hba.conf

This gives us the path to the file on the QNAP: in our case /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/

To see its content use:

cat /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/pg_hba.conf

Before modifying this file we make a backup :

cp /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/pg_hba.conf /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/pg_hba.conf.backup

Then we append the necessary changes to the pg_hba.conf file.
This can be done  with the unix texteditor vi ( https://ryanstutorials.net/linuxtutorial/cheatsheetvi.php ) on the QNAP, or much easier:

echo "host    all             all             10.0.73.0/24            trust" >> /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/pg_hba.conf

In this example our QNAP and computers have IP numbers in the 10.0.73.x range, replace this with your IP range.

The option to use md5 or password as security system doesn't work with Davinci Resolve, so the only protection is now the masking with IP numbers and network range.
If you have a private network, this is probably not an issue. Perhaps in the future we can use user/password with Davinci Resolve.

TIP: If you use a text file to prepare the commands and then copy-paste in terminal, make sure that smart quotes are off = in apple text editor app , preferences,  disable all these options at the bottom.
You DON'T want smart quotes: we need  " " and NOT the  'smart'  ” “

To check that the modification is done , you can do another cat and see that the file is modified at the end.

cat /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/pg_hba.conf

2. Alter the postgresql.conf file:

Locate the file:

find / -name postgresql.conf

which gives in our system : /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/postgresql.conf

Check its content:

cat /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/postgresql.conf

Make a backup before modification:

cp /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/postgresql.conf /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/postgresql.conf.backup

Add the modification, to enable external access to the database:

echo "listen_addresses = '*' " >> /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/postgresql.conf

Check if the modification was correct:

cat /share/CACHEDEV1_DATA/.qpkg/PostgreSQL/postgresDB/postgresql.conf

To make both modifications active, you need to restart the QNAP.

Now the QNAP system is ready for Davinci Resolve access from the network.

When we log in to resolve we use : username postgres with password davinci,
but it could be anything as the setting is "trust" in de the pg_hba.conf

If you need to find the names of your Davinci Resolve projects on the Postgres server,
you can login on the QNAP's webpage, start the postgres app and login with the user postgres, no password.

disclaimer : Use this tutorial at your own risk

Extra considerations when using this setup :
- Take backups  https://www.premiumbeat.com/blog/resolve-14s-auto-save-functions/
- Postgres databases use a lot of small files that change all the time, so it would be better to put them on a separate SSD volume on the QNAP.
- Sometimes browsers and text editors will mess up " " with 'smart'  ” “ this will mess up your settings file.