aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/initializers
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-04-07 15:27:41 +0200
committerChocobozzz <me@florianbigard.com>2020-04-07 15:32:20 +0200
commit8c9e7875269a990ed3000e1d4995d808e4ff50f7 (patch)
tree896f60aedf0fac0dc64b57ff76a63e7a718c0a5b /server/initializers
parentbc30363602ad504d784662a9373c0a114d05042c (diff)
downloadPeerTube-8c9e7875269a990ed3000e1d4995d808e4ff50f7.tar.gz
PeerTube-8c9e7875269a990ed3000e1d4995d808e4ff50f7.tar.zst
PeerTube-8c9e7875269a990ed3000e1d4995d808e4ff50f7.zip
Add ability to accept or not remote redundancies
Diffstat (limited to 'server/initializers')
-rw-r--r--server/initializers/checker-after-init.ts8
-rw-r--r--server/initializers/checker-before-init.ts3
-rw-r--r--server/initializers/config.ts6
3 files changed, 16 insertions, 1 deletions
diff --git a/server/initializers/checker-after-init.ts b/server/initializers/checker-after-init.ts
index bc4aae957..a57d552df 100644
--- a/server/initializers/checker-after-init.ts
+++ b/server/initializers/checker-after-init.ts
@@ -11,6 +11,7 @@ import { RecentlyAddedStrategy } from '../../shared/models/redundancy'
11import { isArray } from '../helpers/custom-validators/misc' 11import { isArray } from '../helpers/custom-validators/misc'
12import { uniq } from 'lodash' 12import { uniq } from 'lodash'
13import { WEBSERVER } from './constants' 13import { WEBSERVER } from './constants'
14import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type'
14 15
15async function checkActivityPubUrls () { 16async function checkActivityPubUrls () {
16 const actor = await getServerActor() 17 const actor = await getServerActor()
@@ -87,6 +88,13 @@ function checkConfig () {
87 return 'Videos redundancy should be an array (you must uncomment lines containing - too)' 88 return 'Videos redundancy should be an array (you must uncomment lines containing - too)'
88 } 89 }
89 90
91 // Remote redundancies
92 const acceptFrom = CONFIG.REMOTE_REDUNDANCY.VIDEOS.ACCEPT_FROM
93 const acceptFromValues = new Set<VideoRedundancyConfigFilter>([ 'nobody', 'anybody', 'followings' ])
94 if (acceptFromValues.has(acceptFrom) === false) {
95 return 'remote_redundancy.videos.accept_from has an incorrect value'
96 }
97
90 // Check storage directory locations 98 // Check storage directory locations
91 if (isProdInstance()) { 99 if (isProdInstance()) {
92 const configStorage = config.get('storage') 100 const configStorage = config.get('storage')
diff --git a/server/initializers/checker-before-init.ts b/server/initializers/checker-before-init.ts
index a75f2cec2..064d89a4d 100644
--- a/server/initializers/checker-before-init.ts
+++ b/server/initializers/checker-before-init.ts
@@ -31,7 +31,8 @@ function checkMissedConfig () {
31 'tracker.enabled', 'tracker.private', 'tracker.reject_too_many_announces', 31 'tracker.enabled', 'tracker.private', 'tracker.reject_too_many_announces',
32 'history.videos.max_age', 'views.videos.remote.max_age', 32 'history.videos.max_age', 'views.videos.remote.max_age',
33 'rates_limit.login.window', 'rates_limit.login.max', 'rates_limit.ask_send_email.window', 'rates_limit.ask_send_email.max', 33 'rates_limit.login.window', 'rates_limit.login.max', 'rates_limit.ask_send_email.window', 'rates_limit.ask_send_email.max',
34 'theme.default' 34 'theme.default',
35 'remote_redundancy.videos.accept_from'
35 ] 36 ]
36 const requiredAlternatives = [ 37 const requiredAlternatives = [
37 [ // set 38 [ // set
diff --git a/server/initializers/config.ts b/server/initializers/config.ts
index 3c07624e8..2c4d26a9e 100644
--- a/server/initializers/config.ts
+++ b/server/initializers/config.ts
@@ -5,6 +5,7 @@ import { VideosRedundancyStrategy } from '../../shared/models'
5import { buildPath, parseBytes, parseDurationToMs, root } from '../helpers/core-utils' 5import { buildPath, parseBytes, parseDurationToMs, root } from '../helpers/core-utils'
6import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type' 6import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type'
7import * as bytes from 'bytes' 7import * as bytes from 'bytes'
8import { VideoRedundancyConfigFilter } from '@shared/models/redundancy/video-redundancy-config-filter.type'
8 9
9// Use a variable to reload the configuration if we need 10// Use a variable to reload the configuration if we need
10let config: IConfig = require('config') 11let config: IConfig = require('config')
@@ -117,6 +118,11 @@ const CONFIG = {
117 STRATEGIES: buildVideosRedundancy(config.get<any[]>('redundancy.videos.strategies')) 118 STRATEGIES: buildVideosRedundancy(config.get<any[]>('redundancy.videos.strategies'))
118 } 119 }
119 }, 120 },
121 REMOTE_REDUNDANCY: {
122 VIDEOS: {
123 ACCEPT_FROM: config.get<VideoRedundancyConfigFilter>('remote_redundancy.videos.accept_from')
124 }
125 },
120 CSP: { 126 CSP: {
121 ENABLED: config.get<boolean>('csp.enabled'), 127 ENABLED: config.get<boolean>('csp.enabled'),
122 REPORT_ONLY: config.get<boolean>('csp.report_only'), 128 REPORT_ONLY: config.get<boolean>('csp.report_only'),