// ---------------------------------------------------------------------------
-const LAST_MIGRATION_VERSION = 400
+const LAST_MIGRATION_VERSION = 435
// ---------------------------------------------------------------------------
const API_VERSION = 'v1'
-const PEERTUBE_VERSION = process.env.npm_package_version || 'unknown'
+const PEERTUBE_VERSION = require(join(root(), 'package.json')).version
const PAGINATION = {
COUNT: {
// Sortable columns per schema
const SORTABLE_COLUMNS = {
- USERS: [ 'id', 'username', 'createdAt' ],
+ USERS: [ 'id', 'username', 'videoQuotaUsed', 'createdAt' ],
USER_SUBSCRIPTIONS: [ 'id', 'createdAt' ],
ACCOUNTS: [ 'createdAt' ],
JOBS: [ 'createdAt' ],
updateVideos: 60000, // 1 minute
youtubeDLUpdate: 60000 * 60 * 24, // 1 day
checkPlugins: CONFIG.PLUGINS.INDEX.CHECK_LATEST_VERSIONS_INTERVAL,
+ autoFollowIndexInstances: 60000 * 60 * 24, // 1 day
removeOldViews: 60000 * 60 * 24, // 1 day
removeOldHistory: 60000 * 60 * 24 // 1 day
}
+const INSTANCES_INDEX = {
+ HOSTS_PATH: '/api/v1/instances/hosts'
+}
+
// ---------------------------------------------------------------------------
const CONSTRAINTS_FIELDS = {
TORRENTS: '/download/torrents/',
VIDEOS: '/download/videos/'
}
+const LAZY_STATIC_PATHS = {
+ AVATARS: '/lazy-static/avatars/',
+ PREVIEWS: '/static/previews/',
+ VIDEO_CAPTIONS: '/static/video-captions/'
+}
// Cache control
-let STATIC_MAX_AGE = '2h'
+let STATIC_MAX_AGE = {
+ SERVER: '2h',
+ CLIENT: '30d'
+}
// Videos thumbnail size
const THUMBNAILS_SIZE = {
}
}
-const CACHE = {
+const LRU_CACHE = {
USER_TOKENS: {
- MAX_SIZE: 10000
+ MAX_SIZE: 1000
+ },
+ AVATAR_STATIC: {
+ MAX_SIZE: 500
}
}
OVERVIEWS_SAMPLE: 1000 * 3600 * 4 // 4 hours
}
+const QUEUE_CONCURRENCY = {
+ AVATAR_PROCESS_IMAGE: 3
+}
+
const REDUNDANCY = {
VIDEOS: {
RANDOMIZED_FACTOR: 5
REMOTE_SCHEME.HTTP = 'http'
REMOTE_SCHEME.WS = 'ws'
- STATIC_MAX_AGE = '0'
+ STATIC_MAX_AGE.SERVER = '0'
ACTIVITY_PUB.COLLECTION_ITEMS_PER_PAGE = 2
ACTIVITY_PUB.ACTOR_REFRESH_INTERVAL = 10 * 1000 // 10 seconds
SCHEDULER_INTERVALS_MS.removeOldHistory = 5000
SCHEDULER_INTERVALS_MS.removeOldViews = 5000
SCHEDULER_INTERVALS_MS.updateVideos = 5000
+ SCHEDULER_INTERVALS_MS.autoFollowIndexInstances = 5000
REPEAT_JOBS[ 'videos-views' ] = { every: 5000 }
REDUNDANCY.VIDEOS.RANDOMIZED_FACTOR = 1
WEBSERVER,
API_VERSION,
PEERTUBE_VERSION,
+ LAZY_STATIC_PATHS,
HLS_REDUNDANCY_DIRECTORY,
P2P_MEDIA_LOADER_PEER_VERSION,
AVATARS_SIZE,
PREVIEWS_SIZE,
REMOTE_SCHEME,
FOLLOW_STATES,
+ INSTANCES_INDEX,
DEFAULT_USER_THEME_NAME,
SERVER_ACTOR_NAME,
PLUGIN_GLOBAL_CSS_FILE_NAME,
VIDEO_PRIVACIES,
VIDEO_LICENCES,
VIDEO_STATES,
+ QUEUE_CONCURRENCY,
VIDEO_RATE_TYPES,
VIDEO_TRANSCODING_FPS,
FFMPEG_NICE,
VIDEO_ABUSE_STATES,
- CACHE,
+ LRU_CACHE,
JOB_REQUEST_TIMEOUT,
USER_PASSWORD_RESET_LIFETIME,
MEMOIZE_TTL,