VideoCAT is a private catalog for videos stored on external hard drives
4.1K
Fastify + Prisma API server for VideoCAT, a private video catalog for external hard drives.
VideoCAT indexes metadata, paths, thumbnails, tags, duplicates and review decisions without copying original videos to the server. It is designed for collections spread across many drives that are not always connected.
Project website: https://videocat.centeran.com
Source code: https://github.com/reiterstahl/videocat
Windows Companion: https://github.com/reiterstahl/videocat/releases/latest
reiterstahl/videocat-server runs:
This image should be used together with:
reiterstahl/videocat-web
postgres:16-alpine
The easiest way to run the complete stack is the official Compose installer.
Linux/macOS/WSL:
curl -fsSL https://raw.githubusercontent.com/reiterstahl/videocat/main/install.sh | sh
Windows PowerShell with Docker Desktop:
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/reiterstahl/videocat/main/install.ps1 | iex"
Then open:
http://localhost:8081
Manual setup:
mkdir videocat
cd videocat
curl -fsSLO https://raw.githubusercontent.com/reiterstahl/videocat/main/docker-compose.hub.yml
curl -fsSLO https://raw.githubusercontent.com/reiterstahl/videocat/main/.env.example
mv .env.example .env
docker compose -f docker-compose.hub.yml up -d
Important variables for the server container:
DATABASE_URL=postgresql://videocat:strong-password@postgres:5432/videocat
JWT_SECRET=replace-with-64-hex-random-characters
AGENT_TOKEN=replace-with-64-hex-random-characters
ADMIN_USER=admin
ADMIN_PASSWORD=replace-with-a-long-unique-password
WEB_ORIGIN=http://localhost:8081
COOKIE_SECURE=false
TRUST_PROXY=true
PROTECTED_FOLDER_PIN=replace-with-a-private-4-digit-pin
PROTECTED_FOLDER_PATTERNS=Private,Protected
THUMBNAILS_DIR=/data/video-catalog/thumbnails
PUBLIC_THUMBNAILS_BASE_URL=/thumbnails
For public HTTPS deployments:
WEB_ORIGIN=https://your-domain.example
COOKIE_SECURE=true
TRUST_PROXY=true
The server stores thumbnails in:
/data/video-catalog/thumbnails
The official Compose file mounts this as:
thumbnails_data
Back up this volume together with PostgreSQL.
Versioned tags are stable:
reiterstahl/videocat-server:0.1.0
latest points to the newest published build:
reiterstahl/videocat-server:latest
For predictable deployments, prefer a versioned tag.
Database backup example:
docker compose -f docker-compose.hub.yml exec postgres pg_dump -U videocat videocat > videocat.sql
Also back up:
.envpostgres_datathumbnails_dataAGENT_TOKEN private.COOKIE_SECURE=true outside localhost.VideoCAT is free and open source software under AGPL-3.0-or-later.
Content type
Image
Digest
sha256:e1dfbca5d…
Size
157.9 MB
Last updated
1 day ago
docker pull reiterstahl/videocat-server