]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/server/server-config.model.ts
Merge branch 'release/2.1.0' into develop
[github/Chocobozzz/PeerTube.git] / shared / models / server / server-config.model.ts
1 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2 import { ClientScript } from '../plugins/plugin-package-json.model'
3
4 export interface ServerConfigPlugin {
5 name: string
6 version: string
7 description: string
8 clientScripts: { [name: string]: ClientScript }
9 }
10
11 export interface ServerConfigTheme extends ServerConfigPlugin {
12 css: string[]
13 }
14
15 export interface ServerConfig {
16 serverVersion: string
17 serverCommit?: string
18
19 instance: {
20 name: string
21 shortDescription: string
22 defaultClientRoute: string
23 isNSFW: boolean
24 defaultNSFWPolicy: NSFWPolicyType
25 customizations: {
26 javascript: string
27 css: string
28 }
29 }
30
31 search: {
32 remoteUri: {
33 users: boolean
34 anonymous: boolean
35 }
36 }
37
38 plugin: {
39 registered: ServerConfigPlugin[]
40 }
41
42 theme: {
43 registered: ServerConfigTheme[]
44 default: string
45 }
46
47 email: {
48 enabled: boolean
49 }
50
51 contactForm: {
52 enabled: boolean
53 }
54
55 signup: {
56 allowed: boolean
57 allowedForCurrentIP: boolean
58 requiresEmailVerification: boolean
59 }
60
61 transcoding: {
62 hls: {
63 enabled: boolean
64 }
65
66 webtorrent: {
67 enabled: boolean
68 }
69
70 enabledResolutions: number[]
71 }
72
73 import: {
74 videos: {
75 http: {
76 enabled: boolean
77 }
78 torrent: {
79 enabled: boolean
80 }
81 }
82 }
83
84 autoBlacklist: {
85 videos: {
86 ofUsers: {
87 enabled: boolean
88 }
89 }
90 }
91
92 avatar: {
93 file: {
94 size: {
95 max: number
96 }
97 extensions: string[]
98 }
99 }
100
101 video: {
102 image: {
103 size: {
104 max: number
105 }
106 extensions: string[]
107 }
108 file: {
109 extensions: string[]
110 }
111 }
112
113 videoCaption: {
114 file: {
115 size: {
116 max: number
117 }
118 extensions: string[]
119 }
120 }
121
122 user: {
123 videoQuota: number
124 videoQuotaDaily: number
125 }
126
127 trending: {
128 videos: {
129 intervalDays: number
130 }
131 }
132
133 tracker: {
134 enabled: boolean
135 }
136
137 followings: {
138 instance: {
139 autoFollowIndex: {
140 indexUrl: string
141 }
142 }
143 }
144 }