ニジカ投稿局 https://tv.nizika.tv
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

997 lines
34 KiB

  1. # /!\ DO NOT UPDATE THIS FILE, USE production.yaml instead /!\ #
  2. listen:
  3. hostname: '127.0.0.1'
  4. port: 9000
  5. # Correspond to your reverse proxy server_name/listen configuration (i.e., your public PeerTube instance URL)
  6. webserver:
  7. https: false
  8. hostname: 'localhost'
  9. port: 9000
  10. # Secrets you need to generate the first time you run PeerTube
  11. secrets:
  12. # Generate one using `openssl rand -hex 32`
  13. peertube: ''
  14. rates_limit:
  15. api:
  16. # 50 attempts in 10 seconds
  17. window: 10 seconds
  18. max: 50
  19. login:
  20. # 15 attempts in 5 min
  21. window: 5 minutes
  22. max: 15
  23. signup:
  24. # 2 attempts in 5 min (only succeeded attempts are taken into account)
  25. window: 5 minutes
  26. max: 2
  27. ask_send_email:
  28. # 3 attempts in 5 min
  29. window: 5 minutes
  30. max: 3
  31. receive_client_log:
  32. # 1 attempt every 2 seconds
  33. window: 1 minute
  34. max: 30
  35. plugins:
  36. # 500 attempts in 10 seconds (we also serve plugin static files)
  37. window: 10 seconds
  38. max: 500
  39. well_known:
  40. # 200 attempts in 10 seconds
  41. window: 10 seconds
  42. max: 200
  43. feeds:
  44. # 50 attempts in 10 seconds
  45. window: 10 seconds
  46. max: 50
  47. activity_pub:
  48. # 500 attempts in 10 seconds (we can have many AP requests)
  49. window: 10 seconds
  50. max: 500
  51. client: # HTML files generated by PeerTube
  52. # 500 attempts in 10 seconds (to not break crawlers)
  53. window: 10 seconds
  54. max: 500
  55. oauth2:
  56. token_lifetime:
  57. access_token: '1 day'
  58. refresh_token: '2 weeks'
  59. # Proxies to trust to get real client IP
  60. # If you run PeerTube just behind a local proxy (nginx), keep 'loopback'
  61. # If you run PeerTube behind a remote proxy, add the proxy IP address (or subnet)
  62. trust_proxy:
  63. - 'loopback'
  64. # Your database name will be database.name OR 'peertube'+database.suffix
  65. database:
  66. hostname: '127.0.0.1'
  67. port: 5432
  68. ssl: false
  69. suffix: '_dev'
  70. username: 'peertube'
  71. password: 'peertube'
  72. pool:
  73. max: 5
  74. # Redis server for short time storage
  75. # You can also specify a 'socket' path to a unix socket but first need to
  76. # set 'hostname' and 'port' to null
  77. redis:
  78. hostname: '127.0.0.1'
  79. port: 6379
  80. auth: null # Used by both standalone and sentinel
  81. db: 0
  82. sentinel:
  83. enabled: false
  84. enable_tls: false
  85. master_name: ''
  86. sentinels:
  87. - hostname: ''
  88. port: 26379
  89. # SMTP server to send emails
  90. smtp:
  91. # smtp or sendmail
  92. transport: smtp
  93. # Path to sendmail command. Required if you use sendmail transport
  94. sendmail: null
  95. hostname: null
  96. port: 465 # If you use StartTLS: 587
  97. username: null
  98. password: null
  99. tls: true # If you use StartTLS: false
  100. disable_starttls: false
  101. ca_file: null # Used for self signed certificates
  102. from_address: 'admin@example.com'
  103. email:
  104. body:
  105. signature: 'PeerTube'
  106. subject:
  107. prefix: '[PeerTube]'
  108. # Update default PeerTube values
  109. # Set by API when the field is not provided and put as default value in client
  110. defaults:
  111. # Change default values when publishing a video (upload/import/go Live)
  112. publish:
  113. download_enabled: true
  114. # enabled = 1, disabled = 2, requires_approval = 3
  115. comments_policy: 1
  116. # public = 1, unlisted = 2, private = 3, internal = 4
  117. privacy: 1
  118. # CC-BY = 1, CC-SA = 2, CC-ND = 3, CC-NC = 4, CC-NC-SA = 5, CC-NC-ND = 6, Public Domain = 7
  119. # You can also choose a custom licence value added by a plugin
  120. # No licence by default
  121. licence: null
  122. p2p:
  123. # Enable P2P by default in PeerTube client
  124. # Can be enabled/disabled by anonymous users and logged in users
  125. webapp:
  126. enabled: true
  127. # Enable P2P by default in PeerTube embed
  128. # Can be enabled/disabled by URL option
  129. embed:
  130. enabled: true
  131. # From the project root directory
  132. storage:
  133. tmp: 'storage/tmp/' # Use to download data (imports etc), store uploaded files before and during processing...
  134. tmp_persistent: 'storage/tmp-persistent/' # As tmp but the directory is not cleaned up between PeerTube restarts
  135. bin: 'storage/bin/'
  136. avatars: 'storage/avatars/'
  137. web_videos: 'storage/web-videos/'
  138. streaming_playlists: 'storage/streaming-playlists/'
  139. original_video_files: 'storage/original-video-files/'
  140. redundancy: 'storage/redundancy/'
  141. logs: 'storage/logs/'
  142. previews: 'storage/previews/'
  143. thumbnails: 'storage/thumbnails/'
  144. storyboards: 'storage/storyboards/'
  145. torrents: 'storage/torrents/'
  146. captions: 'storage/captions/'
  147. cache: 'storage/cache/'
  148. plugins: 'storage/plugins/'
  149. well_known: 'storage/well-known/'
  150. # Overridable client files in client/dist/assets/images:
  151. # - logo.svg
  152. # - favicon.png
  153. # - default-playlist.jpg
  154. # - default-avatar-account.png
  155. # - default-avatar-video-channel.png
  156. # - and icons/*.png (PWA)
  157. # Could contain for example assets/images/favicon.png
  158. # If the file exists, peertube will serve it
  159. # If not, peertube will fallback to the default file
  160. client_overrides: 'storage/client-overrides/'
  161. static_files:
  162. # Require and check user authentication when accessing private files (internal/private video files)
  163. private_files_require_auth: true
  164. object_storage:
  165. enabled: false
  166. # Without protocol, will default to HTTPS
  167. # Your S3 provider must support virtual hosting of buckets as PeerTube doesn't support path style requests
  168. endpoint: '' # 's3.amazonaws.com' or 's3.fr-par.scw.cloud' for example
  169. region: 'us-east-1'
  170. upload_acl:
  171. # Set this ACL on each uploaded object of public/unlisted videos
  172. # Use null if your S3 provider does not support object ACL
  173. public: 'public-read'
  174. # Set this ACL on each uploaded object of private/internal videos
  175. # PeerTube can proxify requests to private objects so your users can access them
  176. # Use null if your S3 provider does not support object ACL
  177. private: 'private'
  178. proxy:
  179. # If private files (private/internal video files) have a private ACL, users can't access directly the ressource
  180. # PeerTube can proxify requests between your object storage service and your users
  181. # If you disable PeerTube proxy, ensure you use your own proxy that is able to access the private files
  182. # Or you can also set a public ACL for private files in object storage if you don't want to use a proxy
  183. proxify_private_files: true
  184. credentials:
  185. # You can also use AWS_ACCESS_KEY_ID env variable
  186. access_key_id: ''
  187. # You can also use AWS_SECRET_ACCESS_KEY env variable
  188. secret_access_key: ''
  189. # Maximum amount to upload in one request to object storage
  190. max_upload_part: 100MB
  191. # Maximum number of attempts to make a request to object storage
  192. # Some object storage providers (for instance Backblaze) expects the client to retry upload upon 5xx errors
  193. # If you're using such a provider then you can increase this value
  194. max_request_attempts: 3
  195. streaming_playlists:
  196. bucket_name: 'streaming-playlists'
  197. # Allows setting all buckets to the same value but with a different prefix
  198. prefix: '' # Example: 'streaming-playlists:'
  199. # Base url for object URL generation, scheme and host will be replaced by this URL
  200. # Useful when you want to use a CDN/external proxy
  201. base_url: '' # Example: 'https://mirror.example.com'
  202. # PeerTube makes many small requests to the object storage provider to upload/delete/update live chunks
  203. # which can be a problem depending on your object storage provider
  204. # You can also choose to disable this feature to reduce live streams latency
  205. # Live stream replays are not affected by this setting, so they are uploaded in object storage as regular VOD videos
  206. store_live_streams: true
  207. web_videos:
  208. bucket_name: 'web-videos'
  209. prefix: ''
  210. base_url: ''
  211. user_exports:
  212. bucket_name: 'user-exports'
  213. prefix: ''
  214. base_url: ''
  215. # Same settings but for original video files
  216. original_video_files:
  217. bucket_name: 'original-video-files'
  218. prefix: ''
  219. base_url: ''
  220. log:
  221. level: 'info' # 'debug' | 'info' | 'warn' | 'error'
  222. rotation:
  223. enabled: true # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate
  224. max_file_size: 12MB
  225. max_files: 20
  226. anonymize_ip: false
  227. log_ping_requests: true
  228. log_tracker_unknown_infohash: true
  229. # If you have many concurrent requests, you can disable HTTP requests logging to reduce PeerTube CPU load
  230. log_http_requests: true
  231. prettify_sql: false
  232. # Accept warn/error logs coming from the client
  233. accept_client_log: true
  234. # Support of Open Telemetry metrics and tracing
  235. # For more information: https://docs.joinpeertube.org/maintain/observability
  236. open_telemetry:
  237. metrics:
  238. enabled: false
  239. # How often viewers send playback stats to server
  240. playback_stats_interval: '15 seconds'
  241. http_request_duration:
  242. # You can disable HTTP request duration metric that can have a high tag cardinality
  243. enabled: false
  244. # Create a prometheus exporter server on this port so prometheus server can scrape PeerTube metrics
  245. prometheus_exporter:
  246. hostname: '127.0.0.1'
  247. port: 9091
  248. tracing:
  249. # If tracing is enabled, you must provide --experimental-loader=@opentelemetry/instrumentation/hook.mjs flag to the node binary
  250. enabled: false
  251. # Send traces to a Jaeger compatible endpoint
  252. jaeger_exporter:
  253. endpoint: ''
  254. trending:
  255. videos:
  256. interval_days: 7 # Compute trending videos for the last x days for 'most-viewed' algorithm
  257. algorithms:
  258. enabled:
  259. - 'hot' # Adaptation of Reddit's 'Hot' algorithm
  260. - 'most-viewed' # Number of views in the last x days
  261. - 'most-liked' # Global views since the upload of the video
  262. default: 'most-viewed'
  263. # Cache remote videos on your server, to help other instances to broadcast the video
  264. # You can define multiple caches using different sizes/strategies
  265. # Once you have defined your strategies, choose which instances you want to cache in admin -> manage follows -> following
  266. redundancy:
  267. videos:
  268. check_interval: '1 hour' # How often you want to check new videos to cache
  269. strategies: # Just uncomment strategies you want
  270. # -
  271. # size: '10GB'
  272. # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
  273. # min_lifetime: '48 hours'
  274. # strategy: 'most-views' # Cache videos that have the most views
  275. # -
  276. # size: '10GB'
  277. # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
  278. # min_lifetime: '48 hours'
  279. # strategy: 'trending' # Cache trending videos
  280. # -
  281. # size: '10GB'
  282. # # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
  283. # min_lifetime: '48 hours'
  284. # strategy: 'recently-added' # Cache recently added videos
  285. # min_views: 10 # Having at least x views
  286. # Other instances that duplicate your content
  287. remote_redundancy:
  288. videos:
  289. # 'nobody': Do not accept remote redundancies
  290. # 'anybody': Accept remote redundancies from anybody
  291. # 'followings': Accept redundancies from instance followings
  292. accept_from: 'anybody'
  293. csp:
  294. enabled: false
  295. report_only: true # CSP directives are still being tested, so disable the report only mode at your own risk!
  296. report_uri:
  297. security:
  298. # Set the X-Frame-Options header to help to mitigate clickjacking attacks
  299. frameguard:
  300. enabled: true
  301. # Set x-powered-by HTTP header to "PeerTube"
  302. # Can help remote software to know this is a PeerTube instance
  303. powered_by_header:
  304. enabled: true
  305. tracker:
  306. # If you disable the tracker, you disable the P2P on your PeerTube instance
  307. enabled: true
  308. # Only handle requests on your videos
  309. # If you set this to false it means you have a public tracker
  310. # Then, it is possible that clients overload your instance with external torrents
  311. private: true
  312. # Reject peers that do a lot of announces (could improve privacy of TCP/UDP peers)
  313. reject_too_many_announces: false
  314. history:
  315. videos:
  316. # If you want to limit users videos history
  317. # -1 means there is no limitations
  318. # Other values could be '6 months' or '30 days' etc (PeerTube will periodically delete old entries from database)
  319. max_age: -1
  320. views:
  321. videos:
  322. # PeerTube creates a database entry every hour for each video to track views over a period of time
  323. # This is used in particular by the Trending page
  324. # PeerTube could remove old remote video views if you want to reduce your database size (video view counter will not be altered)
  325. # -1 means no cleanup
  326. # Other values could be '6 months' or '30 days' etc (PeerTube will periodically delete old entries from database)
  327. remote:
  328. max_age: '30 days'
  329. # PeerTube buffers local video views before updating and federating the video
  330. local_buffer_update_interval: '30 minutes'
  331. # How long does it take to count again a view from the same user
  332. view_expiration: '1 hour'
  333. # Minimum amount of time the viewer has to watch the video before PeerTube adds a view
  334. count_view_after: '10 seconds'
  335. # Player can send a session id string to track the user
  336. # Since this can be spoofed by users to create fake views, you have the option to disable this feature
  337. # If disabled, PeerTube will use the IP address to track the same user (default behavior before PeerTube 6.1)
  338. trust_viewer_session_id: true
  339. # How often the web browser sends "is watching" information to the server
  340. # Increase the value or set null to disable it if you plan to have many viewers
  341. watching_interval:
  342. # Non logged-in viewers
  343. anonymous: '5 seconds'
  344. # Logged-in users of your instance
  345. # Unlike anonymous viewers, this endpoint is also used to store the "last watched video timecode" for your users
  346. # Increasing this value reduces the accuracy of the video resume
  347. users: '5 seconds'
  348. # Used to get country location of views of local videos
  349. geo_ip:
  350. enabled: true
  351. country:
  352. database_url: 'https://dbip.mirror.framasoft.org/files/dbip-country-lite-latest.mmdb'
  353. city:
  354. database_url: 'https://dbip.mirror.framasoft.org/files/dbip-city-lite-latest.mmdb'
  355. plugins:
  356. # The website PeerTube will ask for available PeerTube plugins and themes
  357. # This is an unmoderated plugin index, so only install plugins/themes you trust
  358. index:
  359. enabled: true
  360. check_latest_versions_interval: '4 hours' # How often you want to check new plugins/themes versions
  361. url: 'https://packages.joinpeertube.org'
  362. federation:
  363. # Some federated software such as Mastodon may require an HTTP signature to access content
  364. sign_federated_fetches: true
  365. videos:
  366. federate_unlisted: false
  367. # Add a weekly job that cleans up remote AP interactions on local videos (shares, rates and comments)
  368. # It removes objects that do not exist anymore, and potentially fix their URLs
  369. cleanup_remote_interactions: true
  370. peertube:
  371. check_latest_version:
  372. # Check and notify admins of new PeerTube versions
  373. enabled: true
  374. # You can use a custom URL if your want, that respect the format behind https://joinpeertube.org/api/v1/versions.json
  375. url: 'https://joinpeertube.org/api/v1/versions.json'
  376. webadmin:
  377. configuration:
  378. edition:
  379. # Set this to false if you don't want to allow config edition in the web interface by instance admins
  380. allowed: true
  381. # XML, Atom or JSON feeds
  382. feeds:
  383. videos:
  384. # Default number of videos displayed in feeds
  385. count: 20
  386. comments:
  387. # Default number of comments displayed in feeds
  388. count: 20
  389. remote_runners:
  390. # Consider jobs that are processed by a remote runner as stalled after this period of time without any update
  391. stalled_jobs:
  392. live: '30 seconds'
  393. vod: '2 minutes'
  394. thumbnails:
  395. # When automatically generating a thumbnail from the video
  396. generation_from_video:
  397. # How many frames to analyze at the middle of the video to select the most appropriate one
  398. # Increasing this value will increase CPU and memory usage when generating the thumbnail, especially for high video resolution
  399. # Minimum value is 2
  400. frames_to_analyze: 50
  401. # Only two sizes are currently supported for now (not less, not more)
  402. # 1 size for the thumbnail (displayed in video miniatures)
  403. # 1 size for the preview (displayed in the video player)
  404. sizes:
  405. -
  406. width: 280
  407. height: 157
  408. -
  409. width: 850
  410. height: 480
  411. stats:
  412. # Display registration requests stats (average response time, total requests...)
  413. registration_requests:
  414. enabled: true
  415. # Display abuses stats (average response time, total abuses...)
  416. abuses:
  417. enabled: true
  418. total_moderators:
  419. enabled: true
  420. total_admins:
  421. enabled: true
  422. cache:
  423. previews:
  424. size: 500 # Max number of previews you want to cache
  425. captions:
  426. size: 500 # Max number of video captions/subtitles you want to cache
  427. torrents:
  428. size: 500 # Max number of video torrents you want to cache
  429. storyboards:
  430. size: 500 # Max number of video storyboards you want to cache
  431. admin:
  432. # Used to generate the root user at first startup
  433. # And to receive emails from the contact form
  434. email: 'admin@example.com'
  435. contact_form:
  436. enabled: true
  437. signup:
  438. enabled: false
  439. limit: 10 # When the limit is reached, registrations are disabled. -1 == unlimited
  440. minimum_age: 16 # Used to configure the signup form
  441. # Users fill a form to register so moderators can accept/reject the registration
  442. requires_approval: true
  443. requires_email_verification: false
  444. filters:
  445. cidr: # You can specify CIDR ranges to whitelist (empty = no filtering) or blacklist
  446. whitelist: []
  447. blacklist: []
  448. user:
  449. history:
  450. videos:
  451. # Enable or disable video history by default for new users.
  452. enabled: true
  453. # Default value of maximum video bytes the user can upload
  454. # Does not take into account transcoded files or account export archives (that can include user uploaded files)
  455. # Byte format is supported ("1GB" etc)
  456. # -1 == unlimited
  457. video_quota: -1
  458. video_quota_daily: -1
  459. default_channel_name: 'Main $1 channel' # The placeholder $1 is used to represent the user's username
  460. video_channels:
  461. max_per_user: 20 # Allows each user to create up to 20 video channels.
  462. # If enabled, the video will be transcoded to mp4 (x264) with `faststart` flag
  463. # In addition, if some resolutions are enabled the mp4 video file will be transcoded to these new resolutions
  464. # Please, do not disable transcoding since many uploaded videos will not work
  465. transcoding:
  466. enabled: true
  467. original_file:
  468. # If false the uploaded file is deleted after transcoding
  469. # If yes it is not deleted but moved in a dedicated folder or object storage
  470. keep: false
  471. # Allow your users to upload .mkv, .mov, .avi, .wmv, .flv, .f4v, .3g2, .3gp, .mts, m2ts, .mxf, .nut videos
  472. allow_additional_extensions: true
  473. # If a user uploads an audio file, PeerTube will create a video by merging the preview file and the audio file
  474. allow_audio_files: true
  475. # Enable remote runners to transcode your videos
  476. # If enabled, your instance won't transcode the videos itself
  477. # At least 1 remote runner must be configured to transcode your videos
  478. remote_runners:
  479. enabled: false
  480. # Amount of threads used by ffmpeg for 1 local transcoding job
  481. threads: 1
  482. # Amount of local transcoding jobs to execute in parallel
  483. concurrency: 1
  484. # Choose the local transcoding profile
  485. # New profiles can be added by plugins
  486. # Available in core PeerTube: 'default'
  487. profile: 'default'
  488. resolutions: # Only created if the original video has a higher resolution, uses more storage!
  489. 0p: false # audio-only (creates mp4 without video stream, always created when enabled)
  490. 144p: false
  491. 240p: false
  492. 360p: false
  493. 480p: false
  494. 720p: false
  495. 1080p: false
  496. 1440p: false
  497. 2160p: false
  498. # Transcode and keep original resolution, even if it's above your maximum enabled resolution
  499. always_transcode_original_resolution: true
  500. # Generate videos in a web compatible format
  501. # If you also enabled the hls format, it will multiply videos storage by 2
  502. # If disabled, breaks federation with PeerTube instances < 2.1
  503. web_videos:
  504. enabled: false
  505. # /!\ Requires ffmpeg >= 4.1
  506. # Generate HLS playlists and fragmented MP4 files. Better playback than with Web Videos:
  507. # * Resolution change is smoother
  508. # * Faster playback in particular with long videos
  509. # * More stable playback (less bugs/infinite loading)
  510. # If you also enabled the web videos format, it will multiply videos storage by 2
  511. hls:
  512. enabled: true
  513. live:
  514. enabled: false
  515. # Limit lives duration
  516. # -1 == unlimited
  517. max_duration: -1 # For example: '5 hours'
  518. # Limit max number of live videos created on your instance
  519. # -1 == unlimited
  520. max_instance_lives: 20
  521. # Limit max number of live videos created by a user on your instance
  522. # -1 == unlimited
  523. max_user_lives: 3
  524. # Allow your users to save a replay of their live
  525. # PeerTube will transcode segments in a video file
  526. # If the user daily/total quota is reached, PeerTube will stop the live
  527. # /!\ transcoding.enabled (and not live.transcoding.enabled) has to be true to create a replay
  528. allow_replay: true
  529. # Allow your users to change latency settings (small latency/default/high latency)
  530. # Small latency live streams cannot use P2P
  531. # High latency live streams can increase P2P ratio
  532. latency_setting:
  533. enabled: true
  534. # Your firewall should accept traffic from this port in TCP if you enable live
  535. rtmp:
  536. enabled: true
  537. # Listening hostname/port for RTMP server
  538. # '::' to listen on IPv6 and IPv4, '0.0.0.0' to listen on IPv4
  539. # Use null to automatically listen on '::' if IPv6 is available, or '0.0.0.0' otherwise
  540. hostname: null
  541. port: 1935
  542. # Public hostname of your RTMP server
  543. # Use null to use the same value than `webserver.hostname`
  544. public_hostname: null
  545. rtmps:
  546. enabled: false
  547. # Listening hostname/port for RTMPS server
  548. # '::' to listen on IPv6 and IPv4, '0.0.0.0' to listen on IPv4
  549. # Use null to automatically listen on '::' if IPv6 is available, or '0.0.0.0' otherwise
  550. hostname: null
  551. port: 1936
  552. # Absolute paths
  553. key_file: ''
  554. cert_file: ''
  555. # Public hostname of your RTMPS server
  556. # Use null to use the same value than `webserver.hostname`
  557. public_hostname: null
  558. # Allow to transcode the live streaming in multiple live resolutions
  559. transcoding:
  560. enabled: true
  561. # Enable remote runners to transcode your videos
  562. # If enabled, your instance won't transcode the videos itself
  563. # At least 1 remote runner must be configured to transcode your videos
  564. remote_runners:
  565. enabled: false
  566. # Amount of threads used by ffmpeg per live when using local transcoding
  567. threads: 2
  568. # Choose the local transcoding profile
  569. # New profiles can be added by plugins
  570. # Available in core PeerTube: 'default'
  571. profile: 'default'
  572. resolutions:
  573. 144p: false
  574. 240p: false
  575. 360p: false
  576. 480p: false
  577. 720p: false
  578. 1080p: false
  579. 1440p: false
  580. 2160p: false
  581. # Also transcode original resolution, even if it's above your maximum enabled resolution
  582. always_transcode_original_resolution: true
  583. video_studio:
  584. # Enable video edition by users (cut, add intro/outro, add watermark etc)
  585. # If enabled, users can create transcoding tasks as they wish
  586. enabled: false
  587. # Enable remote runners to transcode studio tasks
  588. # If enabled, your instance won't transcode the videos itself
  589. # At least 1 remote runner must be configured to transcode your videos
  590. remote_runners:
  591. enabled: false
  592. video_transcription:
  593. # Enable automatic transcription of videos
  594. enabled: false
  595. # Choose engine for local transcription
  596. # Supported: 'openai-whisper' or 'whisper-ctranslate2'
  597. engine: 'whisper-ctranslate2'
  598. # You can set a custom engine path for local transcription
  599. # If not provided, PeerTube will try to automatically install it in the PeerTube bin directory
  600. engine_path: null
  601. # Choose engine model for local transcription
  602. # Available for 'openai-whisper' and 'whisper-ctranslate2': 'tiny', 'base', 'small', 'medium' or 'large-v3'
  603. model: 'small'
  604. # Or specify the model path:
  605. # * PyTorch model file path for 'openai-whisper'
  606. # * CTranslate2 Whisper model directory path for 'whisper-ctranslate2'
  607. # If not provided, PeerTube will automatically download the model
  608. model_path: null
  609. # Enable remote runners to transcribe videos
  610. # If enabled, your instance won't transcribe the videos itself
  611. # At least 1 remote runner must be configured to transcribe your videos
  612. remote_runners:
  613. enabled: false
  614. video_file:
  615. update:
  616. # Add ability for users to replace the video file of an existing video
  617. enabled: false
  618. import:
  619. # Add ability for your users to import remote videos (from YouTube, torrent...)
  620. videos:
  621. # Amount of import jobs to execute in parallel
  622. concurrency: 1
  623. # Set a custom video import timeout to not block import queue
  624. timeout: '2 hours'
  625. # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
  626. http:
  627. # We recommend to use a HTTP proxy if you enable HTTP import to prevent private URL access from this server
  628. # See https://docs.joinpeertube.org/maintain/configuration#security for more information
  629. enabled: false
  630. youtube_dl_release:
  631. # Direct download URL to youtube-dl binary
  632. # Github releases API is also supported
  633. # Examples:
  634. # * https://api.github.com/repos/ytdl-org/youtube-dl/releases
  635. # * https://api.github.com/repos/yt-dlp/yt-dlp/releases
  636. # * https://yt-dl.org/downloads/latest/youtube-dl
  637. url: 'https://api.github.com/repos/yt-dlp/yt-dlp/releases'
  638. # Release binary name: 'yt-dlp' or 'youtube-dl'
  639. name: 'yt-dlp'
  640. # Path to the python binary to execute for youtube-dl or yt-dlp
  641. python_path: '/usr/bin/python3'
  642. # IPv6 is very strongly rate-limited on most sites supported by youtube-dl
  643. force_ipv4: false
  644. # Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file)
  645. torrent:
  646. # We recommend to only enable magnet URI/torrent import if you trust your users
  647. # See https://docs.joinpeertube.org/maintain/configuration#security for more information
  648. enabled: false
  649. # Add ability for your users to synchronize their channels with external channels, playlists, etc
  650. video_channel_synchronization:
  651. enabled: false
  652. max_per_user: 10
  653. check_interval: 1 hour
  654. # Number of latest published videos to check and to potentially import when syncing a channel
  655. videos_limit_per_synchronization: 10
  656. # Max number of videos to import when the user asks for full sync
  657. full_sync_videos_limit: 1000
  658. users:
  659. # Video quota is checked on import so the user doesn't upload a too big archive file
  660. # Video quota (daily quota is not taken into account) is also checked for each video when PeerTube is processing the import
  661. enabled: true
  662. export:
  663. users:
  664. # Allow users to export their PeerTube data in a .zip for backup or re-import
  665. # Only one export at a time is allowed per user
  666. enabled: true
  667. # Max size of the current user quota to accept or not the export
  668. # Goal of this setting is to not store too big archive file on your server disk
  669. max_user_video_quota: 10GB
  670. # How long PeerTube should keep the user export
  671. export_expiration: '2 days'
  672. auto_blacklist:
  673. # New videos automatically blacklisted so moderators can review before publishing
  674. videos:
  675. of_users:
  676. enabled: false
  677. # Instance settings
  678. instance:
  679. name: 'PeerTube'
  680. short_description: 'PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.'
  681. description: 'Welcome to this PeerTube instance!' # Support markdown
  682. terms: 'No terms for now.' # Support markdown
  683. code_of_conduct: '' # Supports markdown
  684. # Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
  685. moderation_information: '' # Supports markdown
  686. # Why did you create this instance?
  687. creation_reason: '' # Supports Markdown
  688. # Who is behind the instance? A single person? A non profit?
  689. administrator: '' # Supports Markdown
  690. # How long do you plan to maintain this instance?
  691. maintenance_lifetime: '' # Supports Markdown
  692. # How will you pay the PeerTube instance server? With your own funds? With users donations? Advertising?
  693. business_model: '' # Supports Markdown
  694. # If you want to explain on what type of hardware your PeerTube instance runs
  695. # Example: '2 vCore, 2GB RAM...'
  696. hardware_information: '' # Supports Markdown
  697. # What are the main languages of your instance? To interact with your users for example
  698. # Uncomment or add the languages you want
  699. # List of supported languages: https://peertube.cpy.re/api/v1/videos/languages
  700. languages:
  701. # - en
  702. # - es
  703. # - fr
  704. # You can specify the main categories of your instance (dedicated to music, gaming or politics etc)
  705. # Uncomment or add the category ids you want
  706. # List of supported categories: https://peertube.cpy.re/api/v1/videos/categories
  707. categories:
  708. # - 1 # Music
  709. # - 2 # Films
  710. # - 3 # Vehicles
  711. # - 4 # Art
  712. # - 5 # Sports
  713. # - 6 # Travels
  714. # - 7 # Gaming
  715. # - 8 # People
  716. # - 9 # Comedy
  717. # - 10 # Entertainment
  718. # - 11 # News & Politics
  719. # - 12 # How To
  720. # - 13 # Education
  721. # - 14 # Activism
  722. # - 15 # Science & Technology
  723. # - 16 # Animals
  724. # - 17 # Kids
  725. # - 18 # Food
  726. default_client_route: '/videos/trending'
  727. # Whether or not the instance is dedicated to NSFW content
  728. # Enabling it will allow other administrators to know that you are mainly federating sensitive content
  729. # Moreover, the NSFW checkbox on video upload will be automatically checked by default
  730. is_nsfw: false
  731. # By default, `do_not_list` or `blur` or `display` NSFW videos
  732. # Could be overridden per user with a setting
  733. default_nsfw_policy: 'do_not_list'
  734. customizations:
  735. javascript: '' # Directly your JavaScript code (without <script> tags). Will be eval at runtime
  736. css: '' # Directly your CSS code (without <style> tags). Will be injected at runtime
  737. # Robot.txt rules. To disallow robots to crawl your instance and disallow indexation of your site, add `/` to `Disallow:`
  738. robots: |
  739. User-agent: *
  740. Disallow:
  741. # /.well-known/security.txt rules. This endpoint is cached, so you may have to wait a few hours before viewing your changes
  742. # To discourage researchers from testing your instance and disable security.txt integration, set this to an empty string
  743. securitytxt: |
  744. Contact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md
  745. Expires: 2025-12-31T11:00:00.000Z'
  746. services:
  747. # Cards configuration to format video in Twitter/X
  748. # All other social media (Facebook, Mastodon, etc.) are supported out of the box
  749. twitter:
  750. # Indicates the Twitter/X account for the website or platform where the content was published
  751. # This is just an information injected in HTML that is required by Twitter/X
  752. username: '@Chocobozzz'
  753. followers:
  754. instance:
  755. # Allow or not other instances to follow yours
  756. enabled: true
  757. # Whether or not an administrator must manually validate a new follower
  758. manual_approval: false
  759. followings:
  760. instance:
  761. # If you want to automatically follow back new instance followers
  762. # If this option is enabled, use the mute feature instead of deleting followings
  763. # /!\ Don't enable this if you don't have a reactive moderation team /!\
  764. auto_follow_back:
  765. enabled: false
  766. # If you want to automatically follow instances of the public index
  767. # If this option is enabled, use the mute feature instead of deleting followings
  768. # /!\ Don't enable this if you don't have a reactive moderation team /!\
  769. auto_follow_index:
  770. enabled: false
  771. # Host your own using https://framagit.org/framasoft/peertube/instances-peertube#peertube-auto-follow
  772. index_url: ''
  773. theme:
  774. default: 'default'
  775. broadcast_message:
  776. enabled: false
  777. message: '' # Support markdown
  778. level: 'info' # 'info' | 'warning' | 'error'
  779. dismissable: false
  780. search:
  781. # Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
  782. # If enabled, the associated group will be able to "escape" from the instance follows
  783. # That means they will be able to follow channels, watch videos, list videos of non followed instances
  784. remote_uri:
  785. users: true
  786. anonymous: false
  787. # Use a third party index instead of your local index, only for search results
  788. # Useful to discover content outside of your instance
  789. # If you enable search_index, you must enable remote_uri search for users
  790. # If you do not enable remote_uri search for anonymous user, your instance will redirect the user on the origin instance
  791. # instead of loading the video locally
  792. search_index:
  793. enabled: false
  794. # URL of the search index, that should use the same search API and routes
  795. # than PeerTube: https://docs.joinpeertube.org/api-rest-reference.html
  796. # You should deploy your own with https://framagit.org/framasoft/peertube/search-index,
  797. # and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index
  798. url: ''
  799. # You can disable local search in the client, so users only use the search index
  800. disable_local_search: false
  801. # If you did not disable local search in the client, you can decide to use the search index by default
  802. is_default_search: false
  803. # PeerTube client/interface configuration
  804. client:
  805. videos:
  806. miniature:
  807. # By default PeerTube client displays author username
  808. prefer_author_display_name: false
  809. display_author_avatar: false
  810. resumable_upload:
  811. # Max size of upload chunks, e.g. '90MB'
  812. # If null, it will be calculated based on network speed
  813. max_chunk_size: null
  814. menu:
  815. login:
  816. # If you enable only one external auth plugin
  817. # You can automatically redirect your users on this external platform when they click on the login button
  818. redirect_on_single_external_auth: false
  819. storyboards:
  820. # Generate storyboards of local videos using ffmpeg so users can see the video preview in the player while scrubbing the video
  821. enabled: true