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