]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/models/server/server-config.model.ts
@peertube/embed-api 0.0.
[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
AB
205
206 trending: {
207 videos: {
208 intervalDays: number
ba5d4a84
RK
209 algorithms: {
210 enabled: string[]
211 default: string
212 }
9b4b15f9
AB
213 }
214 }
31b6ddf8
C
215
216 tracker: {
217 enabled: boolean
218 }
000eb0e4
RK
219
220 followings: {
221 instance: {
222 autoFollowIndex: {
223 indexUrl: string
224 }
225 }
226 }
72c33e71
C
227
228 broadcastMessage: {
229 enabled: boolean
230 message: string
231 level: BroadcastMessageLevel
232 dismissable: boolean
233 }
2539932e
C
234
235 homepage: {
236 enabled: boolean
237 }
154898b0 238}
aea0b0e7
C
239
240export type HTMLServerConfig = Omit<ServerConfig, 'signup'>