]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/server/server-config.model.ts
Add external login buttons
[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 RegisteredExternalAuthConfig {
16 npmName: string
17 name: string
18 version: string
19 authName: string
20 authDisplayName: string
21 }
22
23 export interface RegisteredIdAndPassAuthConfig {
24 npmName: string
25 name: string
26 version: string
27 authName: string
28 weight: number
29 }
30
31 export interface ServerConfig {
32 serverVersion: string
33 serverCommit?: string
34
35 instance: {
36 name: string
37 shortDescription: string
38 defaultClientRoute: string
39 isNSFW: boolean
40 defaultNSFWPolicy: NSFWPolicyType
41 customizations: {
42 javascript: string
43 css: string
44 }
45 }
46
47 search: {
48 remoteUri: {
49 users: boolean
50 anonymous: boolean
51 }
52 }
53
54 plugin: {
55 registered: ServerConfigPlugin[]
56
57 registeredExternalAuths: RegisteredExternalAuthConfig[]
58
59 registeredIdAndPassAuths: RegisteredIdAndPassAuthConfig[]
60 }
61
62 theme: {
63 registered: ServerConfigTheme[]
64 default: string
65 }
66
67 email: {
68 enabled: boolean
69 }
70
71 contactForm: {
72 enabled: boolean
73 }
74
75 signup: {
76 allowed: boolean
77 allowedForCurrentIP: boolean
78 requiresEmailVerification: boolean
79 }
80
81 transcoding: {
82 hls: {
83 enabled: boolean
84 }
85
86 webtorrent: {
87 enabled: boolean
88 }
89
90 enabledResolutions: number[]
91 }
92
93 import: {
94 videos: {
95 http: {
96 enabled: boolean
97 }
98 torrent: {
99 enabled: boolean
100 }
101 }
102 }
103
104 autoBlacklist: {
105 videos: {
106 ofUsers: {
107 enabled: boolean
108 }
109 }
110 }
111
112 avatar: {
113 file: {
114 size: {
115 max: number
116 }
117 extensions: string[]
118 }
119 }
120
121 video: {
122 image: {
123 size: {
124 max: number
125 }
126 extensions: string[]
127 }
128 file: {
129 extensions: string[]
130 }
131 }
132
133 videoCaption: {
134 file: {
135 size: {
136 max: number
137 }
138 extensions: string[]
139 }
140 }
141
142 user: {
143 videoQuota: number
144 videoQuotaDaily: number
145 }
146
147 trending: {
148 videos: {
149 intervalDays: number
150 }
151 }
152
153 tracker: {
154 enabled: boolean
155 }
156
157 followings: {
158 instance: {
159 autoFollowIndex: {
160 indexUrl: string
161 }
162 }
163 }
164 }