questions.yaml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. groups:
  2. - name: Linkding Configuration
  3. description: Configure Linkding
  4. - name: User and Group Configuration
  5. description: Configure User and Group for Linkding
  6. - name: Network Configuration
  7. description: Configure Network for Linkding
  8. - name: Storage Configuration
  9. description: Configure Storage for Linkding
  10. - name: Labels Configuration
  11. description: Configure Labels for Linkding
  12. - name: Resources Configuration
  13. description: Configure Resources for Linkding
  14. questions:
  15. - variable: TZ
  16. group: Linkding Configuration
  17. label: Timezone
  18. schema:
  19. type: string
  20. default: Etc/UTC
  21. required: true
  22. $ref:
  23. - definitions/timezone
  24. - variable: linkding
  25. label: ""
  26. group: Linkding 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_15_image
  45. description: Postgres 15
  46. - value: postgres_17_image
  47. description: Postgres 17
  48. - variable: image_selector
  49. label: Image Selector
  50. description: See https://github.com/sissbruecker/linkding/?tab=readme-ov-file#using-docker
  51. schema:
  52. type: string
  53. default: image
  54. required: true
  55. enum:
  56. - value: image
  57. description: Normal Image
  58. - value: plus_image
  59. description: Plus Image
  60. - variable: db_password
  61. label: Database Password
  62. description: The password for Linkding Database.
  63. schema:
  64. type: string
  65. default: ""
  66. required: true
  67. private: true
  68. - variable: username
  69. label: Username
  70. description: |
  71. The username for Linkding. </br>
  72. It creates a superuser if it doesn't exist.</br>
  73. Leaving this empty will disable authentication.
  74. schema:
  75. type: string
  76. default: ""
  77. - variable: password
  78. label: Password
  79. description: The password for Linkding
  80. schema:
  81. type: string
  82. show_if: [["username", "!=", ""]]
  83. default: ""
  84. private: true
  85. required: true
  86. - variable: disable_background_tasks
  87. label: Disable Background Tasks
  88. description: |
  89. Disables background tasks, such as creating snapshots for bookmarks
  90. on the the Internet Archive Wayback Machine.
  91. schema:
  92. type: boolean
  93. default: false
  94. - variable: disable_url_validation
  95. label: Disable URL Validation
  96. description: |
  97. Completely disables URL validation for bookmarks.
  98. This can be useful if you intend to store non fully qualified
  99. domain name URLs, such as network paths, or you want to store
  100. URLs that use another protocol than http or https.
  101. schema:
  102. type: boolean
  103. default: false
  104. - variable: enable_auth_proxy
  105. label: Enable Auth Proxy
  106. description: |
  107. Enable authentication proxy. </br>
  108. This will disable the built-in authentication and use the
  109. authentication proxy instead.
  110. schema:
  111. type: boolean
  112. default: false
  113. - variable: auth_proxy_username_header
  114. label: Auth Proxy Username Header
  115. description: |
  116. The HTTP header that contains the username for the authentication
  117. proxy.
  118. schema:
  119. type: string
  120. show_if: [["enable_auth_proxy", "=", true]]
  121. default: ""
  122. required: true
  123. - variable: auth_proxy_logout_url
  124. label: Auth Proxy Logout URL
  125. description: |
  126. The URL to redirect to when logging out of the authentication proxy.
  127. schema:
  128. type: string
  129. show_if: [["enable_auth_proxy", "=", true]]
  130. default: ""
  131. - variable: csrf_trusted_origins
  132. label: CSRF Trusted Origins
  133. description: |
  134. A list of origins that are allowed to bypass the CSRF protection.
  135. schema:
  136. type: list
  137. default: []
  138. items:
  139. - variable: origin
  140. label: Origin
  141. schema:
  142. type: string
  143. required: true
  144. - variable: additional_envs
  145. label: Additional Environment Variables
  146. schema:
  147. type: list
  148. default: []
  149. items:
  150. - variable: env
  151. label: Environment Variable
  152. schema:
  153. type: dict
  154. attrs:
  155. - variable: name
  156. label: Name
  157. schema:
  158. type: string
  159. required: true
  160. - variable: value
  161. label: Value
  162. schema:
  163. type: string
  164. - variable: run_as
  165. label: ""
  166. group: User and Group Configuration
  167. schema:
  168. type: dict
  169. attrs:
  170. - variable: user
  171. label: User ID
  172. description: The user id that Linkding files will be owned by.
  173. schema:
  174. type: int
  175. min: 568
  176. default: 568
  177. required: true
  178. - variable: group
  179. label: Group ID
  180. description: The group id that Linkding files will be owned by.
  181. schema:
  182. type: int
  183. min: 568
  184. default: 568
  185. required: true
  186. - variable: network
  187. label: ""
  188. group: Network Configuration
  189. schema:
  190. type: dict
  191. attrs:
  192. - variable: web_port
  193. label: WebUI Port
  194. schema:
  195. type: dict
  196. attrs:
  197. - variable: bind_mode
  198. label: Port Bind Mode
  199. description: |
  200. The port bind mode.</br>
  201. - Publish: The port will be published on the host for external access.</br>
  202. - Expose: The port will be exposed for inter-container communication.</br>
  203. - None: The port will not be exposed or published.</br>
  204. Note: If the Dockerfile defines an EXPOSE directive,
  205. the port will still be exposed for inter-container communication regardless of this setting.
  206. schema:
  207. type: string
  208. default: "published"
  209. enum:
  210. - value: "published"
  211. description: Publish port on the host for external access
  212. - value: "exposed"
  213. description: Expose port for inter-container communication
  214. - value: ""
  215. description: None
  216. - variable: port_number
  217. label: Port Number
  218. schema:
  219. type: int
  220. default: 30083
  221. min: 1
  222. max: 65535
  223. required: true
  224. - variable: host_ips
  225. label: Host IPs
  226. description: IPs on the host to bind this port
  227. schema:
  228. type: list
  229. show_if: [["bind_mode", "=", "published"]]
  230. default: []
  231. items:
  232. - variable: host_ip
  233. label: Host IP
  234. schema:
  235. type: string
  236. required: true
  237. $ref:
  238. - definitions/node_bind_ip
  239. - variable: storage
  240. label: ""
  241. group: Storage Configuration
  242. schema:
  243. type: dict
  244. attrs:
  245. - variable: data
  246. label: Linkding Data Storage
  247. description: The path to store Linkding Data.
  248. schema:
  249. type: dict
  250. attrs:
  251. - variable: type
  252. label: Type
  253. description: |
  254. ixVolume: Is dataset created automatically by the system.</br>
  255. Host Path: Is a path that already exists on the system.
  256. schema:
  257. type: string
  258. required: true
  259. default: "ix_volume"
  260. enum:
  261. - value: "host_path"
  262. description: Host Path (Path that already exists on the system)
  263. - value: "ix_volume"
  264. description: ixVolume (Dataset created automatically by the system)
  265. - variable: ix_volume_config
  266. label: ixVolume Configuration
  267. description: The configuration for the ixVolume dataset.
  268. schema:
  269. type: dict
  270. show_if: [["type", "=", "ix_volume"]]
  271. $ref:
  272. - "normalize/ix_volume"
  273. attrs:
  274. - variable: acl_enable
  275. label: Enable ACL
  276. description: Enable ACL for the storage.
  277. schema:
  278. type: boolean
  279. default: false
  280. - variable: dataset_name
  281. label: Dataset Name
  282. description: The name of the dataset to use for storage.
  283. schema:
  284. type: string
  285. required: true
  286. hidden: true
  287. default: "data"
  288. - variable: acl_entries
  289. label: ACL Configuration
  290. schema:
  291. type: dict
  292. show_if: [["acl_enable", "=", true]]
  293. attrs: []
  294. - variable: host_path_config
  295. label: Host Path Configuration
  296. schema:
  297. type: dict
  298. show_if: [["type", "=", "host_path"]]
  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: acl
  307. label: ACL Configuration
  308. schema:
  309. type: dict
  310. show_if: [["acl_enable", "=", true]]
  311. attrs: []
  312. $ref:
  313. - "normalize/acl"
  314. - variable: path
  315. label: Host Path
  316. description: The host path to use for storage.
  317. schema:
  318. type: hostpath
  319. show_if: [["acl_enable", "=", false]]
  320. required: true
  321. - variable: postgres_data
  322. label: Linkding Postgres Data Storage
  323. description: The path to store Linkding Postgres Data.
  324. schema:
  325. type: dict
  326. attrs:
  327. - variable: type
  328. label: Type
  329. description: |
  330. ixVolume: Is dataset created automatically by the system.</br>
  331. Host Path: Is a path that already exists on the system.
  332. schema:
  333. type: string
  334. required: true
  335. default: "ix_volume"
  336. enum:
  337. - value: "host_path"
  338. description: Host Path (Path that already exists on the system)
  339. - value: "ix_volume"
  340. description: ixVolume (Dataset created automatically by the system)
  341. - variable: ix_volume_config
  342. label: ixVolume Configuration
  343. description: The configuration for the ixVolume dataset.
  344. schema:
  345. type: dict
  346. show_if: [["type", "=", "ix_volume"]]
  347. $ref:
  348. - "normalize/ix_volume"
  349. attrs:
  350. - variable: acl_enable
  351. label: Enable ACL
  352. description: Enable ACL for the storage.
  353. schema:
  354. type: boolean
  355. default: false
  356. - variable: dataset_name
  357. label: Dataset Name
  358. description: The name of the dataset to use for storage.
  359. schema:
  360. type: string
  361. required: true
  362. hidden: true
  363. default: "postgres_data"
  364. - variable: acl_entries
  365. label: ACL Configuration
  366. schema:
  367. type: dict
  368. show_if: [["acl_enable", "=", true]]
  369. attrs: []
  370. - variable: host_path_config
  371. label: Host Path Configuration
  372. schema:
  373. type: dict
  374. show_if: [["type", "=", "host_path"]]
  375. attrs:
  376. - variable: acl_enable
  377. label: Enable ACL
  378. description: Enable ACL for the storage.
  379. schema:
  380. type: boolean
  381. default: false
  382. - variable: acl
  383. label: ACL Configuration
  384. schema:
  385. type: dict
  386. show_if: [["acl_enable", "=", true]]
  387. attrs: []
  388. $ref:
  389. - "normalize/acl"
  390. - variable: path
  391. label: Host Path
  392. description: The host path to use for storage.
  393. schema:
  394. type: hostpath
  395. show_if: [["acl_enable", "=", false]]
  396. required: true
  397. - variable: auto_permissions
  398. label: Automatic Permissions
  399. description: |
  400. Automatically set permissions for the host path.
  401. Enabling this, will check the top level directory,</br>
  402. If it finds incorrect permissions, it will `chown` the
  403. host path to the user and group required for the
  404. postgres container.
  405. schema:
  406. type: boolean
  407. default: false
  408. show_if: [["acl_enable", "=", false]]
  409. - variable: additional_storage
  410. label: Additional Storage
  411. schema:
  412. type: list
  413. default: []
  414. items:
  415. - variable: storageEntry
  416. label: Storage Entry
  417. schema:
  418. type: dict
  419. attrs:
  420. - variable: type
  421. label: Type
  422. description: |
  423. ixVolume: Is dataset created automatically by the system.</br>
  424. Host Path: Is a path that already exists on the system.</br>
  425. SMB Share: Is a SMB share that is mounted to as a volume.
  426. schema:
  427. type: string
  428. required: true
  429. default: "ix_volume"
  430. enum:
  431. - value: "host_path"
  432. description: Host Path (Path that already exists on the system)
  433. - value: "ix_volume"
  434. description: ixVolume (Dataset created automatically by the system)
  435. - value: "cifs"
  436. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  437. - variable: read_only
  438. label: Read Only
  439. description: Mount the volume as read only.
  440. schema:
  441. type: boolean
  442. default: false
  443. - variable: mount_path
  444. label: Mount Path
  445. description: The path inside the container to mount the storage.
  446. schema:
  447. type: path
  448. required: true
  449. - variable: host_path_config
  450. label: Host Path Configuration
  451. schema:
  452. type: dict
  453. show_if: [["type", "=", "host_path"]]
  454. attrs:
  455. - variable: acl_enable
  456. label: Enable ACL
  457. description: Enable ACL for the storage.
  458. schema:
  459. type: boolean
  460. default: false
  461. - variable: acl
  462. label: ACL Configuration
  463. schema:
  464. type: dict
  465. show_if: [["acl_enable", "=", true]]
  466. attrs: []
  467. $ref:
  468. - "normalize/acl"
  469. - variable: path
  470. label: Host Path
  471. description: The host path to use for storage.
  472. schema:
  473. type: hostpath
  474. show_if: [["acl_enable", "=", false]]
  475. required: true
  476. - variable: ix_volume_config
  477. label: ixVolume Configuration
  478. description: The configuration for the ixVolume dataset.
  479. schema:
  480. type: dict
  481. show_if: [["type", "=", "ix_volume"]]
  482. $ref:
  483. - "normalize/ix_volume"
  484. attrs:
  485. - variable: acl_enable
  486. label: Enable ACL
  487. description: Enable ACL for the storage.
  488. schema:
  489. type: boolean
  490. default: false
  491. - variable: dataset_name
  492. label: Dataset Name
  493. description: The name of the dataset to use for storage.
  494. schema:
  495. type: string
  496. required: true
  497. default: "storage_entry"
  498. - variable: acl_entries
  499. label: ACL Configuration
  500. schema:
  501. type: dict
  502. show_if: [["acl_enable", "=", true]]
  503. attrs: []
  504. $ref:
  505. - "normalize/acl"
  506. - variable: cifs_config
  507. label: SMB Configuration
  508. description: The configuration for the SMB dataset.
  509. schema:
  510. type: dict
  511. show_if: [["type", "=", "cifs"]]
  512. attrs:
  513. - variable: server
  514. label: Server
  515. description: The server to mount the SMB share.
  516. schema:
  517. type: string
  518. required: true
  519. - variable: path
  520. label: Path
  521. description: The path to mount the SMB share.
  522. schema:
  523. type: string
  524. required: true
  525. - variable: username
  526. label: Username
  527. description: The username to use for the SMB share.
  528. schema:
  529. type: string
  530. required: true
  531. - variable: password
  532. label: Password
  533. description: The password to use for the SMB share.
  534. schema:
  535. type: string
  536. required: true
  537. private: true
  538. - variable: domain
  539. label: Domain
  540. description: The domain to use for the SMB share.
  541. schema:
  542. type: string
  543. - variable: labels
  544. label: ""
  545. group: Labels Configuration
  546. schema:
  547. type: list
  548. default: []
  549. items:
  550. - variable: label
  551. label: Label
  552. schema:
  553. type: dict
  554. attrs:
  555. - variable: key
  556. label: Key
  557. schema:
  558. type: string
  559. required: true
  560. - variable: value
  561. label: Value
  562. schema:
  563. type: string
  564. required: true
  565. - variable: containers
  566. label: Containers
  567. description: Containers where the label should be applied
  568. schema:
  569. type: list
  570. items:
  571. - variable: container
  572. label: Container
  573. schema:
  574. type: string
  575. required: true
  576. enum:
  577. - value: linkding
  578. description: linkding
  579. - value: postgres
  580. description: postgres
  581. - variable: resources
  582. label: ""
  583. group: Resources Configuration
  584. schema:
  585. type: dict
  586. attrs:
  587. - variable: limits
  588. label: Limits
  589. schema:
  590. type: dict
  591. attrs:
  592. - variable: cpus
  593. label: CPUs
  594. description: CPUs limit for Linkding.
  595. schema:
  596. type: int
  597. default: 2
  598. required: true
  599. - variable: memory
  600. label: Memory (in MB)
  601. description: Memory limit for Linkding.
  602. schema:
  603. type: int
  604. default: 4096
  605. required: true