hostname: 'localhost'
port: 9000
+rates_limit:
+ login:
+ # 15 attempts in 5 min
+ window: 5 minutes
+ max: 15
+ ask_send_email:
+ # 3 attempts in 5 min
+ window: 5 minutes
+ max: 3
+
# 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)
hostname: 'example.com'
port: 443
+rates_limit:
+ login:
+ # 15 attempts in 5 min
+ window: 5 minutes
+ max: 15
+ ask_send_email:
+ # 3 attempts in 5 min
+ window: 5 minutes
+ max: 3
+
# 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)
'services.twitter.username', 'services.twitter.whitelisted',
'followers.instance.enabled', 'followers.instance.manual_approval',
'tracker.enabled', 'tracker.private', 'tracker.reject_too_many_announces',
- 'history.videos.max_age', 'views.videos.remote.max_age'
+ 'history.videos.max_age', 'views.videos.remote.max_age',
+ 'rates_limit.login.window', 'rates_limit.login.max', 'rates_limit.ask_send_email.window', 'rates_limit.ask_send_email.max'
]
const requiredAlternatives = [
[ // set
HOSTNAME: config.get<string>('webserver.hostname'),
PORT: config.get<number>('webserver.port')
},
+ RATES_LIMIT: {
+ LOGIN: {
+ WINDOW_MS: parseDurationToMs(config.get<string>('rates_limit.login.window')),
+ MAX: config.get<number>('rates_limit.login.max')
+ },
+ ASK_SEND_EMAIL: {
+ WINDOW_MS: parseDurationToMs(config.get<string>('rates_limit.ask_send_email.window')),
+ MAX: config.get<number>('rates_limit.ask_send_email.max')
+ }
+ },
TRUST_PROXY: config.get<string[]>('trust_proxy'),
LOG: {
LEVEL: config.get<string>('log.level')
const RATES_LIMIT = {
LOGIN: {
- WINDOW_MS: 5 * 60 * 1000, // 5 minutes
- MAX: 15 // 15 attempts
+ WINDOW_MS: CONFIG.RATES_LIMIT.LOGIN.WINDOW_MS,
+ MAX: CONFIG.RATES_LIMIT.LOGIN.MAX
},
ASK_SEND_EMAIL: {
- WINDOW_MS: 5 * 60 * 1000, // 5 minutes
- MAX: 3 // 3 attempts
+ WINDOW_MS: CONFIG.RATES_LIMIT.ASK_SEND_EMAIL.WINDOW_MS,
+ MAX: CONFIG.RATES_LIMIT.ASK_SEND_EMAIL.MAX
}
}
hostname: undefined
port: 443
+rates_limit:
+ login:
+ # 15 attempts in 5 min
+ window: 5 minutes
+ max: 15
+ ask_send_email:
+ # 3 attempts in 5 min
+ window: 5 minutes
+ max: 3
+
# 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)