You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PeerTube is a federated, self-hosted video platform β peer-to-peer distribution via WebTorrent, ActivityPub federation with the rest of the fediverse.
Uses the prebuilt release, not a source build: prebuild mode with peertube-v*.zip. _deploy_unpacked_archive strips the single top-level dir, so the release lands directly in /opt/peertube. Then npm run install-node-dependencies -- --production.
Adapted from upstream support/doc/production.md to the project conventions: runs as root instead of a peertube user, /opt instead of /var/www/peertube.
Config:default.yaml copied from the release, plus a minimal production.yaml that only overrides what matters (PeerTube merges production over default). All 19 storage: keys are set to absolute /opt/peertube_data/storage/... paths so nothing lands in the app dir that CLEAN_INSTALL wipes.
listen.hostname is set to 0.0.0.0 β the upstream example defaults to 127.0.0.1, which would make the container unreachable from outside.
DB is peertube_prod with pg_trgm and unaccent via PG_DB_EXTENSIONS, matching the database.suffix: '_prod' convention.
Note: PeerTube does not support changing webserver.hostname after content exists β set the final domain before first use. Federation needs HTTPS; the install is plain HTTP on :9000 for initial setup. Both flagged as warnings.
Initial root password is generated on first start and printed to the journal.
The initial 'root' password is generated on first start and written to the log. Read it with: journalctl -u peertube | grep -i 'User password'
PeerTube does not support changing the webserver hostname after the fact - it is a documented, risky operation. Set webserver.hostname in /opt/peertube_data/config/production.yaml to your final domain BEFORE creating any content, then restart the service.
For federation and normal use PeerTube needs HTTPS on a public domain. The install is configured for plain HTTP on port 9000 for initial setup; put it behind a TLS reverse proxy and set webserver.https to true and port to 443.
Videos, thumbnails and logs live in /opt/peertube_data/storage, the configuration in /opt/peertube_data/config, and metadata in the PostgreSQL database 'peertube_prod'. Transcoding is CPU-heavy - give the container more cores if you upload a lot.
Note: This is not in the official repo yetβit's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
Activity
github-actions commentedon Aug 3, 2026
The PeerTube script is ready for testing:
Default credentials:
Username: root
The initial 'root' password is generated on first start and written to the log. Read it with: journalctl -u peertube | grep -i 'User password'
PeerTube does not support changing the webserver hostname after the fact - it is a documented, risky operation. Set webserver.hostname in /opt/peertube_data/config/production.yaml to your final domain BEFORE creating any content, then restart the service.
For federation and normal use PeerTube needs HTTPS on a public domain. The install is configured for plain HTTP on port 9000 for initial setup; put it behind a TLS reverse proxy and set webserver.https to true and port to 443.
Videos, thumbnails and logs live in /opt/peertube_data/storage, the configuration in /opt/peertube_data/config, and metadata in the PostgreSQL database 'peertube_prod'. Transcoding is CPU-heavy - give the container more cores if you upload a lot.
Note: This is not in the official repo yetβit's just a dev version! After merging into ProxmoxVE, it will need to be recreated.
Discord testing thread: https://discord.com/channels/1302816934508630047/1533830202541473792
github-actions commentedon Sep 2, 2026
A PR has been created for peertube: community-scripts/ProxmoxVE#16966
MickLesk commentedon Sep 2, 2026
Merged with #16966 in ProxmoxVE