PeerTube на Pethost в один клік
Своя відеоплатформа у федиверсі: завантажуйте, транслюйте й діліться відео
Що відбудеться
- Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
- Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
- Вікно «Новий проєкт» відкривається на цьому застосунку. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Електронна пошта, Пароль адміністратора.
- За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
- Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.
Перші кроки
Увійдіть як root із паролем адміністратора, який ви вказали; PeerTube читає його лише під час першого запуску. Реєстрацію закрито, доки ви не ввімкнете її в конфігурації адміністрування, у розділі «Загальні». PeerTube не надсилає листів, доки SMTP_HOSTNAME, SMTP_USERNAME, SMTP_PASSWORD і SMTP_FROM не з’являться в .env проєкту і проєкт не перезапуститься. Відео назавжди прив’язані до цієї адреси, тож дайте проєкту остаточну адресу до перших завантажень. Перекодування займає CPU машини, поки триває. Відео та конфігурація зберігаються в /data і /config.
Що запускається
Шаблон — це цей compose.yaml і змінні, які він записує в .env проєкту. Pethost запускає файл так, як його написано.
# 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: