Skip to content

renfrewcountyscanner/viofo-a229-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VIOFO Dashcam Manager

A clean, dark-themed web app for managing and downloading files from VIOFO dashcams over WiFi.

Dashboard Screenshot

Features

  • Auto-sync: Priority queue downloads locked (RO) files first, then normal driving clips. Parking files are never auto-downloaded.
  • File browser: Table view with filtering, sorting, date range search, and server-side pagination.
  • Gallery: Card-based layout with lazy-loaded thumbnails and intersection observer.
  • Manual pull: Download individual files from the dashcam to your server on demand.
  • Delete: Permanent delete for both local storage and dashcam SD card, with confirmation dialogs.
  • Bulk delete: Select multiple files (with shift-click range select) and delete in one action.
  • Storage management: See disk usage at a glance, and bulk-delete old files by age.
  • Download controls: Pause, resume, cancel downloads and clear the queue from the dashboard.

Supported Models

Tested on the VIOFO A229 Pro. Any VIOFO dashcam that exposes a standard HTTP web interface (typically at http://192.168.1.254/DCIM) should work. Your dashcam should receive 192.168.1.254 from your DHCP server so you can also use the official VIOFO mobile app on the same network.

Prerequisites

  • Debian/Ubuntu Linux (or compatible)
  • Python 3, python3-venv, python3-pip
  • Node.js and npm
  • FFmpeg (for thumbnail generation)
  • Systemd (for service management)

Quick Install

git clone https://github.com/renfrewcountyscanner/viofo-a229-manager.git
cd viofo-a229-manager
sudo ./install.sh

The default install directory is /app/viofo-manager. You can change it:

sudo ./install.sh /opt/my-dashcam

Then open http://<your-server-ip>:8000 in a browser.

Manual Install

If you prefer to set things up yourself:

# 1. System dependencies
sudo apt-get update
sudo apt-get install -y python3 python3-venv python3-pip nodejs npm ffmpeg

# 2. Create install directory (replace with your path)
export INSTALL_DIR=/app/viofo-manager
sudo mkdir -p "$INSTALL_DIR"

# 3. Copy files
sudo cp -r backend frontend config.json systemd "$INSTALL_DIR/"

# 4. Python virtualenv
sudo python3 -m venv "$INSTALL_DIR/venv"
sudo "$INSTALL_DIR/venv/bin/pip" install -r "$INSTALL_DIR/backend/requirements.txt"

# 5. Build frontend
cd "$INSTALL_DIR/frontend"
sudo npm install
sudo npm run build

# 6. Install systemd service
sudo cp "$INSTALL_DIR/systemd/dashcam-backend.service" /etc/systemd/system/
sudo sed -i "s|/app/viofo-manager|$INSTALL_DIR|g" /etc/systemd/system/dashcam-backend.service
sudo systemctl daemon-reload
sudo systemctl enable dashcam-backend
sudo systemctl start dashcam-backend

Configuration

Edit config.json (default: /app/viofo-manager/config.json):

{
  "dashcam_url": "http://192.168.1.254/DCIM",
  "save_path": "/data/dashcam/",
  "sync_interval_seconds": 90,
  "directories": ["MOVIE/RO", "MOVIE", "MOVIE/Parking"],
  "sync_directories": ["MOVIE/RO", "MOVIE"]
}
Field Description
dashcam_url Base URL of the dashcam HTTP server
save_path Local directory to save downloaded files
sync_interval_seconds How often to check for new files
directories All folders shown in the app (including Parking)
sync_directories Folders that are auto-downloaded (Parking excluded by design)

You can also set environment variables:

  • DASHCAM_CONFIG_PATH — path to config.json
  • DASHCAM_SAVE_PATH — override the save path

Security

There is no built-in authentication. Run this on a trusted local network. If you need to expose it to the internet, place it behind a reverse proxy (Nginx, Caddy, Traefik) with Basic Auth or OAuth.

Troubleshooting

Dashboard shows "DASHCAM OFFLINE"

  • Make sure your server and the dashcam are on the same WiFi network.
  • Verify the dashcam IP in Settings. It should match what your router assigned (commonly 192.168.1.254).
  • Try visiting http://192.168.1.254/DCIM/MOVIE/ directly from the server to confirm HTTP access.

Files are not downloading

  • Check journalctl -u dashcam-backend -f for errors.
  • The VIOFO HTTP server is single-threaded: while a download is in progress, directory listings may return empty. The sync loop handles this by retrying on the next cycle.
  • Ensure the save_path directory is writable by the service user.

Thumbnails fail to generate

  • Make sure ffmpeg is installed and in your system PATH.
  • Check disk space in the thumbnail cache directory (backend/.thumbcache/).

License

MIT License — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors