Français
Commencer
← Tous les templates

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

  1. Vous vous connectez à Pethost ou créez un compte, avec une clé d’accès, GitHub ou Google.
  2. 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.
  3. 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.
  4. 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.
  5. 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: