questions.yaml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. groups:
  2. - name: TVHeadend Configuration
  3. description: Configure TVHeadend
  4. - name: User and Group Configuration
  5. description: Configure User and Group for TVHeadend
  6. - name: Network Configuration
  7. description: Configure Network for TVHeadend
  8. - name: Storage Configuration
  9. description: Configure Storage for TVHeadend
  10. - name: Labels Configuration
  11. description: Configure Labels for TVHeadend
  12. - name: Resources Configuration
  13. description: Configure Resources for TVHeadend
  14. questions:
  15. - variable: TZ
  16. group: TVHeadend Configuration
  17. label: Timezone
  18. schema:
  19. type: string
  20. default: Etc/UTC
  21. required: true
  22. $ref:
  23. - definitions/timezone
  24. - variable: tvheadend
  25. label: ""
  26. group: TVHeadend Configuration
  27. schema:
  28. type: dict
  29. attrs:
  30. - variable: dvb_support
  31. label: DVB Tuner Support
  32. description: Enable DVB tuner support for TVHeadend.
  33. schema:
  34. type: boolean
  35. default: false
  36. - variable: additional_envs
  37. label: Additional Environment Variables
  38. schema:
  39. type: list
  40. default: []
  41. items:
  42. - variable: env
  43. label: Environment Variable
  44. schema:
  45. type: dict
  46. attrs:
  47. - variable: name
  48. label: Name
  49. schema:
  50. type: string
  51. required: true
  52. - variable: value
  53. label: Value
  54. schema:
  55. type: string
  56. - variable: run_as
  57. label: ""
  58. group: User and Group Configuration
  59. schema:
  60. type: dict
  61. attrs:
  62. - variable: user
  63. label: User ID
  64. description: The user id that TVHeadend files will be owned by.
  65. schema:
  66. type: int
  67. min: 568
  68. default: 568
  69. required: true
  70. - variable: group
  71. label: Group ID
  72. description: The group id that TVHeadend files will be owned by.
  73. schema:
  74. type: int
  75. min: 568
  76. default: 568
  77. required: true
  78. - variable: network
  79. label: ""
  80. group: Network Configuration
  81. schema:
  82. type: dict
  83. attrs:
  84. - variable: web_port
  85. label: WebUI Port
  86. schema:
  87. type: dict
  88. show_if: [["host_network", "=", false]]
  89. attrs:
  90. - variable: bind_mode
  91. label: Port Bind Mode
  92. description: |
  93. The port bind mode.</br>
  94. - Publish: The port will be published on the host for external access.</br>
  95. - Expose: The port will be exposed for inter-container communication.</br>
  96. - None: The port will not be exposed or published.</br>
  97. Note: If the Dockerfile defines an EXPOSE directive,
  98. the port will still be exposed for inter-container communication regardless of this setting.
  99. schema:
  100. type: string
  101. default: "published"
  102. enum:
  103. - value: "published"
  104. description: Publish port on the host for external access
  105. - value: "exposed"
  106. description: Expose port for inter-container communication
  107. - value: ""
  108. description: None
  109. - variable: port_number
  110. label: Port Number
  111. schema:
  112. type: int
  113. default: 30181
  114. show_if: [["bind_mode", "=", "published"]]
  115. min: 1
  116. max: 65535
  117. required: true
  118. - variable: host_ips
  119. label: Host IPs
  120. description: IPs on the host to bind this port
  121. schema:
  122. type: list
  123. show_if: [["bind_mode", "=", "published"]]
  124. default: []
  125. items:
  126. - variable: host_ip
  127. label: Host IP
  128. schema:
  129. type: string
  130. required: true
  131. $ref:
  132. - definitions/node_bind_ip
  133. - variable: htsp_port
  134. label: HTSP Port
  135. schema:
  136. type: dict
  137. show_if: [["host_network", "=", false]]
  138. attrs:
  139. - variable: bind_mode
  140. label: Port Bind Mode
  141. description: |
  142. The port bind mode.</br>
  143. - Publish: The port will be published on the host for external access.</br>
  144. - Expose: The port will be exposed for inter-container communication.</br>
  145. - None: The port will not be exposed or published.</br>
  146. Note: If the Dockerfile defines an EXPOSE directive,
  147. the port will still be exposed for inter-container communication regardless of this setting.
  148. schema:
  149. type: string
  150. default: "published"
  151. enum:
  152. - value: "published"
  153. description: Publish port on the host for external access
  154. - value: "exposed"
  155. description: Expose port for inter-container communication
  156. - value: ""
  157. description: None
  158. - variable: port_number
  159. label: Port Number
  160. schema:
  161. type: int
  162. default: 30182
  163. show_if: [["bind_mode", "=", "published"]]
  164. min: 1
  165. max: 65535
  166. required: true
  167. - variable: host_ips
  168. label: Host IPs
  169. description: IPs on the host to bind this port
  170. schema:
  171. type: list
  172. show_if: [["bind_mode", "=", "published"]]
  173. default: []
  174. items:
  175. - variable: host_ip
  176. label: Host IP
  177. schema:
  178. type: string
  179. required: true
  180. $ref:
  181. - definitions/node_bind_ip
  182. - variable: host_network
  183. label: Host Network
  184. description: |
  185. Bind to the host network. It's recommended to keep this disabled.
  186. schema:
  187. type: boolean
  188. default: false
  189. - variable: storage
  190. label: ""
  191. group: Storage Configuration
  192. schema:
  193. type: dict
  194. attrs:
  195. - variable: config
  196. label: TVHeadend Config Storage
  197. description: The path to store TVHeadend Config.
  198. schema:
  199. type: dict
  200. attrs:
  201. - variable: type
  202. label: Type
  203. description: |
  204. ixVolume: Is dataset created automatically by the system.</br>
  205. Host Path: Is a path that already exists on the system.
  206. schema:
  207. type: string
  208. required: true
  209. default: "ix_volume"
  210. enum:
  211. - value: "host_path"
  212. description: Host Path (Path that already exists on the system)
  213. - value: "ix_volume"
  214. description: ixVolume (Dataset created automatically by the system)
  215. - variable: ix_volume_config
  216. label: ixVolume Configuration
  217. description: The configuration for the ixVolume dataset.
  218. schema:
  219. type: dict
  220. show_if: [["type", "=", "ix_volume"]]
  221. $ref:
  222. - "normalize/ix_volume"
  223. attrs:
  224. - variable: acl_enable
  225. label: Enable ACL
  226. description: Enable ACL for the storage.
  227. schema:
  228. type: boolean
  229. default: false
  230. - variable: dataset_name
  231. label: Dataset Name
  232. description: The name of the dataset to use for storage.
  233. schema:
  234. type: string
  235. required: true
  236. hidden: true
  237. default: "config"
  238. - variable: acl_entries
  239. label: ACL Configuration
  240. schema:
  241. type: dict
  242. show_if: [["acl_enable", "=", true]]
  243. attrs: []
  244. - variable: host_path_config
  245. label: Host Path Configuration
  246. schema:
  247. type: dict
  248. show_if: [["type", "=", "host_path"]]
  249. attrs:
  250. - variable: acl_enable
  251. label: Enable ACL
  252. description: Enable ACL for the storage.
  253. schema:
  254. type: boolean
  255. default: false
  256. - variable: acl
  257. label: ACL Configuration
  258. schema:
  259. type: dict
  260. show_if: [["acl_enable", "=", true]]
  261. attrs: []
  262. $ref:
  263. - "normalize/acl"
  264. - variable: path
  265. label: Host Path
  266. description: The host path to use for storage.
  267. schema:
  268. type: hostpath
  269. show_if: [["acl_enable", "=", false]]
  270. required: true
  271. - variable: recordings
  272. label: TVHeadend Recordings Storage
  273. description: The path to store TVHeadend Recordings.
  274. schema:
  275. type: dict
  276. attrs:
  277. - variable: type
  278. label: Type
  279. description: |
  280. ixVolume: Is dataset created automatically by the system.</br>
  281. Host Path: Is a path that already exists on the system.
  282. schema:
  283. type: string
  284. required: true
  285. default: "ix_volume"
  286. enum:
  287. - value: "host_path"
  288. description: Host Path (Path that already exists on the system)
  289. - value: "ix_volume"
  290. description: ixVolume (Dataset created automatically by the system)
  291. - variable: ix_volume_config
  292. label: ixVolume Configuration
  293. description: The configuration for the ixVolume dataset.
  294. schema:
  295. type: dict
  296. show_if: [["type", "=", "ix_volume"]]
  297. $ref:
  298. - "normalize/ix_volume"
  299. attrs:
  300. - variable: acl_enable
  301. label: Enable ACL
  302. description: Enable ACL for the storage.
  303. schema:
  304. type: boolean
  305. default: false
  306. - variable: dataset_name
  307. label: Dataset Name
  308. description: The name of the dataset to use for storage.
  309. schema:
  310. type: string
  311. required: true
  312. hidden: true
  313. default: "recordings"
  314. - variable: acl_entries
  315. label: ACL Configuration
  316. schema:
  317. type: dict
  318. show_if: [["acl_enable", "=", true]]
  319. attrs: []
  320. - variable: host_path_config
  321. label: Host Path Configuration
  322. schema:
  323. type: dict
  324. show_if: [["type", "=", "host_path"]]
  325. attrs:
  326. - variable: acl_enable
  327. label: Enable ACL
  328. description: Enable ACL for the storage.
  329. schema:
  330. type: boolean
  331. default: false
  332. - variable: acl
  333. label: ACL Configuration
  334. schema:
  335. type: dict
  336. show_if: [["acl_enable", "=", true]]
  337. attrs: []
  338. $ref:
  339. - "normalize/acl"
  340. - variable: path
  341. label: Host Path
  342. description: The host path to use for storage.
  343. schema:
  344. type: hostpath
  345. show_if: [["acl_enable", "=", false]]
  346. required: true
  347. - variable: additional_storage
  348. label: Additional Storage
  349. schema:
  350. type: list
  351. default: []
  352. items:
  353. - variable: storageEntry
  354. label: Storage Entry
  355. schema:
  356. type: dict
  357. attrs:
  358. - variable: type
  359. label: Type
  360. description: |
  361. ixVolume: Is dataset created automatically by the system.</br>
  362. Host Path: Is a path that already exists on the system.</br>
  363. SMB Share: Is a SMB share that is mounted to as a volume.
  364. schema:
  365. type: string
  366. required: true
  367. default: "ix_volume"
  368. enum:
  369. - value: "host_path"
  370. description: Host Path (Path that already exists on the system)
  371. - value: "ix_volume"
  372. description: ixVolume (Dataset created automatically by the system)
  373. - value: "cifs"
  374. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  375. - variable: read_only
  376. label: Read Only
  377. description: Mount the volume as read only.
  378. schema:
  379. type: boolean
  380. default: false
  381. - variable: mount_path
  382. label: Mount Path
  383. description: The path inside the container to mount the storage.
  384. schema:
  385. type: path
  386. required: true
  387. - variable: host_path_config
  388. label: Host Path Configuration
  389. schema:
  390. type: dict
  391. show_if: [["type", "=", "host_path"]]
  392. attrs:
  393. - variable: acl_enable
  394. label: Enable ACL
  395. description: Enable ACL for the storage.
  396. schema:
  397. type: boolean
  398. default: false
  399. - variable: acl
  400. label: ACL Configuration
  401. schema:
  402. type: dict
  403. show_if: [["acl_enable", "=", true]]
  404. attrs: []
  405. $ref:
  406. - "normalize/acl"
  407. - variable: path
  408. label: Host Path
  409. description: The host path to use for storage.
  410. schema:
  411. type: hostpath
  412. show_if: [["acl_enable", "=", false]]
  413. required: true
  414. - variable: ix_volume_config
  415. label: ixVolume Configuration
  416. description: The configuration for the ixVolume dataset.
  417. schema:
  418. type: dict
  419. show_if: [["type", "=", "ix_volume"]]
  420. $ref:
  421. - "normalize/ix_volume"
  422. attrs:
  423. - variable: acl_enable
  424. label: Enable ACL
  425. description: Enable ACL for the storage.
  426. schema:
  427. type: boolean
  428. default: false
  429. - variable: dataset_name
  430. label: Dataset Name
  431. description: The name of the dataset to use for storage.
  432. schema:
  433. type: string
  434. required: true
  435. default: "storage_entry"
  436. - variable: acl_entries
  437. label: ACL Configuration
  438. schema:
  439. type: dict
  440. show_if: [["acl_enable", "=", true]]
  441. attrs: []
  442. $ref:
  443. - "normalize/acl"
  444. - variable: cifs_config
  445. label: SMB Configuration
  446. description: The configuration for the SMB dataset.
  447. schema:
  448. type: dict
  449. show_if: [["type", "=", "cifs"]]
  450. attrs:
  451. - variable: server
  452. label: Server
  453. description: The server to mount the SMB share.
  454. schema:
  455. type: string
  456. required: true
  457. - variable: path
  458. label: Path
  459. description: The path to mount the SMB share.
  460. schema:
  461. type: string
  462. required: true
  463. - variable: username
  464. label: Username
  465. description: The username to use for the SMB share.
  466. schema:
  467. type: string
  468. required: true
  469. - variable: password
  470. label: Password
  471. description: The password to use for the SMB share.
  472. schema:
  473. type: string
  474. required: true
  475. private: true
  476. - variable: domain
  477. label: Domain
  478. description: The domain to use for the SMB share.
  479. schema:
  480. type: string
  481. - variable: labels
  482. label: ""
  483. group: Labels Configuration
  484. schema:
  485. type: list
  486. default: []
  487. items:
  488. - variable: label
  489. label: Label
  490. schema:
  491. type: dict
  492. attrs:
  493. - variable: key
  494. label: Key
  495. schema:
  496. type: string
  497. required: true
  498. - variable: value
  499. label: Value
  500. schema:
  501. type: string
  502. required: true
  503. - variable: containers
  504. label: Containers
  505. description: Containers where the label should be applied
  506. schema:
  507. type: list
  508. items:
  509. - variable: container
  510. label: Container
  511. schema:
  512. type: string
  513. required: true
  514. enum:
  515. - value: tvheadend
  516. description: tvheadend
  517. - variable: resources
  518. label: ""
  519. group: Resources Configuration
  520. schema:
  521. type: dict
  522. attrs:
  523. - variable: limits
  524. label: Limits
  525. schema:
  526. type: dict
  527. attrs:
  528. - variable: cpus
  529. label: CPUs
  530. description: CPUs limit for TVHeadend.
  531. schema:
  532. type: int
  533. default: 2
  534. required: true
  535. - variable: memory
  536. label: Memory (in MB)
  537. description: Memory limit for TVHeadend.
  538. schema:
  539. type: int
  540. default: 4096
  541. required: true
  542. - variable: gpus
  543. group: Resources Configuration
  544. label: GPU Configuration
  545. schema:
  546. type: dict
  547. $ref:
  548. - "definitions/gpu_configuration"
  549. attrs: []