- const { allowed } = await Hooks.wrapPromiseFun(
- isSignupAllowed,
- {},
- 'filter:api.user.signup.allowed.result'
- )
-
- const allowedForCurrentIP = isSignupAllowedForCurrentIP(req.ip)
- const defaultTheme = getThemeOrDefault(CONFIG.THEME.DEFAULT, DEFAULT_THEME_NAME)
-
- if (serverCommit === undefined) serverCommit = await getServerCommit()
-
- const json: ServerConfig = {
- instance: {
- name: CONFIG.INSTANCE.NAME,
- shortDescription: CONFIG.INSTANCE.SHORT_DESCRIPTION,
- defaultClientRoute: CONFIG.INSTANCE.DEFAULT_CLIENT_ROUTE,
- isNSFW: CONFIG.INSTANCE.IS_NSFW,
- defaultNSFWPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY,
- customizations: {
- javascript: CONFIG.INSTANCE.CUSTOMIZATIONS.JAVASCRIPT,
- css: CONFIG.INSTANCE.CUSTOMIZATIONS.CSS
- }
- },
- plugin: {
- registered: getRegisteredPlugins()
- },
- theme: {
- registered: getRegisteredThemes(),
- default: defaultTheme
- },
- email: {
- enabled: Emailer.isEnabled()
- },
- contactForm: {
- enabled: CONFIG.CONTACT_FORM.ENABLED
- },
- serverVersion: PEERTUBE_VERSION,
- serverCommit,
- signup: {
- allowed,
- allowedForCurrentIP,
- requiresEmailVerification: CONFIG.SIGNUP.REQUIRES_EMAIL_VERIFICATION
- },
- transcoding: {
- hls: {
- enabled: CONFIG.TRANSCODING.HLS.ENABLED
- },
- webtorrent: {
- enabled: CONFIG.TRANSCODING.WEBTORRENT.ENABLED
- },
- enabledResolutions: getEnabledResolutions()
- },
- import: {
- videos: {
- http: {
- enabled: CONFIG.IMPORT.VIDEOS.HTTP.ENABLED
- },
- torrent: {
- enabled: CONFIG.IMPORT.VIDEOS.TORRENT.ENABLED
- }
- }
- },
- autoBlacklist: {
- videos: {
- ofUsers: {
- enabled: CONFIG.AUTO_BLACKLIST.VIDEOS.OF_USERS.ENABLED
- }
- }
- },
- avatar: {
- file: {
- size: {
- max: CONSTRAINTS_FIELDS.ACTORS.AVATAR.FILE_SIZE.max
- },
- extensions: CONSTRAINTS_FIELDS.ACTORS.AVATAR.EXTNAME
- }
- },
- video: {
- image: {
- extensions: CONSTRAINTS_FIELDS.VIDEOS.IMAGE.EXTNAME,
- size: {
- max: CONSTRAINTS_FIELDS.VIDEOS.IMAGE.FILE_SIZE.max
- }
- },
- file: {
- extensions: CONSTRAINTS_FIELDS.VIDEOS.EXTNAME
- }
- },
- videoCaption: {
- file: {
- size: {
- max: CONSTRAINTS_FIELDS.VIDEO_CAPTIONS.CAPTION_FILE.FILE_SIZE.max
- },
- extensions: CONSTRAINTS_FIELDS.VIDEO_CAPTIONS.CAPTION_FILE.EXTNAME
- }
- },
- user: {
- videoQuota: CONFIG.USER.VIDEO_QUOTA,
- videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY
- },
- trending: {
- videos: {
- intervalDays: CONFIG.TRENDING.VIDEOS.INTERVAL_DAYS
- }
- },
- tracker: {
- enabled: CONFIG.TRACKER.ENABLED
- }
- }