-
Notifications
You must be signed in to change notification settings - Fork 0
Home
The DaVinci Project Server GUI is a custom-built management interface designed to provide a clearer, more powerful, and more studio-friendly way to interact with DaVinci Resolve PostgreSQL project libraries. It offers a modern alternative to the official Blackmagic Project Server tool, with a focus on transparency, control, and workflow safety.
This project is built around two components:
1. A PostgreSQL database (Resolve-compatible schema)
2. A lightweight GUI application (Flask backend + HTML/JS frontend)
The goal is to give editors, studios, and administrators a clean overview of their Resolve projects, along with tools that improve safety, collaboration, and clarity.
Project Goals
• Provide a simple, modern interface for browsing DaVinci Resolve projects
• Offer more control than the official Project Server GUI
• Improve safety in multi-user environments
• Add features that studios need but Resolve does not expose
• Keep the system portable, lightweight, and easy to deploy
Current Features
• Project listing from a Resolve-compatible PostgreSQL database
• Basic project metadata display
• Delete project functionality
• Docker-based deployment for portability and consistency
• Clean and minimal web-based interface
Milestone 1: Studio-Grade Project Control Layer
Milestone 1 introduces the foundation for a professional, multi-user workflow. The focus is on project safety, ownership, and clarity.
Key features in this milestone:
1. Project Locking and Ownership
• Shows who is currently inside a project
• Prevents deletion or renaming while a project is in use
• Tracks who last opened each project
• Automatically clears stale locks
• Provides clear lock indicators in the GUI
2. Database Enhancements
• New table: project_lock
• New column in sm_project: last_opened_by
3. Backend API Additions
• POST /lock/
• POST /unlock/
• GET /locks
4. Frontend Integration
• Lock status displayed next to each project
• Delete button disabled when a project is locked
• Real-time lock state updates
5. Safe Deletion
• The backend blocks deletion of locked projects
• Clear error messages for unsafe actions
This milestone establishes the foundation for future features such as RBAC, project states, and collaboration tools.
Planned Future Milestones
Milestone 2: Role-Based Access Control (RBAC)
• Admin, Editor, Viewer roles
• Permission-based actions
• User management interface
Milestone 3: Project Lifecycle States
• Active, On Hold, Archived, Delivered
• Color-coded status indicators
• Filtering and sorting
Milestone 4: Notes and Collaboration
• Per-project notes
• Activity log
• Simple communication layer for teams
Milestone 5: Visual Enhancements
• Project thumbnails
• Metadata display
• Modern UI refresh
Milestone 6: Backup and Versioning
• Scheduled backups
• Version history
• One-click restore
Architecture Overview
The system consists of:
• A PostgreSQL 15 database storing Resolve project data
• A Flask backend providing API endpoints
• A static HTML/JS frontend for the GUI
• Docker containers for easy deployment and portability
The GUI communicates directly with the PostgreSQL database using Resolve’s internal schema (sm_project and related tables).
Deployment
The project is deployed using Docker Compose.
Two containers are used:
• davinci-postgre (PostgreSQL 15)
• davinci-project-server-gui (Flask + frontend)
This ensures consistent behavior across systems and makes the server portable.
Contributing
Contributions are welcome.
Areas where help is especially valuable:
• UI/UX improvements
• Additional metadata extraction
• Role-based access control
• Backup/versioning logic
• Flatpak or AppImage packaging
• Documentation and testing
DaVinci Project Server GUI
Documentation maintained by the project contributors
For issues or feature requests, visit the repository’s Issues page
For installation and update instructions, see the Installation page
For development details, see the Developer Guide
Project licensed under the repository’s stated license
Home
Getting Started
Installation
install.sh
update.sh
uninstall.sh
User Documentation
Troubleshooting
Community and Support
Developer Documentation
Developer Guide
Project Structure
Backend
Frontend
Running Without Docker
Database Schema
Resolve Tables
Custom Tables
Relationships
REST API Documentation
Project Endpoints
Locking Endpoints
Metadata Endpoints
Project Planning
Roadmap