An independent creator
One 4 vCPU box, a CDN in front of it, and a channel people can follow over ActivityPub from wherever they already read.
Embeds · the bespoke player · resumable uploads
v0.5.0 · AGPL v3
Install it the way you install WordPress. No ads, nothing to upsell — and viewers can sign in with Bluesky.
curl -fsSL https://raw.githubusercontent.com/yegamble/vidra/main/install.sh | shWho runs it
One 4 vCPU box, a CDN in front of it, and a channel people can follow over ActivityPub from wherever they already read.
Embeds · the bespoke player · resumable uploads
A few dozen upload, a few hundred watch, and you answer for what appears. The moderation surface is in the box, not in a plugin.
Registration approval · reports · per-user quotas
Live coverage that becomes an archive the moment it ends, and embargoed material that never turns into a public URL by accident.
RTMP to VOD · scoped playback tokens · auto-sync
Four years of talks that have to stay findable, with an accessibility obligation you cannot hand-wave away.
Whisper captions · chapters · hybrid search
Sizing
Move the sliders and the box changes. The two profiles come from the deploy guide; everything between them is arithmetic you can check.
A 1080p job runs 12 encode passes and wants about 8 GB of scratch.
Assumes roughly 2 GB per source hour for the full HLS ladder — an estimate, not a measured figure.
Your box
~$63 / month
Small, private profile — a channel or two and a handful of viewers.
Droplet list price for 4 vCPU / 8 GB. 160 GB is included with the droplet.
Two things that cost real money if you skip them: do not use a 2 GB droplet, and use Docker Compose 2.24 or newer. Older Compose silently publishes PostgreSQL and Redis on 0.0.0.0 — your database on the public internet, with no error to tell you.
Install
All four end in the same place: a running instance on v0.5.0 with an owner account you claimed yourself.
For a fresh server you control. Run it as a user who can use sudo. It never writes over an existing env file, never opens a port, and never touches sshd.
curl -fsSL https://raw.githubusercontent.com/yegamble/vidra/main/install.sh | shThe product
Vidra v0.5.0 on a local machine, playing a 47-second clip the instance itself ingested and transcoded to four renditions.

Federation
Three layers do three jobs. Step through them and watch what leaves your server.
Layer one of three
Your channels and videos are addressable from the rest of the fediverse. A follow from Mastodon or another PeerTube instance travels over the protocol, not over an integration someone bolted on afterwards.
Architecture
This is the shipped compose file, not an architecture sketch. Each container does one job; tap it to see which.
Your server
API
The Go backend. 228 OpenAPI paths, durable queues, the transcode pipeline, federation and the admin console behind it.
Uploads stream straight to the storage backend — they never touch the server's disk — and when one box stops being enough, the same image splits into api and worker roles, soak-tested with a deliberate counterfactual. Put a CDN in front of the HLS, or turn on the IPFS tier, and the bytes reach viewers from somebody else's network.
Compared
The terms, the moderation policy and the ranking are Google's to change, and the platform sells advertising against your audience. On your own instance there is no ad system and nobody between you and your viewers.
PeerTube is the established choice, with years of maturity, a plugin ecosystem and in-player P2P that Vidra does not have. Vidra is a clean-room alternative that trades that head start for operability — a one-command install, a doctor, scripted backup and rollback — viewers who can sign in with Bluesky, and direct messages, which PeerTube does not have.
The project
Use it, study it, modify it, redistribute it. Run a modified version as a service and the network clause means your users get the source too.
There is nothing to upsell you to and no pricing page that changes the day you depend on it. The only way to run Vidra is to run it.
Not a PeerTube fork and not PeerTube-API-compatible. Migrating an existing instance across is supported and documented.
vidra-core (Go 1.26, Echo, PostgreSQL 18, Redis 8), vidra-user (Next.js 16) and vidra-search (Go), each with its own CI. Images build only from tags.
Vidra is at v0.5.0 — pre-1.0, and honest about it: the feature set is still growing, and three things it does not do are listed below. What is already fixed is the discipline it is built with. These gates run on every change, in every repository.