default.yaml 20.8 KB
Newer Older
1
2
# /!\ YOU SHOULD NOT UPDATE THIS FILE, USE production.yaml instead /!\ #

Chocobozzz's avatar
Spawn    
Chocobozzz committed
3
listen:
4
  hostname: '127.0.0.1'
Chocobozzz's avatar
Spawn    
Chocobozzz committed
5
6
  port: 9000

Chocobozzz's avatar
Chocobozzz committed
7
# Correspond to your reverse proxy server_name/listen configuration (i.e., your public PeerTube instance URL)
Chocobozzz's avatar
Spawn    
Chocobozzz committed
8
9
webserver:
  https: false
10
  hostname: 'localhost'
Chocobozzz's avatar
Spawn    
Chocobozzz committed
11
12
  port: 9000

13
rates_limit:
14
15
16
  api:
    # 50 attempts in 10 seconds
    window: 10 seconds
17
    max: 50
18
19
20
21
  login:
    # 15 attempts in 5 min
    window: 5 minutes
    max: 15
22
23
24
25
  signup:
    # 2 attempts in 5 min (only succeeded attempts are taken into account)
    window: 5 minutes
    max: 2
26
27
28
29
30
  ask_send_email:
    # 3 attempts in 5 min
    window: 5 minutes
    max: 3

Chocobozzz's avatar
Chocobozzz committed
31
32
33
34
35
36
# 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'

37
# Your database name will be database.name OR 'peertube'+database.suffix
Chocobozzz's avatar
Spawn    
Chocobozzz committed
38
database:
39
  hostname: 'localhost'
Chocobozzz's avatar
Chocobozzz committed
40
  port: 5432
Chocobozzz's avatar
Chocobozzz committed
41
  ssl: false
Chocobozzz's avatar
Chocobozzz committed
42
  suffix: '_dev'
Chocobozzz's avatar
Chocobozzz committed
43
44
  username: 'peertube'
  password: 'peertube'
Rigel Kent's avatar
Rigel Kent committed
45
46
  pool:
    max: 5
Chocobozzz's avatar
Spawn    
Chocobozzz committed
47

48
# Redis server for short time storage
Rigel Kent's avatar
Rigel Kent committed
49
50
# You can also specify a 'socket' path to a unix socket but first need to
# comment out hostname and port
Chocobozzz's avatar
Chocobozzz committed
51
52
53
54
redis:
  hostname: 'localhost'
  port: 6379
  auth: null
Rigel Kent's avatar
Rigel Kent committed
55
  db: 0
Chocobozzz's avatar
Chocobozzz committed
56

57
# SMTP server to send emails
Chocobozzz's avatar
Chocobozzz committed
58
smtp:
Ismaël Bouya's avatar
Ismaël Bouya committed
59
60
61
62
  # smtp or sendmail
  transport: smtp
  # Path to sendmail command. Required if you use sendmail transport
  sendmail: null
Chocobozzz's avatar
Chocobozzz committed
63
  hostname: null
64
  port: 465 # If you use StartTLS: 587
Chocobozzz's avatar
Chocobozzz committed
65
66
  username: null
  password: null
67
  tls: true # If you use StartTLS: false
Chocobozzz's avatar
Chocobozzz committed
68
  disable_starttls: false
Chocobozzz's avatar
Chocobozzz committed
69
70
71
  ca_file: null # Used for self signed certificates
  from_address: 'admin@example.com'

72
73
email:
  body:
74
    signature: 'PeerTube'
Chocobozzz's avatar
Chocobozzz committed
75
  subject:
76
    prefix: '[PeerTube]'
77

78
79
80
81
82
83
# 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
84

85
86
87
88
89
90
91
92
93
    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
94

95
  p2p:
96
    # Enable P2P by default in PeerTube client
97
    # Can be enabled/disabled by anonymous users and logged in users
98
99
100
101
102
103
104
    webapp:
      enabled: true

    # Enable P2P by default in PeerTube embed
    # Can be enabled/disabled by URL option
    embed:
      enabled: true
105

Chocobozzz's avatar
Spawn    
Chocobozzz committed
106
107
# From the project root directory
storage:
108
  tmp: 'storage/tmp/' # Use to download data (imports etc), store uploaded files before and during processing...
