for some specific reasons, one popular content hosting is not available in one country. this project gives the way to get content from your own service.
for some specific reasons, one popular content hosting does not like, that some projects try to "crawl" and mirror contents of his own.
So maybe you will need make some movements to not be banned by this popular hosting: .env file (will be created after setup.sh gets called) already has some "config rows" that can be filled to avoid ban.
Prerequisites: Node.js 24 and development tools for type checking/linting.
The project is built as zero-dependency runtime software: no application-level
npm dependencies by default. Runtime code should rely on Node.js built-ins,
browser APIs, SQLite through Node, and nginx/systemd/OS tools. See
docs/dependencies.md.
AI coding agents must read and follow AGENTS.md plus the relevant docs in docs/
before making changes. Important entry points are docs/frontend-parts.md,
docs/server-bakers.md, docs/server-runtime.md, docs/dependencies.md, and
docs/deploy.md.
node --run checknode --run lint # check only
biome lint --write . # check + autofixnode --run formatTested on Ubuntu 24.04. Full deployment documentation lives in docs/deploy.md.
Two deployment styles are supported:
- Git-based deployment on the VPS.
- rsync deployment from a local checkout.
Run as root on the VPS:
ssh root@<VPS_IP>
git clone https://github.com/aidarkdev/vidium /root/vidium
cd /root/vidium
bash setup.sh
nano /root/vidium/.env
systemctl enable --now vidium-server vidium-workerFor HTTPS, point DNS to the VPS and run:
certbot --nginx -d your-domain.comOpen the site and register with INVITE_CODE from .env. New accounts start as user; grant the first admin role from the VPS:
cd /root/vidium
node --env-file=.env -e "const { DatabaseSync } = require('node:sqlite'); const db = new DatabaseSync(process.env.DB_PATH); db.prepare('UPDATE users SET role = ? WHERE login = ?').run('admin', 'YOUR_LOGIN');"After one admin exists, manage roles from /admin. Continue with SETUP.md for usage details and docs/deploy.md for full deployment notes.
Git-based deploy on the VPS:
cd /root/vidium
git pull
systemctl restart vidium-server vidium-workerFor rsync deploys, first-machine setup, exact file lists, nginx reload rules, and runtime file policy, see docs/deploy.md.
ssh root@<VPS_IP> 'journalctl -u vidium-server -n 50 --no-pager'
ssh root@<VPS_IP> 'journalctl -u vidium-worker -n 50 --no-pager'