questions.yaml 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251
  1. groups:
  2. - name: Nextcloud Configuration
  3. description: Configure Nextcloud
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Nextcloud
  6. - name: Network Configuration
  7. description: Configure Network for Nextcloud
  8. - name: Storage Configuration
  9. description: Configure Storage for Nextcloud
  10. - name: Labels Configuration
  11. description: Configure Labels for Nextcloud
  12. - name: Resources Configuration
  13. description: Configure Resources for Nextcloud
  14. questions:
  15. - variable: TZ
  16. group: Nextcloud Configuration
  17. label: Timezone
  18. schema:
  19. type: string
  20. default: Etc/UTC
  21. required: true
  22. $ref:
  23. - definitions/timezone
  24. - variable: nextcloud
  25. label: ""
  26. group: Nextcloud Configuration
  27. schema:
  28. type: dict
  29. attrs:
  30. - variable: postgres_image_selector
  31. label: Postgres Image (CAUTION)
  32. description: |
  33. If you are changing this after the postgres directory has been initialized,</br>
  34. STOP! and make sure you have a backup of your data.</br>
  35. Changing this will trigger an one way database upgrade.</br>
  36. You can only select newer versions of postgres.</br>
  37. Selecting an older version will refuse to start.</br>
  38. If something goes wrong, you will have to restore from backup.
  39. schema:
  40. type: string
  41. default: postgres_17_image
  42. required: true
  43. enum:
  44. - value: postgres_17_image
  45. description: Postgres 17
  46. - variable: admin_user
  47. label: Admin User
  48. description: The admin user for Nextcloud.
  49. schema:
  50. type: string
  51. default: ""
  52. required: true
  53. - variable: admin_password
  54. label: Admin Password
  55. description: The admin password for Nextcloud.
  56. schema:
  57. type: string
  58. default: ""
  59. required: true
  60. private: true
  61. - variable: redis_password
  62. label: Redis Password
  63. description: The password for Redis.
  64. schema:
  65. type: string
  66. default: ""
  67. required: true
  68. private: true
  69. - variable: db_password
  70. label: Database Password
  71. description: The password for the database.
  72. schema:
  73. type: string
  74. default: ""
  75. required: true
  76. private: true
  77. - variable: build
  78. label: Build
  79. description: Build-time configuration for Nextcloud.
  80. schema:
  81. type: dict
  82. attrs:
  83. - variable: tesseract_languages
  84. label: Tesseract Language Codes
  85. description: |
  86. The tesseract languages to install for OCRmypdf.</br>
  87. See a list of language codes here https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html.</br>
  88. Typing a wrong language code will block the container from starting.
  89. schema:
  90. type: list
  91. default: []
  92. items:
  93. - variable: language
  94. label: Language
  95. schema:
  96. type: string
  97. # eg: eng
  98. min_length: 3
  99. # eg chi-sim
  100. max_length: 7
  101. required: true
  102. - variable: performance
  103. label: Performance
  104. description: |
  105. Performance settings for Nextcloud.
  106. schema:
  107. type: dict
  108. attrs:
  109. - variable: run_optimize
  110. label: Run Optimize
  111. description: |
  112. Runs some optimizations for Nextcloud.</br>
  113. See https://github.com/truenas/containers/blob/master/apps/nextcloud-fpm/configure-scripts/occ-optimize.sh
  114. schema:
  115. type: boolean
  116. default: true
  117. - variable: max_chunksize_mb
  118. label: Max Chunksize (MB)
  119. description: The maximum chunk size to use for chunked uploads.
  120. schema:
  121. type: int
  122. default: 10
  123. min: 1
  124. max: 1024
  125. required: true
  126. - variable: php_upload_limit_gb
  127. label: PHP Upload Limit (GB)
  128. description: The maximum size of an uploaded file.
  129. schema:
  130. type: int
  131. default: 3
  132. min: 1
  133. required: true
  134. - variable: php_memory_limit_mb
  135. label: PHP Memory Limit (MB)
  136. description: The maximum amount of memory a script may consume.
  137. schema:
  138. type: int
  139. default: 512
  140. min: 128
  141. max: 4096
  142. required: true
  143. - variable: general
  144. label: General
  145. description: General settings for Nextcloud.
  146. schema:
  147. type: dict
  148. attrs:
  149. - variable: maintenance_window_start
  150. label: Maintenance Window Start
  151. description: |
  152. The start of the maintenance window.</br>
  153. See https://docs.nextcloud.com/server/28/admin_manual/configuration_server/background_jobs_configuration.html#maintenance-window-start
  154. schema:
  155. type: int
  156. default: 100
  157. min: 0
  158. max: 100
  159. required: true
  160. - variable: default_phone_region
  161. label: Default Phone Region
  162. description: The default phone region.
  163. schema:
  164. type: string
  165. default: US
  166. min_length: 2
  167. max_length: 2
  168. required: true
  169. - variable: previews
  170. label: Previews
  171. description: Previews settings for Nextcloud.
  172. schema:
  173. type: dict
  174. attrs:
  175. - variable: enabled
  176. label: Enabled
  177. description: Enable previews.
  178. schema:
  179. type: boolean
  180. default: true
  181. - variable: imaginary
  182. label: Imaginary
  183. description: |
  184. Enable Imaginary.</br>
  185. Enabling or Disabling this will trigger actions on each startup to ensure
  186. the configuration is either present or absent.</br>
  187. Actions like, update configuration, add/remove nextcloud app.
  188. schema:
  189. type: dict
  190. show_if: [["enabled", "=", true]]
  191. attrs:
  192. - variable: enabled
  193. label: Enabled
  194. description: Enable Imaginary.
  195. schema:
  196. type: boolean
  197. default: true
  198. - variable: max_x
  199. label: Max X
  200. description: The maximum width of the preview.
  201. schema:
  202. type: int
  203. default: 2048
  204. required: true
  205. - variable: max_y
  206. label: Max Y
  207. description: The maximum height of the preview.
  208. schema:
  209. type: int
  210. default: 2048
  211. required: true
  212. - variable: max_memory_mb
  213. label: Max Memory (MB)
  214. description: The maximum memory to use for the preview.
  215. schema:
  216. type: int
  217. default: 1024
  218. required: true
  219. - variable: max_filesize_image_mb
  220. label: Max Filesize Image (MB)
  221. description: The maximum size of an image to use for the preview.
  222. schema:
  223. type: int
  224. default: 50
  225. required: true
  226. - variable: jpeg_quality
  227. label: JPEG Quality
  228. description: The JPEG quality to use for the preview.
  229. schema:
  230. type: int
  231. default: 60
  232. min: 1
  233. max: 100
  234. required: true
  235. - variable: square_sizes
  236. label: Square Sizes
  237. description: The square sizes to use for the preview.
  238. schema:
  239. type: list
  240. default:
  241. - 32
  242. - 256
  243. items:
  244. - variable: size
  245. label: Size
  246. schema:
  247. type: int
  248. min: 1
  249. max: 1024
  250. required: true
  251. - variable: width_sizes
  252. label: Width Sizes
  253. description: The width sizes to use for the preview.
  254. schema:
  255. type: list
  256. default:
  257. - 256
  258. - 384
  259. items:
  260. - variable: size
  261. label: Size
  262. schema:
  263. type: int
  264. min: 1
  265. max: 1024
  266. required: true
  267. - variable: height_sizes
  268. label: Height Sizes
  269. description: The height sizes to use for the preview.
  270. schema:
  271. type: list
  272. default:
  273. - 256
  274. items:
  275. - variable: size
  276. label: Size
  277. schema:
  278. type: int
  279. min: 1
  280. max: 1024
  281. required: true
  282. - variable: providers
  283. label: Providers
  284. description: |
  285. The providers to use for the preview.</br>
  286. schema:
  287. type: list
  288. default:
  289. - BMP
  290. - GIF
  291. - JPEG
  292. - Krita
  293. - MarkDown
  294. - MP3
  295. - OpenDocument
  296. - PNG
  297. - TXT
  298. - XBitmap
  299. items:
  300. - variable: provider
  301. label: Provider
  302. schema:
  303. type: string
  304. required: true
  305. enum:
  306. - value: BMP
  307. description: BMP
  308. - value: GIF
  309. description: GIF
  310. - value: JPEG
  311. description: JPEG
  312. - value: Krita
  313. description: Krita
  314. - value: MarkDown
  315. description: MarkDown
  316. - value: MP3
  317. description: MP3
  318. - value: OpenDocument
  319. description: OpenDocument
  320. - value: PNG
  321. description: PNG
  322. - value: TXT
  323. description: TXT
  324. - value: XBitmap
  325. description: XBitmap
  326. - value: Font
  327. description: Font
  328. - value: HEIC
  329. description: HEIC
  330. - value: Illustrator
  331. description: Illustrator
  332. - value: Movie
  333. description: Movie
  334. - value: MSOffice2003
  335. description: MSOffice2003
  336. - value: MSOffice2007
  337. description: MSOffice2007
  338. - value: MSOfficeDoc
  339. description: MSOfficeDoc
  340. - value: PDF
  341. description: PDF
  342. - value: Photoshop
  343. description: Photoshop
  344. - value: Postscript
  345. description: Postscript
  346. - value: StarOffice
  347. description: StarOffice
  348. - value: SVG
  349. description: SVG
  350. - value: TIFF
  351. description: TIFF
  352. - value: EMF
  353. description: EMF
  354. - variable: expirations
  355. label: Expirations
  356. description: Expirations settings for Nextcloud.
  357. schema:
  358. type: dict
  359. attrs:
  360. - variable: activity_expire_days
  361. label: Activity Expire Days
  362. description: The number of days to keep activity logs.
  363. schema:
  364. type: int
  365. default: 365
  366. min: 1
  367. required: true
  368. - variable: trash_retention
  369. label: Trash Retention
  370. description: |
  371. See https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/trashbin_configuration.html#deleted-items-trash-bin
  372. schema:
  373. type: string
  374. default: auto
  375. required: true
  376. - variable: versions_retention
  377. label: Versions Retention
  378. description: |
  379. See https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/file_versioning.html
  380. schema:
  381. type: string
  382. default: auto
  383. required: true
  384. - variable: cron
  385. label: Cron
  386. description: Cron settings for Nextcloud.
  387. schema:
  388. type: dict
  389. attrs:
  390. - variable: tasks
  391. label: Tasks
  392. description: |
  393. Only add here additional (custom) cron tasks.</br>
  394. The Nextcloud's default cron task is already scheduled.</br>
  395. schema:
  396. type: list
  397. default: []
  398. items:
  399. - variable: task
  400. label: Task
  401. schema:
  402. type: dict
  403. attrs:
  404. - variable: schedule
  405. label: Schedule
  406. description: The cron schedule.
  407. schema:
  408. type: string
  409. default: "*/15 * * * *"
  410. required: true
  411. - variable: command
  412. label: Command
  413. description: The command to run.
  414. schema:
  415. type: string
  416. required: true
  417. private: true
  418. - variable: notify_push
  419. label: Notify Push
  420. description: |
  421. Notify Push settings for Nextcloud.</br>
  422. Enabling or Disabling this will trigger actions on each startup to ensure
  423. the configuration is either present or absent.</br>
  424. Actions like, update configuration, add/remove nextcloud app.
  425. schema:
  426. type: dict
  427. attrs:
  428. - variable: enabled
  429. label: Enabled
  430. description: Enable Notify Push container
  431. schema:
  432. type: boolean
  433. default: true
  434. - variable: collabora
  435. label: Collabora
  436. description: |
  437. Collabora settings for Nextcloud.</br>
  438. Enabling or Disabling this will trigger actions on each startup to ensure
  439. the configuration is either present or absent.</br>
  440. Actions like, update configuration, add/remove nextcloud app.
  441. schema:
  442. type: dict
  443. attrs:
  444. - variable: enabled
  445. label: Enabled
  446. description: Enable Collabora
  447. schema:
  448. type: boolean
  449. default: false
  450. - variable: url
  451. label: URL
  452. description: |
  453. The URL to use for Collabora.</br>
  454. https://collabora.example.com
  455. schema:
  456. type: string
  457. show_if: [["enabled", "=", true]]
  458. required: true
  459. - variable: internal_url
  460. label: Internal URL
  461. description: |
  462. The internal URL to use for Collabora.</br>
  463. This URL needs to be accessible from the Nextcloud container.</br>
  464. But not required to be accessible from the outside (ie clients).</br>
  465. schema:
  466. type: string
  467. show_if: [["enabled", "=", true]]
  468. default: http://host.docker.internal:9980
  469. required: true
  470. - variable: allowlist
  471. label: Allowlist
  472. description: |
  473. The allowlist to use for Collabora.</br>
  474. Example: 0.0.0.0/0
  475. schema:
  476. type: list
  477. show_if: [["enabled", "=", true]]
  478. default: ["0.0.0.0/0"]
  479. items:
  480. - variable: allow
  481. label: Allow
  482. schema:
  483. type: string
  484. required: true
  485. - variable: onlyoffice
  486. label: Onlyoffice
  487. description: |
  488. Onlyoffice settings for Nextcloud.</br>
  489. Enabling or Disabling this will trigger actions on each startup to ensure
  490. the configuration is either present or absent.</br>
  491. Actions like, update configuration, add/remove nextcloud app.
  492. schema:
  493. type: dict
  494. attrs:
  495. - variable: enabled
  496. label: Enabled
  497. description: Enable Onlyoffice
  498. schema:
  499. type: boolean
  500. default: false
  501. - variable: url
  502. label: URL
  503. description: |
  504. The URL to use for Onlyoffice.</br>
  505. https://onlyoffice.example.com
  506. schema:
  507. type: string
  508. show_if: [["enabled", "=", true]]
  509. required: true
  510. - variable: jwt_secret
  511. label: JWT Secret
  512. description: |
  513. The JWT secret to use for Onlyoffice.</br>
  514. Example: random_string_of_characters
  515. schema:
  516. type: string
  517. show_if: [["enabled", "=", true]]
  518. required: true
  519. - variable: jwt_header
  520. label: JWT Header
  521. description: |
  522. The JWT header to use for Onlyoffice.</br>
  523. Example: Authorization
  524. schema:
  525. type: string
  526. show_if: [["enabled", "=", true]]
  527. default: Authorization
  528. required: true
  529. - variable: clamav
  530. label: Clamav
  531. description: Clamav settings for Nextcloud.
  532. schema:
  533. type: dict
  534. attrs:
  535. - variable: enabled
  536. label: Enabled
  537. description: Enable Clamav
  538. schema:
  539. type: boolean
  540. default: false
  541. - variable: host
  542. label: Host
  543. description: |
  544. The host to use for Clamav.</br>
  545. Do NOT include the protocol or the port.</br>
  546. Examples: </br>
  547. - clamav.example.com
  548. - 192.168.1.100 (replace ip and port with your own)
  549. schema:
  550. type: string
  551. show_if: [["enabled", "=", true]]
  552. required: true
  553. - variable: port
  554. label: Port
  555. description: |
  556. The port to use for Clamav.</br>
  557. Example: 3310
  558. schema:
  559. type: int
  560. show_if: [["enabled", "=", true]]
  561. default: 3310
  562. min: 1
  563. max: 65535
  564. required: true
  565. - variable: file_max_size
  566. label: File Max Size
  567. description: |
  568. The maximum size of a file to scan.</br>
  569. Example: -1 (unlimited)
  570. schema:
  571. type: int
  572. show_if: [["enabled", "=", true]]
  573. default: -1
  574. min: -1
  575. required: true
  576. - variable: infected_action
  577. label: Infected Action
  578. description: |
  579. The action to take when a file is infected.</br>
  580. Example: only_log
  581. schema:
  582. type: string
  583. show_if: [["enabled", "=", true]]
  584. default: only_log
  585. required: true
  586. enum:
  587. - value: only_log
  588. description: Only log
  589. - value: delete
  590. description: Delete
  591. - variable: urls
  592. label: URLs
  593. description: URLs settings for Nextcloud.
  594. schema:
  595. type: dict
  596. attrs:
  597. - variable: protocol
  598. label: Protocol
  599. description: |
  600. The protocol you use to access Nextcloud.</br>
  601. For example if you use a reverse proxy, you most likely want to use https.</br>
  602. If you setup a certificate on the network section, https will be used automatically.
  603. schema:
  604. type: string
  605. default: http
  606. required: true
  607. enum:
  608. - value: http
  609. description: HTTP
  610. - value: https
  611. description: HTTPS
  612. - variable: host
  613. label: Host
  614. description: |
  615. The host you use to access Nextcloud.</br>
  616. Do NOT include the protocol or the port.</br>
  617. Examples:</br>
  618. - cloud.domain.com</br>
  619. - 192.168.1.100 (replace ip and port with your own)
  620. schema:
  621. type: string
  622. default: ""
  623. required: true
  624. - variable: external_port
  625. label: External Port
  626. description: |
  627. The external port you use to access Nextcloud.</br>
  628. If you use a reverse proxy, you most likely want to use 443.</br>
  629. Leave it at `0` if you are not using anything else in-front of Nextcloud.</br>
  630. Example: 443
  631. schema:
  632. type: int
  633. "null": true
  634. min: 1
  635. max: 65535
  636. - variable: trusted_domains
  637. label: Trusted Domains
  638. description: |
  639. Additional trusted domains to use for Nextcloud.</br>
  640. Automatically added:
  641. - The `host` you set above
  642. - Hosts of Collabora and/or Onlyoffice
  643. schema:
  644. type: list
  645. default: []
  646. items:
  647. - variable: domain
  648. label: Domain
  649. schema:
  650. type: string
  651. required: true
  652. - variable: trusted_proxies
  653. label: Trusted Proxies
  654. description: Trusted proxies to use for Nextcloud.
  655. schema:
  656. type: list
  657. default:
  658. - 10.0.0.0/8
  659. - 172.16.0.0/12
  660. - 192.168.0.0/16
  661. items:
  662. - variable: proxy
  663. label: Proxy
  664. schema:
  665. type: string
  666. required: true
  667. - variable: additional_envs
  668. label: Additional Environment Variables
  669. schema:
  670. type: list
  671. default: []
  672. items:
  673. - variable: env
  674. label: Environment Variable
  675. schema:
  676. type: dict
  677. attrs:
  678. - variable: name
  679. label: Name
  680. schema:
  681. type: string
  682. required: true
  683. - variable: value
  684. label: Value
  685. schema:
  686. type: string
  687. - variable: run_as
  688. label: ""
  689. group: User and Group Configuration
  690. schema:
  691. type: dict
  692. attrs:
  693. - variable: user
  694. label: User ID
  695. description: The user id that Nextcloud files will be owned by.
  696. schema:
  697. type: int
  698. min: 568
  699. default: 568
  700. required: true
  701. - variable: group
  702. label: Group ID
  703. description: The group id that Nextcloud files will be owned by.
  704. schema:
  705. type: int
  706. min: 568
  707. default: 568
  708. required: true
  709. - variable: network
  710. label: ""
  711. group: Network Configuration
  712. schema:
  713. type: dict
  714. attrs:
  715. - variable: web_port
  716. label: WebUI Port
  717. schema:
  718. type: dict
  719. attrs:
  720. - variable: bind_mode
  721. label: Port Bind Mode
  722. description: |
  723. The port bind mode.</br>
  724. - Publish: The port will be published on the host for external access.</br>
  725. - Expose: The port will be exposed for inter-container communication.</br>
  726. - None: The port will not be exposed or published.</br>
  727. Note: If the Dockerfile defines an EXPOSE directive,
  728. the port will still be exposed for inter-container communication regardless of this setting.
  729. schema:
  730. type: string
  731. default: "published"
  732. enum:
  733. - value: "published"
  734. description: Publish port on the host for external access
  735. - value: "exposed"
  736. description: Expose port for inter-container communication
  737. - value: ""
  738. description: None
  739. - variable: port_number
  740. label: Port Number
  741. schema:
  742. type: int
  743. default: 30125
  744. min: 1
  745. max: 65535
  746. required: true
  747. - variable: host_ips
  748. label: Host IPs
  749. description: IPs on the host to bind this port
  750. schema:
  751. type: list
  752. show_if: [["bind_mode", "=", "published"]]
  753. default: []
  754. items:
  755. - variable: host_ip
  756. label: Host IP
  757. schema:
  758. type: string
  759. required: true
  760. $ref:
  761. - definitions/node_bind_ip
  762. - variable: certificate_id
  763. label: Certificate ID
  764. description: The certificate ID to use for Nextcloud.
  765. schema:
  766. type: int
  767. "null": true
  768. $ref:
  769. - "definitions/certificate"
  770. # - variable: custom_confs
  771. # label: Custom Nginx Configurations
  772. # description: List of custom Nginx configurations.
  773. # schema:
  774. # type: list
  775. # default: []
  776. # items:
  777. # - variable: conf
  778. # label: Configuration
  779. # schema:
  780. # type: hostpath
  781. # required: true
  782. - variable: storage
  783. label: ""
  784. group: Storage Configuration
  785. schema:
  786. type: dict
  787. attrs:
  788. - variable: html
  789. label: Nextcloud AppData Storage (HTML, Custom Themes, Apps, etc.)
  790. description: The path to store Nextcloud HTML and AppData.
  791. schema:
  792. type: dict
  793. attrs:
  794. - variable: type
  795. label: Type
  796. description: |
  797. ixVolume: Is dataset created automatically by the system.</br>
  798. Host Path: Is a path that already exists on the system.
  799. schema:
  800. type: string
  801. required: true
  802. default: "ix_volume"
  803. enum:
  804. - value: "host_path"
  805. description: Host Path (Path that already exists on the system)
  806. - value: "ix_volume"
  807. description: ixVolume (Dataset created automatically by the system)
  808. - variable: ix_volume_config
  809. label: ixVolume Configuration
  810. description: The configuration for the ixVolume dataset.
  811. schema:
  812. type: dict
  813. show_if: [["type", "=", "ix_volume"]]
  814. $ref:
  815. - "normalize/ix_volume"
  816. attrs:
  817. - variable: acl_enable
  818. label: Enable ACL
  819. description: Enable ACL for the storage.
  820. schema:
  821. type: boolean
  822. default: false
  823. - variable: dataset_name
  824. label: Dataset Name
  825. description: The name of the dataset to use for storage.
  826. schema:
  827. type: string
  828. required: true
  829. hidden: true
  830. default: "html"
  831. - variable: acl_entries
  832. label: ACL Configuration
  833. schema:
  834. type: dict
  835. show_if: [["acl_enable", "=", true]]
  836. attrs: []
  837. - variable: host_path_config
  838. label: Host Path Configuration
  839. schema:
  840. type: dict
  841. show_if: [["type", "=", "host_path"]]
  842. attrs:
  843. - variable: acl_enable
  844. label: Enable ACL
  845. description: Enable ACL for the storage.
  846. schema:
  847. type: boolean
  848. default: false
  849. - variable: acl
  850. label: ACL Configuration
  851. schema:
  852. type: dict
  853. show_if: [["acl_enable", "=", true]]
  854. attrs: []
  855. $ref:
  856. - "normalize/acl"
  857. - variable: path
  858. label: Host Path
  859. description: The host path to use for storage.
  860. schema:
  861. type: hostpath
  862. show_if: [["acl_enable", "=", false]]
  863. required: true
  864. - variable: data
  865. label: Nextcloud User Data Storage
  866. description: The path to store Nextcloud User Data (Mounted at /nc-data).
  867. schema:
  868. type: dict
  869. attrs:
  870. - variable: type
  871. label: Type
  872. description: |
  873. ixVolume: Is dataset created automatically by the system.</br>
  874. Host Path: Is a path that already exists on the system.
  875. schema:
  876. type: string
  877. required: true
  878. default: "ix_volume"
  879. enum:
  880. - value: "host_path"
  881. description: Host Path (Path that already exists on the system)
  882. - value: "ix_volume"
  883. description: ixVolume (Dataset created automatically by the system)
  884. - variable: ix_volume_config
  885. label: ixVolume Configuration
  886. description: The configuration for the ixVolume dataset.
  887. schema:
  888. type: dict
  889. show_if: [["type", "=", "ix_volume"]]
  890. $ref:
  891. - "normalize/ix_volume"
  892. attrs:
  893. - variable: acl_enable
  894. label: Enable ACL
  895. description: Enable ACL for the storage.
  896. schema:
  897. type: boolean
  898. default: false
  899. - variable: dataset_name
  900. label: Dataset Name
  901. description: The name of the dataset to use for storage.
  902. schema:
  903. type: string
  904. required: true
  905. hidden: true
  906. default: "data"
  907. - variable: acl_entries
  908. label: ACL Configuration
  909. schema:
  910. type: dict
  911. show_if: [["acl_enable", "=", true]]
  912. attrs: []
  913. - variable: host_path_config
  914. label: Host Path Configuration
  915. schema:
  916. type: dict
  917. show_if: [["type", "=", "host_path"]]
  918. attrs:
  919. - variable: acl_enable
  920. label: Enable ACL
  921. description: Enable ACL for the storage.
  922. schema:
  923. type: boolean
  924. default: false
  925. - variable: acl
  926. label: ACL Configuration
  927. schema:
  928. type: dict
  929. show_if: [["acl_enable", "=", true]]
  930. attrs: []
  931. $ref:
  932. - "normalize/acl"
  933. - variable: path
  934. label: Host Path
  935. description: The host path to use for storage.
  936. schema:
  937. type: hostpath
  938. show_if: [["acl_enable", "=", false]]
  939. required: true
  940. - variable: postgres_data
  941. label: Nextcloud Postgres Data Storage
  942. description: The path to store Nextcloud Postgres Data.
  943. schema:
  944. type: dict
  945. attrs:
  946. - variable: type
  947. label: Type
  948. description: |
  949. ixVolume: Is dataset created automatically by the system.</br>
  950. Host Path: Is a path that already exists on the system.
  951. schema:
  952. type: string
  953. required: true
  954. default: "ix_volume"
  955. enum:
  956. - value: "host_path"
  957. description: Host Path (Path that already exists on the system)
  958. - value: "ix_volume"
  959. description: ixVolume (Dataset created automatically by the system)
  960. - variable: ix_volume_config
  961. label: ixVolume Configuration
  962. description: The configuration for the ixVolume dataset.
  963. schema:
  964. type: dict
  965. show_if: [["type", "=", "ix_volume"]]
  966. $ref:
  967. - "normalize/ix_volume"
  968. attrs:
  969. - variable: acl_enable
  970. label: Enable ACL
  971. description: Enable ACL for the storage.
  972. schema:
  973. type: boolean
  974. default: false
  975. - variable: dataset_name
  976. label: Dataset Name
  977. description: The name of the dataset to use for storage.
  978. schema:
  979. type: string
  980. required: true
  981. hidden: true
  982. default: "postgres_data"
  983. - variable: acl_entries
  984. label: ACL Configuration
  985. schema:
  986. type: dict
  987. show_if: [["acl_enable", "=", true]]
  988. attrs: []
  989. - variable: host_path_config
  990. label: Host Path Configuration
  991. schema:
  992. type: dict
  993. show_if: [["type", "=", "host_path"]]
  994. attrs:
  995. - variable: acl_enable
  996. label: Enable ACL
  997. description: Enable ACL for the storage.
  998. schema:
  999. type: boolean
  1000. default: false
  1001. - variable: acl
  1002. label: ACL Configuration
  1003. schema:
  1004. type: dict
  1005. show_if: [["acl_enable", "=", true]]
  1006. attrs: []
  1007. $ref:
  1008. - "normalize/acl"
  1009. - variable: path
  1010. label: Host Path
  1011. description: The host path to use for storage.
  1012. schema:
  1013. type: hostpath
  1014. show_if: [["acl_enable", "=", false]]
  1015. required: true
  1016. - variable: auto_permissions
  1017. label: Automatic Permissions
  1018. description: |
  1019. Automatically set permissions for the host path.
  1020. Enabling this, will check the top level directory,</br>
  1021. If it finds incorrect permissions, it will `chown` the
  1022. host path to the user and group required for the
  1023. postgres container.
  1024. schema:
  1025. type: boolean
  1026. default: false
  1027. show_if: [["acl_enable", "=", false]]
  1028. - variable: additional_storage
  1029. label: Additional Storage
  1030. schema:
  1031. type: list
  1032. default: []
  1033. items:
  1034. - variable: storageEntry
  1035. label: Storage Entry
  1036. schema:
  1037. type: dict
  1038. attrs:
  1039. - variable: type
  1040. label: Type
  1041. description: |
  1042. ixVolume: Is dataset created automatically by the system.</br>
  1043. Host Path: Is a path that already exists on the system.</br>
  1044. SMB Share: Is a SMB share that is mounted to as a volume.
  1045. schema:
  1046. type: string
  1047. required: true
  1048. default: "ix_volume"
  1049. enum:
  1050. - value: "host_path"
  1051. description: Host Path (Path that already exists on the system)
  1052. - value: "ix_volume"
  1053. description: ixVolume (Dataset created automatically by the system)
  1054. - value: "cifs"
  1055. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  1056. - variable: read_only
  1057. label: Read Only
  1058. description: Mount the volume as read only.
  1059. schema:
  1060. type: boolean
  1061. default: false
  1062. - variable: mount_path
  1063. label: Mount Path
  1064. description: The path inside the container to mount the storage.
  1065. schema:
  1066. type: path
  1067. required: true
  1068. - variable: host_path_config
  1069. label: Host Path Configuration
  1070. schema:
  1071. type: dict
  1072. show_if: [["type", "=", "host_path"]]
  1073. attrs:
  1074. - variable: acl_enable
  1075. label: Enable ACL
  1076. description: Enable ACL for the storage.
  1077. schema:
  1078. type: boolean
  1079. default: false
  1080. - variable: acl
  1081. label: ACL Configuration
  1082. schema:
  1083. type: dict
  1084. show_if: [["acl_enable", "=", true]]
  1085. attrs: []
  1086. $ref:
  1087. - "normalize/acl"
  1088. - variable: path
  1089. label: Host Path
  1090. description: The host path to use for storage.
  1091. schema:
  1092. type: hostpath
  1093. show_if: [["acl_enable", "=", false]]
  1094. required: true
  1095. - variable: ix_volume_config
  1096. label: ixVolume Configuration
  1097. description: The configuration for the ixVolume dataset.
  1098. schema:
  1099. type: dict
  1100. show_if: [["type", "=", "ix_volume"]]
  1101. $ref:
  1102. - "normalize/ix_volume"
  1103. attrs:
  1104. - variable: acl_enable
  1105. label: Enable ACL
  1106. description: Enable ACL for the storage.
  1107. schema:
  1108. type: boolean
  1109. default: false
  1110. - variable: dataset_name
  1111. label: Dataset Name
  1112. description: The name of the dataset to use for storage.
  1113. schema:
  1114. type: string
  1115. required: true
  1116. default: "storage_entry"
  1117. - variable: acl_entries
  1118. label: ACL Configuration
  1119. schema:
  1120. type: dict
  1121. show_if: [["acl_enable", "=", true]]
  1122. attrs: []
  1123. $ref:
  1124. - "normalize/acl"
  1125. - variable: cifs_config
  1126. label: SMB Configuration
  1127. description: The configuration for the SMB dataset.
  1128. schema:
  1129. type: dict
  1130. show_if: [["type", "=", "cifs"]]
  1131. attrs:
  1132. - variable: server
  1133. label: Server
  1134. description: The server to mount the SMB share.
  1135. schema:
  1136. type: string
  1137. required: true
  1138. - variable: path
  1139. label: Path
  1140. description: The path to mount the SMB share.
  1141. schema:
  1142. type: string
  1143. required: true
  1144. - variable: username
  1145. label: Username
  1146. description: The username to use for the SMB share.
  1147. schema:
  1148. type: string
  1149. required: true
  1150. - variable: password
  1151. label: Password
  1152. description: The password to use for the SMB share.
  1153. schema:
  1154. type: string
  1155. required: true
  1156. private: true
  1157. - variable: domain
  1158. label: Domain
  1159. description: The domain to use for the SMB share.
  1160. schema:
  1161. type: string
  1162. - variable: labels
  1163. label: ""
  1164. group: Labels Configuration
  1165. schema:
  1166. type: list
  1167. default: []
  1168. items:
  1169. - variable: label
  1170. label: Label
  1171. schema:
  1172. type: dict
  1173. attrs:
  1174. - variable: key
  1175. label: Key
  1176. schema:
  1177. type: string
  1178. required: true
  1179. - variable: value
  1180. label: Value
  1181. schema:
  1182. type: string
  1183. required: true
  1184. - variable: containers
  1185. label: Containers
  1186. description: Containers where the label should be applied
  1187. schema:
  1188. type: list
  1189. items:
  1190. - variable: container
  1191. label: Container
  1192. schema:
  1193. type: string
  1194. required: true
  1195. enum:
  1196. - value: nextcloud
  1197. description: nextcloud
  1198. - value: imaginary
  1199. description: imaginary
  1200. - value: notify-push
  1201. description: notify-push
  1202. - value: cron
  1203. description: cron
  1204. - value: nginx
  1205. description: nginx
  1206. - value: postgres
  1207. description: postgres
  1208. - value: redis
  1209. description: redis
  1210. - variable: resources
  1211. label: ""
  1212. group: Resources Configuration
  1213. schema:
  1214. type: dict
  1215. attrs:
  1216. - variable: limits
  1217. label: Limits
  1218. schema:
  1219. type: dict
  1220. attrs:
  1221. - variable: cpus
  1222. label: CPUs
  1223. description: CPUs limit for Nextcloud.
  1224. schema:
  1225. type: int
  1226. default: 2
  1227. required: true
  1228. - variable: memory
  1229. label: Memory (in MB)
  1230. description: Memory limit for Nextcloud.
  1231. schema:
  1232. type: int
  1233. default: 4096
  1234. required: true
  1235. - variable: gpus
  1236. group: Resources Configuration
  1237. label: GPU Configuration
  1238. schema:
  1239. type: dict
  1240. $ref:
  1241. - "definitions/gpu_configuration"
  1242. attrs: []