Chocobozzz's avatar
Chocobozzz committed
109
  bin: 'storage/bin/'
Chocobozzz's avatar
Chocobozzz committed
110
111
  avatars: 'storage/avatars/'
  videos: 'storage/videos/'
112
  streaming_playlists: 'storage/streaming-playlists/'
113
  redundancy: 'storage/redundancy/'
Chocobozzz's avatar
Chocobozzz committed
114
115
116
117
  logs: 'storage/logs/'
  previews: 'storage/previews/'
  thumbnails: 'storage/thumbnails/'
  torrents: 'storage/torrents/'
Chocobozzz's avatar
Chocobozzz committed
118
  captions: 'storage/captions/'
Chocobozzz's avatar
Chocobozzz committed
119
  cache: 'storage/cache/'
120
  plugins: 'storage/plugins/'
Chocobozzz's avatar
Chocobozzz committed
121
  # Overridable client files in client/dist/assets/images:
122
123
124
125
126
127
  # - logo.svg
  # - favicon.png
  # - default-playlist.jpg
  # - default-avatar-account.png
  # - default-avatar-video-channel.png
  # - and icons/*.png (PWA)
128
129
  # Could contain for example assets/images/favicon.png
  # If the file exists, peertube will serve it
Chocobozzz's avatar
Chocobozzz committed
130
  # If not, peertube will fallback to the default file
131
  client_overrides: 'storage/client-overrides/'
132

133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
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'

  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
  max_upload_part: 2GB

  streaming_playlists:
    bucket_name: 'streaming-playlists'

    # Allows setting all buckets to the same value but with a different prefix
    prefix: '' # Example: 'streaming-playlists:'

    # Base url for object URL generation, scheme and host will be replaced by this URL
    # Useful when you want to use a CDN/external proxy
    base_url: '' # Example: 'https://mirror.example.com'

  # Same settings but for webtorrent videos
  videos:
    bucket_name: 'videos'
    prefix: ''
    base_url: ''

166
log:
Chocobozzz's avatar
Chocobozzz committed
167
  level: 'info' # 'debug' | 'info' | 'warn' | 'error'
Nassim Bounouas's avatar
Nassim Bounouas committed
168
  rotation:
169
    enabled : true # Enabled by default, if disabled make sure that 'storage.logs' is pointing to a folder handled by logrotate
170
171
172
    max_file_size: 12MB
    max_files: 20
  anonymize_ip: false
173
  log_ping_requests: true
Chocobozzz's avatar
Chocobozzz committed
174
  prettify_sql: false
175

Chocobozzz's avatar
Chocobozzz committed
176
177
178
trending:
  videos:
    interval_days: 7 # Compute trending videos for the last x days
179
180
    algorithms:
      enabled:
181
182
        - 'best' # adaptation of Reddit's 'Best' algorithm (Hot minus History)
        - 'hot' # adaptation of Reddit's 'Hot' algorithm
183
184
185
        - 'most-viewed' # default, used initially by PeerTube as the trending page
        - 'most-liked'
      default: 'most-viewed'
Chocobozzz's avatar
Chocobozzz committed
186

187
188
189
190
191
# 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:
192
    check_interval: '1 hour' # How often you want to check new videos to cache
193
    strategies: # Just uncomment strategies you want
194
195
#      -
#        size: '10GB'
196
197
#        # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
#        min_lifetime: '48 hours'
198
199
200
#        strategy: 'most-views' # Cache videos that have the most views
#      -
#        size: '10GB'
201
202
#        # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
#        min_lifetime: '48 hours'
203
204
205
#        strategy: 'trending' # Cache trending videos
#      -
#        size: '10GB'
206
207
#        # Minimum time the video must remain in the cache. Only accept values > 10 hours (to not overload remote instances)
#        min_lifetime: '48 hours'
208
#        strategy: 'recently-added' # Cache recently added videos
209
#        min_views: 10 # Having at least x views
210

211
212
213
214
215
216
217
218
# 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'

219
220
221
222
223
csp:
  enabled: false
  report_only: true # CSP directives are still being tested, so disable the report only mode at your own risk!
  report_uri:

