%compiler-settings commentStartToken = ยง %end compiler-settings listen: hostname: 'localhost' port: 9000 # Correspond to your reverse proxy server_name/listen configuration (i.e., your public PeerTube instance URL) webserver: https: true hostname: '%%revprox_client_external_domainnames[0]' port: 443 rates_limit: api: # 50 attempts in 10 seconds window: 10 seconds max: 50 login: # 15 attempts in 5 min window: 5 minutes max: 15 signup: # 2 attempts in 5 min (only succeeded attempts are taken into account) window: 5 minutes max: 2 ask_send_email: # 3 attempts in 5 min window: 5 minutes max: 3 receive_client_log: # 10 attempts in 10 min window: 10 minutes max: 10 # Proxies to trust to get real client IP # If you run PeerTube just behind a local proxy (nginx), keep 'loopback' # If you run PeerTube behind a remote proxy, add the proxy IP address (or subnet) trust_proxy: - 'loopback' # Your database name will be database.name OR 'peertube'+database.suffix database: hostname: '%%pg_client_server_domainname' port: 5432 ssl: true suffix: '_prod' name: '%%pg_client_database' username: '%%pg_client_username' password: '%%pg_client_password' pool: max: 5 # Redis server for short time storage # You can also specify a 'socket' path to a unix socket but first need to # set 'hostname' and 'port' to null redis: hostname: '%%redis_client_server_domainname' port: 6379 auth: '%%redis_client_password' db: 0 # SMTP server to send emails smtp: # smtp or sendmail transport: smtp # Path to sendmail command. Required if you use sendmail transport sendmail: null hostname: '%%smtp_relay_address' port: 25 # If you use StartTLS: 587 username: '%%smtp_relay_user' password: '%%smtp_relay_password' tls: false # If you use StartTLS: false disable_starttls: false ca_file: '/etc/pki/ca-trust/source/anchors/ca_MailRelay.crt' # Used for self signed certificates from_address: '%%peertube_admin_email' email: body: signature: 'PeerTube' subject: prefix: '[PeerTube]' # Update default PeerTube values # Set by API when the field is not provided and put as default value in client defaults: # Change default values when publishing a video (upload/import/go Live) publish: download_enabled: true comments_enabled: true # public = 1, unlisted = 2, private = 3, internal = 4 privacy: 1 # CC-BY = 1, CC-SA = 2, CC-ND = 3, CC-NC = 4, CC-NC-SA = 5, CC-NC-ND = 6, Public Domain = 7 # You can also choose a custom licence value added by a plugin # No licence by default licence: null p2p: # Enable P2P by default in PeerTube client # Can be enabled/disabled by anonymous users and logged in users webapp: enabled: true # Enable P2P by default in PeerTube embed # Can be enabled/disabled by URL option embed: enabled: true # From the project root directory storage: tmp: '/srv/peertube/tmp/' # Use to download data (imports etc), store uploaded files before and during processing... bin: '/srv/peertube/bin/' avatars: '/srv/peertube/avatars/' videos: '/srv/peertube/videos/' streaming_playlists: '/srv/peertube/streaming-playlists/' redundancy: '/srv/peertube/redundancy/' logs: '/srv/peertube/logs/' previews: '/srv/peertube/previews/' thumbnails: '/srv/peertube/thumbnails/' torrents: '/srv/peertube/torrents/' captions: '/srv/peertube/captions/' cache: '/srv/peertube/cache/' plugins: '/usr/share/peertube_plugins/' # Overridable client files in client/dist/assets/images: # - logo.svg # - favicon.png # - default-playlist.jpg # - default-avatar-account.png # - default-avatar-video-channel.png # - and icons/*.png (PWA) # Could contain for example assets/images/favicon.png # If the file exists, peertube will serve it # If not, peertube will fallback to the default file client_overrides: '/srv/peertube/client-overrides/' object_storage: enabled: false # Without protocol, will default to HTTPS endpoint: '' # 's3.amazonaws.com' or 's3.fr-par.scw.cloud' for example region: 'us-east-1' # Set this ACL on each uploaded object upload_acl: 'public-read' credentials: # You can also use AWS_ACCESS_KEY_ID env variable access_key_id: '' # You can also use AWS_SECRET_ACCESS_KEY env variable secret_access_key: '' # Maximum amount to upload in one request to object storage # GNUNUX max_upload_part: 100MB #>GNUNUX max_upload_part: 2GB #GNUNUX enabled : false # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate # manage follows -> following redundancy: videos: check_interval: '1 hour' # How often you want to check new videos to cache strategies: # Just uncomment strategies you want # - # size: '10GB' # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances) # min_lifetime: '48 hours' # strategy: 'most-views' # Cache videos that have the most views # - # size: '10GB' # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances) # min_lifetime: '48 hours' # strategy: 'trending' # Cache trending videos # - # size: '10GB' # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances) # min_lifetime: '48 hours' # strategy: 'recently-added' # Cache recently added videos # min_views: 10 # Having at least x views # Other instances that duplicate your content remote_redundancy: videos: # 'nobody': Do not accept remote redundancies # 'anybody': Accept remote redundancies from anybody # 'followings': Accept redundancies from instance followings accept_from: 'anybody' csp: enabled: false report_only: true # CSP directives are still being tested, so disable the report only mode at your own risk! report_uri: security: # Set the X-Frame-Options header to help to mitigate clickjacking attacks frameguard: enabled: true tracker: # If you disable the tracker, you disable the P2P on your PeerTube instance enabled: true # Only handle requests on your videos # If you set this to false it means you have a public tracker # Then, it is possible that clients overload your instance with external torrents private: true # Reject peers that do a lot of announces (could improve privacy of TCP/UDP peers) reject_too_many_announces: false history: videos: # If you want to limit users videos history # -1 means there is no limitations # Other values could be '6 months' or '30 days' etc (PeerTube will periodically delete old entries from database) max_age: -1 views: videos: # PeerTube creates a database entry every hour for each video to track views over a period of time # This is used in particular by the Trending page # PeerTube could remove old remote video views if you want to reduce your database size (video view counter will not be altered) # -1 means no cleanup # Other values could be '6 months' or '30 days' etc (PeerTube will periodically delete old entries from database) remote: max_age: '30 days' # PeerTube buffers local video views before updating and federating the video local_buffer_update_interval: '30 minutes' ip_view_expiration: '1 hour' # Used to get country location of views of local videos geo_ip: enabled: true country: database_url: 'https://dbip.mirror.framasoft.org/files/dbip-country-lite-latest.mmdb' plugins: # The website PeerTube will ask for available PeerTube plugins and themes # This is an unmoderated plugin index, so only install plugins/themes you trust index: # GNUNUX enabled: true #>GNUNUX enabled: false #GNUNUX enabled: false #GNUNUX allowed: false #= 4.1 # Generate HLS playlists and fragmented MP4 files. Better playback than with WebTorrent: # * Resolution change is smoother # * Faster playback in particular with long videos # * More stable playback (less bugs/infinite loading) # If you also enabled the webtorrent format, it will multiply videos storage by 2 hls: enabled: true live: enabled: false # Limit lives duration # -1 == unlimited max_duration: -1 # For example: '5 hours' # Limit max number of live videos created on your instance # -1 == unlimited max_instance_lives: 20 # Limit max number of live videos created by a user on your instance # -1 == unlimited max_user_lives: 3 # Allow your users to save a replay of their live # PeerTube will transcode segments in a video file # If the user daily/total quota is reached, PeerTube will stop the live # /!\ transcoding.enabled (and not live.transcoding.enabled) has to be true to create a replay allow_replay: true # Allow your users to change latency settings (small latency/default/high latency) # Small latency live streams cannot use P2P # High latency live streams can increase P2P ratio latency_setting: enabled: true # Your firewall should accept traffic from this port in TCP if you enable live rtmp: enabled: true # Listening hostname/port for RTMP server # '::' to listen on IPv6 and IPv4, '0.0.0.0' to listen on IPv4 # Use null to automatically listen on '::' if IPv6 is available, or '0.0.0.0' otherwise hostname: null port: 1935 # Public hostname of your RTMP server # Use null to use the same value than `webserver.hostname` public_hostname: null rtmps: enabled: false # Listening hostname/port for RTMPS server # '::' to listen on IPv6 and IPv4, '0.0.0.0' to listen on IPv4 # Use null to automatically listen on '::' if IPv6 is available, or '0.0.0.0' otherwise hostname: null port: 1936 # Absolute paths key_file: '' cert_file: '' # Public hostname of your RTMPS server # Use null to use the same value than `webserver.hostname` public_hostname: null # Allow to transcode the live streaming in multiple live resolutions transcoding: enabled: true threads: 2 # Choose the transcoding profile # New profiles can be added by plugins # Available in core PeerTube: 'default' profile: 'default' resolutions: 144p: false 240p: false 360p: false 480p: false 720p: false 1080p: false 1440p: false 2160p: false # Also transcode original resolution, even if it's above your maximum enabled resolution always_transcode_original_resolution: true video_studio: # Enable video edition by users (cut, add intro/outro, add watermark etc) # If enabled, users can create transcoding tasks as they wish enabled: false import: # Add ability for your users to import remote videos (from YouTube, torrent...) videos: # Amount of import jobs to execute in parallel concurrency: 1 # Set a custom video import timeout to not block import queue timeout: '2 hours' # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html http: # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server # See https://docs.joinpeertube.org/maintain-configuration?id=security for more information # GNUNUX enabled: false #>GNUNUX enabled: true #GNUNUX - fr # tags). Will be eval at runtime css: '' # Directly your CSS code (without