PeerTube

Video Hosting

Your own private YouTube — upload, share and stream videos with zero monthly fees

Replaces

  • Vimeofrom $12/mo
  • Wistiafrom $19/mo

Your price: $0 — runs on your machine. And your data never leaves your hands.

What is it?

PeerTube gives you your own video site: upload videos, organize them into channels, share links, embed them on your website. It handles the heavy lifting automatically — converting videos into multiple resolutions so they stream smoothly on any connection, just like YouTube does. No ads, no algorithm, no upload limits set by a marketing department.

It’s developed by a French non-profit and used by schools, media outlets, and organizations all over the world. A clever trick: when many people watch the same video, they share pieces of it between them, so your server doesn’t break a sweat.

What does it replace?

Vimeo (from $12/month) and Wistia (from $19/month, climbing to $99+ fast). These services charge you monthly to keep your own videos online — stop paying and your library disappears.

What does it cost you?

Nothing. Your videos live on your machine or a server you control, under your rules. No per-view pricing, no branding you can’t remove, no risk of a platform deleting your content because a policy changed.

Get it running

Copy the text below and paste it into Claude (or Claude Code). It will ask you a few questions — mainly your domain name if you have one — and set everything up, including video conversion. About fifteen minutes.

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.