]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/server/custom-config.model.ts
Merge branch 'release/3.2.0' into develop
[github/Chocobozzz/PeerTube.git] / shared / models / server / custom-config.model.ts
1 import { NSFWPolicyType } from '../videos/nsfw-policy.type'
2 import { BroadcastMessageLevel } from './broadcast-message-level.type'
3
4 export type ConfigResolutions = {
5 '240p': boolean
6 '360p': boolean
7 '480p': boolean
8 '720p': boolean
9 '1080p': boolean
10 '1440p': boolean
11 '2160p': boolean
12 }
13
14 export interface CustomConfig {
15 instance: {
16 name: string
17 shortDescription: string
18 description: string
19 terms: string
20 codeOfConduct: string
21
22 creationReason: string
23 moderationInformation: string
24 administrator: string
25 maintenanceLifetime: string
26 businessModel: string
27 hardwareInformation: string
28
29 languages: string[]
30 categories: number[]
31
32 isNSFW: boolean
33 defaultNSFWPolicy: NSFWPolicyType
34
35 defaultClientRoute: string
36
37 customizations: {
38 javascript?: string
39 css?: string
40 }
41 }
42
43 theme: {
44 default: string
45 }
46
47 services: {
48 twitter: {
49 username: string
50 whitelisted: boolean
51 }
52 }
53
54 cache: {
55 previews: {
56 size: number
57 }
58
59 captions: {
60 size: number
61 }
62
63 torrents: {
64 size: number
65 }
66 }
67
68 signup: {
69 enabled: boolean
70 limit: number
71 requiresEmailVerification: boolean
72 }
73
74 admin: {
75 email: string
76 }
77
78 contactForm: {
79 enabled: boolean
80 }
81
82 user: {
83 videoQuota: number
84 videoQuotaDaily: number
85 }
86
87 transcoding: {
88 enabled: boolean
89
90 allowAdditionalExtensions: boolean
91 allowAudioFiles: boolean
92
93 threads: number
94 concurrency: number
95
96 profile: string
97
98 resolutions: ConfigResolutions & { '0p': boolean }
99
100 webtorrent: {
101 enabled: boolean
102 }
103
104 hls: {
105 enabled: boolean
106 }
107 }
108
109 live: {
110 enabled: boolean
111
112 allowReplay: boolean
113
114 maxDuration: number
115 maxInstanceLives: number
116 maxUserLives: number
117
118 transcoding: {
119 enabled: boolean
120 threads: number
121 profile: string
122 resolutions: ConfigResolutions
123 }
124 }
125
126 import: {
127 videos: {
128 concurrency: number
129
130 http: {
131 enabled: boolean
132 }
133 torrent: {
134 enabled: boolean
135 }
136 }
137 }
138
139 trending: {
140 videos: {
141 algorithms: {
142 enabled: string[]
143 default: string
144 }
145 }
146 }
147
148 autoBlacklist: {
149 videos: {
150 ofUsers: {
151 enabled: boolean
152 }
153 }
154 }
155
156 followers: {
157 instance: {
158 enabled: boolean
159 manualApproval: boolean
160 }
161 }
162
163 followings: {
164 instance: {
165 autoFollowBack: {
166 enabled: boolean
167 }
168
169 autoFollowIndex: {
170 enabled: boolean
171 indexUrl: string
172 }
173 }
174 }
175
176 broadcastMessage: {
177 enabled: boolean
178 message: string
179 level: BroadcastMessageLevel
180 dismissable: boolean
181 }
182
183 search: {
184 remoteUri: {
185 users: boolean
186 anonymous: boolean
187 }
188
189 searchIndex: {
190 enabled: boolean
191 url: string
192 disableLocalSearch: boolean
193 isDefaultSearch: boolean
194 }
195 }
196 }