Move whitelist in config

This commit is contained in:
Chocobozzz 2020-05-28 15:00:37 +02:00
parent 1e516a8eeb
commit 3c603d2324
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
6 changed files with 39 additions and 13 deletions

View File

@ -23,11 +23,17 @@ Then open http://localhost:3234.
## Production ## Production
Install dependencies:
* NodeJS (v12)
* Elastic Search
In the root of the cloned repo: In the root of the cloned repo:
```terminal ```terminal
$ git submodule update --init --recursive $ git submodule update --init --recursive
$ yarn install --pure-lockfile $ yarn install --pure-lockfile
$ npm run build $ npm run build
$ cp config/default.yaml config/production.yaml
$ vim config/production.yaml
$ node dist/server.js $ node dist/server.js
``` ```

View File

@ -18,4 +18,10 @@ log:
level: 'debug' # debug/info/warning/error level: 'debug' # debug/info/warning/error
instances-index: instances-index:
url: 'https://instances.joinpeertube.org' # Contains PeerTube instance hosts the indexer will index
# Must answer the following format: https://framagit.org/framasoft/peertube/instances-peertube#peertube-auto-follow-global-search
url: 'https://instances.joinpeertube.org/api/v1/instances/hosts'
whitelist:
enabled: false
hosts: null

View File

@ -2,3 +2,14 @@ elastic_search:
indexes: indexes:
videos: 'peertube-index-videos-test1' videos: 'peertube-index-videos-test1'
channels: 'peertube-index-channels-test1' channels: 'peertube-index-channels-test1'
whitelist:
enabled: true
hosts:
- 'peertube.cpy.re'
- 'peertube2.cpy.re'
- 'peertube3.cpy.re'
- 'framatube.org'
- 'aperi.tube'
- 'peertube.datagueule.tv'
- 'thinkerview.video'

View File

@ -20,6 +20,10 @@ const CONFIG = {
}, },
INSTANCES_INDEX: { INSTANCES_INDEX: {
URL: config.get<string>('instances-index.url') URL: config.get<string>('instances-index.url')
},
WHITELIST: {
ENABLED: config.get<boolean>('whitelist.enabled'),
HOSTS: config.get<string[]>('whitelist.hosts')
} }
} }

View File

@ -21,17 +21,13 @@ async function listIndexInstances () {
} }
async function buildInstanceHosts () { async function buildInstanceHosts () {
const whitelist = [ let indexHosts = await listIndexInstancesHost()
'peertube.cpy.re',
'peertube2.cpy.re',
'peertube3.cpy.re',
'framatube.org',
'aperi.tube',
'peertube.datagueule.tv',
'thinkerview.video'
]
const indexHosts = (await listIndexInstancesHost()).filter(h => whitelist.includes(h)) if (CONFIG.WHITELIST.ENABLED) {
const whitelistHosts = Array.isArray(CONFIG.WHITELIST.HOSTS) ? CONFIG.WHITELIST.HOSTS : []
indexHosts = indexHosts.filter(h => whitelistHosts.includes(h))
}
const dbHosts = await listIndexInstances() const dbHosts = await listIndexInstances()
const removedHosts = getRemovedHosts(dbHosts, indexHosts) const removedHosts = getRemovedHosts(dbHosts, indexHosts)

View File

@ -2,9 +2,12 @@ import { CONFIG } from '../initializers/constants'
import { doRequest } from '../helpers/requests' import { doRequest } from '../helpers/requests'
async function listIndexInstancesHost (): Promise<string[]> { async function listIndexInstancesHost (): Promise<string[]> {
const uri = CONFIG.INSTANCES_INDEX.URL + '/api/v1/instances/hosts' const uri = CONFIG.INSTANCES_INDEX.URL
const qs = { count: 5000 } const qs = {
healthy: true,
count: 5000
}
const { body } = await doRequest<any>({ uri, qs, json: true }) const { body } = await doRequest<any>({ uri, qs, json: true })