Português
Começar
← Todos os templates

Faça o deploy de PeerTube no Pethost com um clique

Sua própria plataforma de vídeo no fediverso: envie, transmita e compartilhe vídeos

O que acontece

  1. Você entra no Pethost ou cria uma conta, com uma passkey, GitHub ou Google.
  2. Ainda não tem máquina? Você escolhe um plano, e nós preparamos uma para você. O link espera no seu navegador até ela ficar pronta.
  3. Novo projeto abre no app. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
  4. Em um ou dois minutos o app está no ar no próprio endereço com HTTPS. Os segredos dele são gerados ao acaso, e os dados vão para o backup noturno.
  5. É um projeto como qualquer outro: o compose.yaml, o .env, os logs e um terminal ficam no painel, e seu agente pode alterá-lo, fazer rollback ou restaurá-lo.

Primeiros passos

Entre como root com a senha de administrador que você informou; o PeerTube só a lê na primeira inicialização. Os cadastros ficam fechados até você ativá-los na configuração da administração, em Geral. O PeerTube não envia e-mails até que SMTP_HOSTNAME, SMTP_USERNAME, SMTP_PASSWORD e SMTP_FROM estejam no .env do projeto e o projeto reinicie. Os vídeos ficam ligados a este endereço para sempre, então dê ao projeto o endereço definitivo antes de enviar qualquer um. A transcodificação ocupa a CPU da máquina enquanto roda. Os vídeos e a configuração ficam guardados em /data e /config.

O que roda

O template é este compose.yaml e as variáveis que ele grava no .env do projeto. O Pethost roda o arquivo exatamente como está escrito.

# 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: