custom-config.model.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { NSFWPolicyType } from '../videos/nsfw-policy.type'
  2. export interface CustomConfig {
  3. instance: {
  4. name: string
  5. shortDescription: string
  6. description: string
  7. terms: string
  8. isNSFW: boolean
  9. defaultClientRoute: string
  10. defaultNSFWPolicy: NSFWPolicyType
  11. customizations: {
  12. javascript?: string
  13. css?: string
  14. }
  15. }
  16. services: {
  17. twitter: {
  18. username: string
  19. whitelisted: boolean
  20. }
  21. }
  22. cache: {
  23. previews: {
  24. size: number
  25. }
  26. captions: {
  27. size: number
  28. }
  29. }
  30. signup: {
  31. enabled: boolean
  32. limit: number
  33. requiresEmailVerification: boolean
  34. }
  35. admin: {
  36. email: string
  37. }
  38. contactForm: {
  39. enabled: boolean
  40. }
  41. user: {
  42. videoQuota: number
  43. videoQuotaDaily: number
  44. }
  45. transcoding: {
  46. enabled: boolean
  47. allowAdditionalExtensions: boolean
  48. allowAudioFiles: boolean
  49. threads: number
  50. resolutions: {
  51. '240p': boolean
  52. '360p': boolean
  53. '480p': boolean
  54. '720p': boolean
  55. '1080p': boolean
  56. '2160p': boolean
  57. }
  58. hls: {
  59. enabled: boolean
  60. }
  61. }
  62. import: {
  63. videos: {
  64. http: {
  65. enabled: boolean
  66. },
  67. torrent: {
  68. enabled: boolean
  69. }
  70. }
  71. }
  72. autoBlacklist: {
  73. videos: {
  74. ofUsers: {
  75. enabled: boolean
  76. }
  77. }
  78. }
  79. followers: {
  80. instance: {
  81. enabled: boolean,
  82. manualApproval: boolean
  83. }
  84. }
  85. }