]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/models/server/server-config.model.ts
Increase timeout
[github/Chocobozzz/PeerTube.git] / shared / models / server / server-config.model.ts
CommitLineData
18a6f04c 1import { ClientScript } from '../plugins/plugin-package-json.model'
72c33e71
C
2import { NSFWPolicyType } from '../videos/nsfw-policy.type'
3import { BroadcastMessageLevel } from './broadcast-message-level.type'
18a6f04c 4
ffb321be 5export interface ServerConfigPlugin {
18a6f04c
C
6 name: string
7 version: string
8 description: string
e8f902c0 9 clientScripts: { [name: string]: ClientScript }
18a6f04c 10}
0883b324 11
ffb321be
C
12export interface ServerConfigTheme extends ServerConfigPlugin {
13 css: string[]
14}
15
4a8d113b
C
16export interface RegisteredExternalAuthConfig {
17 npmName: string
ebefc902
C
18 name: string
19 version: string
4a8d113b
C
20 authName: string
21 authDisplayName: string
22}
23
24export interface RegisteredIdAndPassAuthConfig {
25 npmName: string
ebefc902
C
26 name: string
27 version: string
4a8d113b
C
28 authName: string
29 weight: number
30}
31
154898b0 32export interface ServerConfig {
36f9424f 33 serverVersion: string
abb2c792 34 serverCommit?: string
36f9424f 35
7399a79f 36 client: {
37 videos: {
38 miniature: {
80dea8f4 39 preferAuthorDisplayName: boolean
7399a79f 40 }
41 }
0bc53e20
C
42
43 menu: {
44 login: {
45 redirectOnSingleExternalAuth: boolean
46 }
47 }
7399a79f 48 }
49
cf0c8ee5
C
50 webadmin: {
51 configuration: {
52 edition: {
53 allowed: boolean
54 }
55 }
f0ab2aed 56 }
cf0c8ee5 57
36f9424f 58 instance: {
901637bb 59 name: string
2e3a0215 60 shortDescription: string
f8802489 61 isNSFW: boolean
0883b324 62 defaultNSFWPolicy: NSFWPolicyType
3da68f0a 63 defaultClientRoute: string
00b5556c
C
64 customizations: {
65 javascript: string
66 css: string
67 }
36f9424f
C
68 }
69
9677fca7
RK
70 search: {
71 remoteUri: {
72 users: boolean
73 anonymous: boolean
74 }
5fb2e288
C
75
76 searchIndex: {
77 enabled: boolean
78 url: string
79 disableLocalSearch: boolean
80 isDefaultSearch: boolean
81 }
9677fca7
RK
82 }
83
7cd4d2ba
C
84 plugin: {
85 registered: ServerConfigPlugin[]
4a8d113b
C
86
87 registeredExternalAuths: RegisteredExternalAuthConfig[]
88
89 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
7cd4d2ba
C
90 }
91
92 theme: {
ffb321be 93 registered: ServerConfigTheme[]
7cd4d2ba
C
94 default: string
95 }
18a6f04c 96
3b3b1820
C
97 email: {
98 enabled: boolean
99 }
100
a4101923
C
101 contactForm: {
102 enabled: boolean
103 }
104
154898b0 105 signup: {
a1587156 106 allowed: boolean
09209296 107 allowedForCurrentIP: boolean
d9eaee39 108 requiresEmailVerification: boolean
1f256e7d 109 minimumAge: number
154898b0 110 }
36f9424f 111
6a84aafd 112 transcoding: {
09209296
C
113 hls: {
114 enabled: boolean
115 }
116
d7a25329
C
117 webtorrent: {
118 enabled: boolean
119 }
120
6a84aafd 121 enabledResolutions: number[]
1896bca0
C
122
123 profile: string
124 availableProfiles: string[]
6a84aafd 125 }
36f9424f 126
c6c0fa6c
C
127 live: {
128 enabled: boolean
129
fb719404 130 maxDuration: number
a056ca48
C
131 maxInstanceLives: number
132 maxUserLives: number
fb719404
C
133 allowReplay: boolean
134
c6c0fa6c
C
135 transcoding: {
136 enabled: boolean
137
138 enabledResolutions: number[]
1896bca0
C
139
140 profile: string
141 availableProfiles: string[]
c6c0fa6c 142 }
4f20856e
C
143
144 rtmp: {
145 port: number
146 }
c6c0fa6c
C
147 }
148
5d08a6a7 149 import: {
b2977eec 150 videos: {
5d08a6a7
C
151 http: {
152 enabled: boolean
153 }
a84b8fa5
C
154 torrent: {
155 enabled: boolean
156 }
5d08a6a7
C
157 }
158 }
159
7ccddd7b
JM
160 autoBlacklist: {
161 videos: {
162 ofUsers: {
163 enabled: boolean
164 }
165 }
166 }
167
01de67b9
C
168 avatar: {
169 file: {
170 size: {
171 max: number
09209296 172 }
01de67b9
C
173 extensions: string[]
174 }
175 }
36f9424f 176
cdeddff1
C
177 banner: {
178 file: {
179 size: {
180 max: number
181 }
182 extensions: string[]
183 }
184 }
185
01de67b9 186 video: {
6de36768
C
187 image: {
188 size: {
189 max: number
190 }
191 extensions: string[]
a1587156 192 }
01de67b9
C
193 file: {
194 extensions: string[]
195 }
196 }
1869c875 197
40e87e9e
C
198 videoCaption: {
199 file: {
200 size: {
201 max: number
a1587156 202 }
40e87e9e
C
203 extensions: string[]
204 }
205 }
206
1869c875
RK
207 user: {
208 videoQuota: number
bee0abff 209 videoQuotaDaily: number
1869c875 210 }
9b4b15f9 211
754b6f5f
FC
212 videoChannels: {
213 maxPerUser: number
214 }
215
9b4b15f9
AB
216 trending: {
217 videos: {
218 intervalDays: number
ba5d4a84
RK
219 algorithms: {
220 enabled: string[]
221 default: string
222 }
9b4b15f9
AB
223 }
224 }
31b6ddf8
C
225
226 tracker: {
227 enabled: boolean
228 }
000eb0e4
RK
229
230 followings: {
231 instance: {
232 autoFollowIndex: {
233 indexUrl: string
234 }
235 }
236 }
72c33e71
C
237
238 broadcastMessage: {
239 enabled: boolean
240 message: string
241 level: BroadcastMessageLevel
242 dismissable: boolean
243 }
2539932e
C
244
245 homepage: {
246 enabled: boolean
247 }
154898b0 248}
aea0b0e7
C
249
250export type HTMLServerConfig = Omit<ServerConfig, 'signup'>