Chocobozzz's avatar
Chocobozzz committed
224
225
226
227
228
security:
  # Set the X-Frame-Options header to help to mitigate clickjacking attacks
  frameguard:
    enabled: true

Chocobozzz's avatar
Chocobozzz committed
229
tracker:
230
  # If you disable the tracker, you disable the P2P on your PeerTube instance
Chocobozzz's avatar
Chocobozzz committed
231
  enabled: true
Chocobozzz's avatar
Chocobozzz committed
232
233
  # Only handle requests on your videos
  # If you set this to false it means you have a public tracker
Chocobozzz's avatar
Chocobozzz committed
234
235
236
237
238
  # 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

239
240
241
242
243
244
245
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

246
247
248
249
250
251
252
253
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:
Chocobozzz's avatar
Chocobozzz committed
254
      max_age: '30 days'
255

Chocobozzz's avatar
Chocobozzz committed
256
257
258
259
260
    # PeerTube buffers local video views before updating and federating the video
    local_buffer_update_interval: '30 minutes'

    ip_view_expiration: '1 hour'

261
plugins:
262
263
  # The website PeerTube will ask for available PeerTube plugins and themes
  # This is an unmoderated plugin index, so only install plugins/themes you trust
264
265
  index:
    enabled: true
266
    check_latest_versions_interval: '12 hours' # How often you want to check new plugins/themes versions
267
268
    url: 'https://packages.joinpeertube.org'

269
270
federation:
  videos:
271
    federate_unlisted: false
272

273
274
    # 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
275
    cleanup_remote_interactions: true
276

277
278
279
280
281
282
283
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'

284
285
webadmin:
  configuration:
286
    edition:
Chocobozzz's avatar
Chocobozzz committed
287
      # Set this to false if you don't want to allow config edition in the web interface by instance admins
288
289
      allowed: true

290
291
cache:
  previews:
Chocobozzz's avatar
Chocobozzz committed
292
    size: 500 # Max number of previews you want to cache
Chocobozzz's avatar
Chocobozzz committed
293
  captions:
Chocobozzz's avatar
Chocobozzz committed
294
    size: 500 # Max number of video captions/subtitles you want to cache
295
296
  torrents:
    size: 500 # Max number of video torrents you want to cache
Chocobozzz's avatar
Chocobozzz committed
297
298

admin:
299
300
301
302
303
304
  # Used to generate the root user at first startup
  # And to receive emails from the contact form
  email: 'admin@example.com'

contact_form:
  enabled: true
Chocobozzz's avatar
Chocobozzz committed
305
306
307

signup:
  enabled: false
308
  limit: 10 # When the limit is reached, registrations are disabled. -1 == unlimited
309
  minimum_age: 16 # Used to configure the signup form
310
  requires_email_verification: false
311
  filters:
312
313
314
    cidr: # You can specify CIDR ranges to whitelist (empty = no filtering) or blacklist
      whitelist: []
      blacklist: []
315

Chocobozzz's avatar
Chocobozzz committed
316
user:
Chocobozzz's avatar
Chocobozzz committed
317
318
  # Default value of maximum video bytes the user can upload (does not take into account transcoded files)
  # Byte format is supported ("1GB" etc)
Chocobozzz's avatar
Chocobozzz committed
319
320
  # -1 == unlimited
  video_quota: -1
Felix's avatar
Felix committed
321
  video_quota_daily: -1
Chocobozzz's avatar
Chocobozzz committed
322

323
324
325
video_channels:
  max_per_user: 20 # Allows each user to create up to 20 video channels.

326
# If enabled, the video will be transcoded to mp4 (x264) with `faststart` flag
Chocobozzz's avatar
Chocobozzz committed
327
# In addition, if some resolutions are enabled the mp4 video file will be transcoded to these new resolutions
Chocobozzz's avatar
Chocobozzz committed
328
# Please, do not disable transcoding since many uploaded videos will not work
329
transcoding:
330
  enabled: true
331

332
  # Allow your users to upload .mkv, .mov, .avi, .wmv, .flv, .f4v, .3g2, .3gp, .mts, m2ts, .mxf, .nut videos
