Skip to content

Dashboard is a cross-platform (Lin/Mac/Win) desktop application for convenient management and monitoring of cameras based on OpenIPC firmware.

Notifications You must be signed in to change notification settings

OpenIPC/dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VMS Dashboard - Professional Video Management System

VMS Dashboard Tauri React Rust License

Modern native video surveillance management system for professionals

Download Release β€’ Documentation β€’ Report Bug


πŸš€ Key Features

πŸ“Ή Camera Management

  • Automatic ONVIF camera discovery in local network
  • Multiple protocols support: ONVIF, RTSP, OpenIPC, Hikvision, Dahua
  • Two connection modes: direct RTSP and MediaMTX integration
  • Camera grouping and organization
  • Secure credential storage with encryption

πŸ–₯️ Professional Monitoring Interface

  • Multi-grid layouts: from 1 to 64 cameras simultaneously
  • Customizable templates with tab system
  • Drag & Drop camera management
  • Fullscreen mode and detailed viewing
  • Individual cell settings (audio, pause, recording)

πŸ“Š Archive & Analytics

  • Interactive timeline for recording navigation
  • Calendar interface for search
  • Video clip export functionality
  • Activity statistics and charts
  • Event log with filtering and search

πŸ›‘οΈ Security & Performance

  • Native application without browser limitations
  • Local data processing without cloud dependencies
  • AES-256 password encryption
  • Low resource consumption thanks to Rust/Tauri

πŸ“₯ Quick Start

Installation

  1. Download the latest release for your OS
  2. Install the application (Windows: .msi, macOS: .dmg, Linux: .deb/.AppImage)
  3. Launch VMS Dashboard

Initial Setup

  1. Add cameras: use ONVIF auto-discovery or add manually
  2. Create layout: drag cameras to monitoring grid
  3. Configure recording: set schedule and archive parameters
  4. Start monitoring: enjoy professional video surveillance!

πŸ”§ Development

System Requirements

Local Build

Prerequisites

Quick Start

# Clone repository
git clone https://github.com/OpenIPC/dashboard.git
cd dashboard

# Install dependencies
npm install

# Download MediaMTX binaries (required for builds)
npm run download-mediamtx

# (Optional) Download bundled GStreamer runtime for Linux AppImage builds
npm run download-gstreamer

# Run in development mode
npm run tauri

# Build release for current platform
npm run build-release

Cross-Platform Building

# Build for Windows (from any platform)
npm run build-windows

# Build for Linux (from any platform) 
npm run build-linux

# Build for macOS (from any platform)
npm run build-macos

# Build debug version
npm run build-debug

# Only download MediaMTX binaries
npm run download-mediamtx

# Only download the optional GStreamer runtime bundle
npm run download-gstreamer

Alternative Build Methods

# Using PowerShell (Windows)
.\tools\build.ps1 --platform windows

# Using Bash (Linux/macOS)
./tools/build.sh --platform linux

# Using Python directly
python tools/build.py --platform macos --debug

Optional Linux GStreamer Bundle

  • npm run download-gstreamer stages a redistributable runtime when one is available.
  • If no bundle is found, Linux builds rely on the target system's GStreamer installation.
  • Provide custom artifacts with GSTREAMER_BUNDLE_URL (URLs) or GSTREAMER_BUNDLE_ARCHIVE (local file) before rerunning the download script.

Build Outputs

  • Windows: .msi installer in src-tauri/target/release/bundle/msi/
  • Linux: .deb package and .AppImage in src-tauri/target/release/bundle/
  • macOS: .dmg installer in src-tauri/target/release/bundle/dmg/

Release Building

For creating distributable releases:

# Prepare all platform binaries
npm run download-mediamtx

# Build release installers
npm run build-release

# For other platforms (requires platform-specific setup)
# npm run build-windows  # Windows MSI
# npm run build-linux    # Linux DEB + AppImage  
# npm run build-macos    # macOS DMG

See Build Guide for detailed build instructions and Release Process for creating releases.

Manual GitHub Actions Build

You can trigger builds manually without committing code:

  1. Go to: GitHub Actions
  2. Select: "Build and Test" workflow
  3. Click: "Run workflow"
  4. Choose platform:
    • all - Build for all platforms (Windows, Linux, macOS)
    • windows - Build only for Windows
    • linux - Build only for Linux
    • macos - Build only for macOS

This allows you to test builds on different platforms without automatic triggering on every commit.

Automatic Release Build

For official releases, push a version tag:

git tag v1.0.0
git push origin v1.0.0

This automatically builds and creates a GitHub release with installers for all platforms.

Project Structure

dashboard/
β”œβ”€β”€ src/                    # React frontend
β”‚   β”œβ”€β”€ components/         # UI components
β”‚   β”œβ”€β”€ contexts/           # React contexts
β”‚   β”œβ”€β”€ services/           # API services
β”‚   └── types/              # TypeScript types
β”œβ”€β”€ src-tauri/              # Rust backend
β”‚   β”œβ”€β”€ src/                # Core code
β”‚   β”œβ”€β”€ mediamtx/           # MediaMTX integration
β”‚   └── capabilities/       # Tauri permissions
└── docs/                   # Documentation

πŸ“Š System Requirements

Minimum

  • OS: Windows 10, macOS 10.15, Ubuntu 18.04
  • RAM: 4 GB
  • CPU: Dual-core 2.0 GHz
  • GPU: H.264 decoding support
  • Network: 100 Mbps for local cameras

Recommended

  • RAM: 8+ GB
  • CPU: Quad-core 3.0+ GHz
  • GPU: Discrete with hardware decoding
  • Network: Gigabit Ethernet
  • Storage: SSD for recordings

🀝 Contributing

We welcome community contributions! Please:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. πŸ’Ύ Commit your changes (git commit -m 'Add amazing feature')
  4. πŸ“€ Push to the branch (git push origin feature/amazing-feature)
  5. πŸ”„ Create a Pull Request

Types of Contributions

  • πŸ› Bug fixes - fixing issues
  • ✨ Features - new functionality
  • πŸ“ Documentation - improving docs
  • 🌍 Translations - UI translations
  • πŸ§ͺ Testing - writing tests

πŸ“„ License

This project is licensed under the MIT License. See LICENSE for details.


πŸ†˜ Support


πŸ™ Acknowledgments

  • OpenIPC for project support
  • Tauri for cross-platform framework
  • MediaMTX for streaming server
  • Community for testing and feedback

⭐ Star this repo if you find it useful!

⬆ Back to top

About

Dashboard is a cross-platform (Lin/Mac/Win) desktop application for convenient management and monitoring of cameras based on OpenIPC firmware.

Topics

Resources

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Contributors 4

  •  
  •  
  •  
  •