+ level: 'info' # 'debug' | 'info' | 'warn' | 'error'
+
+ rotation:
+ enabled : true # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate
+ max_file_size: 12MB
+ max_files: 20
+
+ anonymize_ip: false
+
+ log_ping_requests: true
+ log_tracker_unknown_infohash: true
+
+ prettify_sql: false
+
+ # Accept warn/error logs coming from the client
+ accept_client_log: true
+
+# Support of Open Telemetry metrics and tracing
+# For more information: https://docs.joinpeertube.org/maintain/observability
+open_telemetry:
+ metrics:
+ enabled: false
+
+ http_request_duration:
+ # You can disable HTTP request duration metric that can have a high tag cardinality
+ enabled: true
+
+ # Create a prometheus exporter server on this port so prometheus server can scrape PeerTube metrics
+ prometheus_exporter:
+ hostname: '127.0.0.1'
+ port: 9091
+
+ tracing:
+ enabled: false
+
+ # Send traces to a Jaeger compatible endpoint
+ jaeger_exporter:
+ endpoint: ''
+
+trending:
+ videos:
+ interval_days: 7 # Compute trending videos for the last x days for 'most-viewed' algorithm
+
+ algorithms:
+ enabled:
+ - 'hot' # Adaptation of Reddit's 'Hot' algorithm
+ - 'most-viewed' # Number of views in the last x days
+ - 'most-liked' # Global views since the upload of the video
+
+ default: 'most-viewed'
+
+# Cache remote videos on your server, to help other instances to broadcast the video
+# You can define multiple caches using different sizes/strategies
+# Once you have defined your strategies, choose which instances you want to cache in admin -> 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
+
+ # Set x-powered-by HTTP header to "PeerTube"
+ # Can help remote software to know this is a PeerTube instance
+ powered_by_header:
+ 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:
+ enabled: true
+ check_latest_versions_interval: '12 hours' # How often you want to check new plugins/themes versions
+ url: 'https://packages.joinpeertube.org'
+
+federation:
+ videos:
+ federate_unlisted: false
+
+ # Add a weekly job that cleans up remote AP interactions on local videos (shares, rates and comments)
+ # It removes objects that do not exist anymore, and potentially fix their URLs
+ cleanup_remote_interactions: true
+
+peertube:
+ check_latest_version:
+ # Check and notify admins of new PeerTube versions
+ enabled: true
+ # You can use a custom URL if your want, that respect the format behind https://joinpeertube.org/api/v1/versions.json
+ url: 'https://joinpeertube.org/api/v1/versions.json'
+
+webadmin:
+ configuration:
+ edition:
+ # Set this to false if you don't want to allow config edition in the web interface by instance admins
+ allowed: true
+
+# XML, Atom or JSON feeds
+feeds:
+ videos:
+ # Default number of videos displayed in feeds
+ count: 20
+
+ comments:
+ # Default number of comments displayed in feeds
+ count: 20
+
+remote_runners:
+ # Consider jobs that are processed by a remote runner as stalled after this period of time without any update
+ stalled_jobs:
+ live: '30 seconds'
+ vod: '2 minutes'
+
+###############################################################################
+#
+# From this point, almost all following keys can be overridden by the web interface
+# (local-production.json file). If you need to change some values, prefer to
+# use the web interface because the configuration will be automatically
+# reloaded without any need to restart PeerTube
+#
+# /!\ If you already have a local-production.json file, modification of some of
+# the following keys will have no effect /!\
+#
+###############################################################################