333
  allow_additional_extensions: true
334

Chocobozzz's avatar
Chocobozzz committed
335
336
  # If a user uploads an audio file, PeerTube will create a video by merging the preview file and the audio file
  allow_audio_files: true
337

338
  # Amount of threads used by ffmpeg for 1 transcoding job
339
  threads: 1
340
341
  # Amount of transcoding jobs to execute in parallel
  concurrency: 1
342
343
344
345
346
347

  # Choose the transcoding profile
  # New profiles can be added by plugins
  # Available in core PeerTube: 'default'
  profile: 'default'

Chocobozzz's avatar
Chocobozzz committed
348
  resolutions: # Only created if the original video has a higher resolution, uses more storage!
349
    0p: false # audio-only (creates mp4 without video stream, always created when enabled)
Florian CUNY's avatar
Florian CUNY committed
350
    144p: false
351
352
353
354
355
    240p: false
    360p: false
    480p: false
    720p: false
    1080p: false
356
    1440p: false
357
    2160p: false
Chocobozzz's avatar
Chocobozzz committed
358
359
360

  # Generate videos in a WebTorrent format (what we do since the first PeerTube release)
  # If you also enabled the hls format, it will multiply videos storage by 2
361
  # If disabled, breaks federation with PeerTube instances < 2.1
Chocobozzz's avatar
Chocobozzz committed
362
  webtorrent:
Chocobozzz's avatar
Chocobozzz committed
363
    enabled: false
Chocobozzz's avatar
Chocobozzz committed
364

365
  # /!\ Requires ffmpeg >= 4.1
Chocobozzz's avatar
Chocobozzz committed
366
  # Generate HLS playlists and fragmented MP4 files. Better playback than with WebTorrent:
Chocobozzz's avatar
Chocobozzz committed
367
368
369
  #     * Resolution change is smoother
  #     * Faster playback in particular with long videos
  #     * More stable playback (less bugs/infinite loading)
Chocobozzz's avatar
Chocobozzz committed
370
  # If you also enabled the webtorrent format, it will multiply videos storage by 2
Chocobozzz's avatar
Chocobozzz committed
371
  hls:
Chocobozzz's avatar
Chocobozzz committed
372
    enabled: true
373

374
375
376
live:
  enabled: false

377
  # Limit lives duration
378
379
  # -1 == unlimited
  max_duration: -1 # For example: '5 hours'
380

Chocobozzz's avatar
Chocobozzz committed
381
382
383
384
385
386
387
388
  # 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

389
390
391
392
  # 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
393
  allow_replay: true
394

395
  # Your firewall should accept traffic from this port in TCP if you enable live
396
  rtmp:
Chocobozzz's avatar
Chocobozzz committed
397
    enabled: true
398
399
    port: 1935

Chocobozzz's avatar
Chocobozzz committed
400
401
402
403
404
405
406
407
  rtmps:
    enabled: false
    port: 1936
    # Absolute path
    key_file: ''
    # Absolute path
    cert_file: ''

408
  # Allow to transcode the live streaming in multiple live resolutions
409
  transcoding:
410
    enabled: true
411
412
    threads: 2

413
414
415
416
417
    # Choose the transcoding profile
    # New profiles can be added by plugins
    # Available in core PeerTube: 'default'
    profile: 'default'

418
    resolutions:
Florian CUNY's avatar
Florian CUNY committed
419
      144p: false
420
421
422
423
424
      240p: false
      360p: false
      480p: false
      720p: false
      1080p: false
425
      1440p: false
426
427
      2160p: false

428
429
430
import:
  # Add ability for your users to import remote videos (from YouTube, torrent...)
  videos:
431
432
433
    # Amount of import jobs to execute in parallel
    concurrency: 1

434
    http: # Classic HTTP or all sites supported by youtube-dl https://rg3.github.io/youtube-dl/supportedsites.html
435
      enabled: false
Chocobozzz's avatar
Chocobozzz committed
436

