Déployez PeerTube sur Pethost en un clic
Votre propre plateforme vidéo dans le fédivers : publiez, diffusez et partagez des vidéos
Ce qui se passe
- Vous vous connectez à Pethost ou créez un compte, avec une clé d’accès, GitHub ou Google.
- Pas encore de machine ? Vous choisissez une offre, et nous en préparons une pour vous. Le lien attend dans votre navigateur qu’elle soit prête.
- Nouveau projet s’ouvre sur l’application. Vous remplissez ce qu’elle demande et cliquez sur Créer le projet : E-mail, Mot de passe administrateur.
- En une minute ou deux, l’application tourne à sa propre adresse en HTTPS. Ses secrets sont créés pour elle au hasard, et ses données sont dans la sauvegarde nocturne.
- C’est un projet comme les autres : son compose.yaml, son .env, ses logs et un terminal sont dans le panel, et votre agent peut le modifier, revenir à une version précédente ou le restaurer.
Premiers pas
Connectez-vous en tant que root avec le mot de passe administrateur indiqué ; PeerTube ne le lit qu’au premier démarrage. Les inscriptions sont fermées tant que vous ne les activez pas dans la configuration de l’administration, sous Général. PeerTube n’envoie aucun e-mail tant que SMTP_HOSTNAME, SMTP_USERNAME, SMTP_PASSWORD et SMTP_FROM ne sont pas dans le .env du projet et que le projet n’a pas redémarré. Les vidéos restent liées à cette adresse pour de bon : donnez au projet son adresse définitive avant d’en publier. Le transcodage occupe le CPU de la machine pendant qu’il tourne. Les vidéos et la configuration sont conservées dans /data et /config.
Ce qui tourne
Le template, c’est ce compose.yaml et les variables qu’il écrit dans le .env du projet. Pethost exécute le fichier tel qu’il est écrit.
# PeerTube's production docker-compose.yml without its nginx, certbot and postfix: the machine's
# proxy gives the address and HTTPS, and PeerTube serves its files itself.
services:
peertube:
image: chocobozzz/peertube:v8.3.1-trixie
restart: unless-stopped
environment:
PEERTUBE_WEBSERVER_HOSTNAME: ${HOST}
PEERTUBE_SECRET: ${PEERTUBE_SECRET}
PEERTUBE_DB_HOSTNAME: postgres
PEERTUBE_DB_USERNAME: peertube
PEERTUBE_DB_PASSWORD: ${DB_PASSWORD}
PEERTUBE_REDIS_HOSTNAME: redis
PEERTUBE_ADMIN_EMAIL: ${ADMIN_EMAIL}
# Read once, when the first start makes the user root.
PT_INITIAL_ROOT_PASSWORD: ${ADMIN_PASSWORD}
# Empty until SMTP_HOSTNAME and the rest are put into .env: then PeerTube sends mail.
PEERTUBE_SMTP_HOSTNAME: ${SMTP_HOSTNAME:-}
PEERTUBE_SMTP_PORT: ${SMTP_PORT:-587}
PEERTUBE_SMTP_USERNAME: ${SMTP_USERNAME:-}
PEERTUBE_SMTP_PASSWORD: ${SMTP_PASSWORD:-}
PEERTUBE_SMTP_FROM: ${SMTP_FROM:-}
PEERTUBE_SMTP_TLS: ${SMTP_TLS:-false}
PEERTUBE_SMTP_DISABLE_STARTTLS: "false"
volumes:
- data:/data
- config:/config
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
postgres:
image: postgres:17
restart: unless-stopped
environment:
POSTGRES_USER: peertube
POSTGRES_DB: peertube
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "peertube"]
interval: 5s
timeout: 5s
retries: 10
redis:
image: redis:7.4
restart: unless-stopped
volumes:
- redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
volumes:
data:
config:
db:
redis: