PeerTube

Video Hosting

Self-hosted video hosting with federation built in

killsVimeoWistia

Pricing
Free, self-hosted
Links
WebsiteGitHub

What it is

PeerTube is a free, decentralized video hosting platform developed by the French non-profit Framasoft. Upload videos and it handles transcoding to multiple resolutions, adaptive HLS streaming, comments, channels, subscriptions, and search — the whole video-site experience. It’s part of the fediverse via ActivityPub, so other PeerTube instances (and Mastodon users) can follow your channels, and it uses peer-to-peer in the browser to reduce bandwidth load on popular videos.

There’s an official Docker Compose setup in the repository with everything wired up: the app, Postgres, Redis, and a web server.

Why it kills the SaaS

Vimeo and Wistia gate your videos behind monthly fees, bandwidth caps, and branding rules — remove payment and your library is gone. With PeerTube, the videos, the player, and the audience are yours. No per-view pricing, no takedown risk from a platform policy change, no logo you can’t remove. You host it, you own it, forever.

Paste this into Claude Code

Set up a self-hosted PeerTube instance on this machine using Docker Compose.

1. Use the official Docker support from the PeerTube repo: fetch the files in support/docker-compose (docker-compose.yml plus the .env example) from https://github.com/Chocobozzz/PeerTube — follow the production guide at https://docs.joinpeertube.org/install/docker.
2. Configure the .env: set my domain as PEERTUBE_WEBSERVER_HOSTNAME, set a strong Postgres password, and fill in the admin email.
3. Start the stack with `docker compose up -d` and verify the peertube, postgres, redis, and webserver containers are healthy.
4. Retrieve the auto-generated root password from the container logs, log in, change it immediately, and upload a small test video to confirm transcoding works.
5. Set up TLS for my domain (the compose stack supports Let's Encrypt via env vars) and enable SMTP so notifications and password resets work.