Chocobozzz's avatar
Chocobozzz committed
437
438
439
440
441
442
443
444
445
446
447
448
      youtube_dl_release:
        # Direct download URL to youtube-dl binary
        # Github releases API is also supported
        # Examples:
        #   * https://api.github.com/repos/ytdl-org/youtube-dl/releases
        #   * https://api.github.com/repos/yt-dlp/yt-dlp/releases
        url: 'https://yt-dl.org/downloads/latest/youtube-dl'

        # youtube-dl binary name
        # yt-dlp is also supported
        name: 'youtube-dl'

449
450
451
        # Path to the python binary to execute for youtube-dl or yt-dlp
        python_path: '/usr/bin/python3'

452
      # IPv6 is very strongly rate-limited on most sites supported by youtube-dl
Chocobozzz's avatar
Chocobozzz committed
453
454
      force_ipv4: false

455
456
    torrent: # Magnet URI or torrent file (use classic TCP/UDP/WebSeed to download the file)
      enabled: false
457

458
459
460
461
462
463
auto_blacklist:
  # New videos automatically blacklisted so moderators can review before publishing
  videos:
    of_users:
      enabled: false

464
# Instance settings
465
466
instance:
  name: 'PeerTube'
467
  short_description: 'PeerTube, an ActivityPub-federated video streaming platform using P2P directly in your web browser.'
468
469
  description: 'Welcome to this PeerTube instance!' # Support markdown
  terms: 'No terms for now.' # Support markdown
Chocobozzz's avatar
Chocobozzz committed
470
471
472
473
474
  code_of_conduct: '' # Supports markdown

  # Who moderates the instance? What is the policy regarding NSFW videos? Political videos? etc
  moderation_information: '' # Supports markdown

Chocobozzz's avatar
Chocobozzz committed
475
  # Why did you create this instance?
476
  creation_reason: '' # Supports Markdown
Chocobozzz's avatar
Chocobozzz committed
477

Chocobozzz's avatar
Chocobozzz committed
478
  # Who is behind the instance? A single person? A non profit?
479
  administrator: '' # Supports Markdown
Chocobozzz's avatar
Chocobozzz committed
480
481

  # How long do you plan to maintain this instance?
482
  maintenance_lifetime: '' # Supports Markdown
Chocobozzz's avatar
Chocobozzz committed
483

484
  # How will you pay the PeerTube instance server? With your own funds? With users donations? Advertising?
485
  business_model: '' # Supports Markdown
Chocobozzz's avatar
Chocobozzz committed
486

487
  # If you want to explain on what type of hardware your PeerTube instance runs
488
  # Example: '2 vCore, 2GB RAM...'
489
490
  hardware_information: '' # Supports Markdown

Chocobozzz's avatar
Chocobozzz committed
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
  # What are the main languages of your instance? To interact with your users for example
  # Uncomment or add the languages you want
  # List of supported languages: https://peertube.cpy.re/api/v1/videos/languages
  languages:
#    - en
#    - es
#    - fr

  # You can specify the main categories of your instance (dedicated to music, gaming or politics etc)
  # Uncomment or add the category ids you want
  # List of supported categories: https://peertube.cpy.re/api/v1/videos/categories
  categories:
#    - 1  # Music
#    - 2  # Films
#    - 3  # Vehicles
#    - 4  # Art
#    - 5  # Sports
#    - 6  # Travels
#    - 7  # Gaming
#    - 8  # People
#    - 9  # Comedy
#    - 10 # Entertainment
#    - 11 # News & Politics
#    - 12 # How To
#    - 13 # Education
#    - 14 # Activism
#    - 15 # Science & Technology
#    - 16 # Animals
#    - 17 # Kids
#    - 18 # Food

522
  default_client_route: '/videos/trending'
Chocobozzz's avatar
Chocobozzz committed
523

524
525
526
527
  # Whether or not the instance is dedicated to NSFW content
  # Enabling it will allow other administrators to know that you are mainly federating sensitive content
  # Moreover, the NSFW checkbox on video upload will be automatically checked by default
  is_nsfw: false
528
  # By default, `do_not_list` or `blur` or `display` NSFW videos
529
530
  # Could be overridden per user with a setting
  default_nsfw_policy: 'do_not_list'
Chocobozzz's avatar
Chocobozzz committed
531

532
533
534
  customizations:
    javascript: '' # Directly your JavaScript code (without <script> tags). Will be eval at runtime
    css: '' # Directly your CSS code (without <style> tags). Will be injected at runtime
535
  # Robot.txt rules. To disallow robots to crawl your instance and disallow indexation of your site, add `/` to `Disallow:`
Rigel Kent's avatar
Rigel Kent committed
536
537
  robots: |
    User-agent: *
538
    Disallow:
Chocobozzz's avatar
Chocobozzz committed
539
  # Security.txt rules. To discourage researchers from testing your instance and disable security.txt integration, set this to an empty string
540
  securitytxt:
541
    '# If you would like to report a security issue\n# you may report it to:\nContact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md\nContact: mailto:'
542
543
544
545

services:
  # Cards configuration to format video in Twitter
  twitter:
Chocobozzz's avatar
Chocobozzz committed
546
    username: '@Chocobozzz' # Indicates the Twitter account for the website or platform on which the content was published
547
548
    # If true, a video player will be embedded in the Twitter feed on PeerTube video share
    # If false, we use an image link card that will redirect on your PeerTube instance
549
    # Change it to `true`, and then test on https://cards-dev.twitter.com/validator to see if you are whitelisted
550
    whitelisted: false
Chocobozzz's avatar
Chocobozzz committed
551
552
553
554
555

followers:
  instance:
    # Allow or not other instances to follow yours
    enabled: true
556
557
    # Whether or not an administrator must manually validate a new follower
    manual_approval: false
Chocobozzz's avatar
Chocobozzz committed
558

559
560
561
562
563
564
565
566
567
568
569
570
571
followings:
  instance:
    # If you want to automatically follow back new instance followers
    # If this option is enabled, use the mute feature instead of deleting followings
    # /!\ Don't enable this if you don't have a reactive moderation team /!\
    auto_follow_back:
      enabled: false

    # If you want to automatically follow instances of the public index
    # If this option is enabled, use the mute feature instead of deleting followings
    # /!\ Don't enable this if you don't have a reactive moderation team /!\
    auto_follow_index:
      enabled: false
572
573
      # Host your own using https://framagit.org/framasoft/peertube/instances-peertube#peertube-auto-follow
      index_url: ''
574

Chocobozzz's avatar
Chocobozzz committed
575
576
theme:
  default: 'default'
Chocobozzz's avatar
Chocobozzz committed
577
578
579
580

broadcast_message:
  enabled: false
  message: '' # Support markdown
Chocobozzz's avatar
Chocobozzz committed
581
  level: 'info' # 'info' | 'warning' | 'error'
Chocobozzz's avatar
Chocobozzz committed
582
  dismissable: false
Chocobozzz's avatar
Chocobozzz committed
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607

search:
  # Add ability to fetch remote videos/actors by their URI, that may not be federated with your instance
  # If enabled, the associated group will be able to "escape" from the instance follows
  # That means they will be able to follow channels, watch videos, list videos of non followed instances
  remote_uri:
    users: true
    anonymous: false

  # Use a third party index instead of your local index, only for search results
  # Useful to discover content outside of your instance
  # If you enable search_index, you must enable remote_uri search for users
  # If you do not enable remote_uri search for anonymous user, your instance will redirect the user on the origin instance
  # instead of loading the video locally
  search_index:
    enabled: false
    # URL of the search index, that should use the same search API and routes
    # than PeerTube: https://docs.joinpeertube.org/api-rest-reference.html
    # You should deploy your own with https://framagit.org/framasoft/peertube/search-index,
    # and can use https://search.joinpeertube.org/ for tests, but keep in mind the latter is an unmoderated search index
    url: ''
    # You can disable local search, so users only use the search index
    disable_local_search: false
    # If you did not disable local search, you can decide to use the search index by default
    is_default_search: false
608
609
610
611
612
613
614
615
616
617
618
619
620

# PeerTube client/interface configuration
client:
  videos:
    miniature:
      # By default PeerTube client displays author username
      prefer_author_display_name: false

  menu:
    login:
      # If you enable only one external auth plugin
      # You can automatically redirect your users on this external platform when they click on the login button
      redirect_on_single_external_auth: false