questions.yaml 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. groups:
  2. - name: Bitcoin Node Configuration
  3. description: Configure Bitcoin Node
  4. - name: Network Configuration
  5. description: Configure Network for Bitcoin Node
  6. - name: Storage Configuration
  7. description: Configure Storage for Bitcoin Node
  8. - name: Labels Configuration
  9. description: Configure Labels for Bitcoin Node
  10. - name: Resources Configuration
  11. description: Configure Resources for Bitcoin Node
  12. questions:
  13. - variable: TZ
  14. label: Timezone
  15. group: Bitcoin Node Configuration
  16. schema:
  17. type: string
  18. default: Etc/UTC
  19. required: true
  20. $ref:
  21. - definitions/timezone
  22. - variable: bitcoin
  23. label: ""
  24. group: Bitcoin Node Configuration
  25. schema:
  26. type: dict
  27. attrs:
  28. - variable: rpc_user
  29. label: RPC User
  30. description: The username for RPC auth.
  31. schema:
  32. type: string
  33. required: true
  34. default: truenas
  35. - variable: rpc_password
  36. label: RPC Password
  37. description: The password for RPC auth.
  38. schema:
  39. type: string
  40. required: true
  41. private: true
  42. - variable: rpc_work_queue_size
  43. label: RPC Work Queue Size
  44. description: |
  45. Set the maximum number of queued Remote Procedure Call (RPC) requests your node can
  46. handle (e.g., from connected wallets or other apps), helping you strike a balance
  47. between performance and resource usage. Higher values can improve processing speed at
  48. the cost of increased system resources.
  49. schema:
  50. type: int
  51. required: true
  52. default: 128
  53. min: 0
  54. - variable: clearnet_outgoing_enabled
  55. label: Clearnet Outgoing Connections
  56. description: Connect to peers available on the clearnet (publicly accessible internet).
  57. schema:
  58. type: boolean
  59. default: true
  60. - variable: clearnet_incoming_enabled
  61. label: Clearnet Incoming Connections
  62. description: |
  63. Broadcast your node to the Bitcoin network to help other clearnet nodes access the
  64. blockchain. You may need to set up port forwarding on your router.
  65. schema:
  66. type: boolean
  67. default: false
  68. - variable: tor_outgoing_enabled
  69. label: Tor Outgoing Connections
  70. description: Connect to peers available on the Tor network.
  71. schema:
  72. type: boolean
  73. default: false
  74. - variable: clearnet_outgoing_via_tor_enabled
  75. label: Route Clearnet Outgoing Connections Via Tor
  76. description: |
  77. Connect to peers available on the clearnet via Tor to preserve your anonymity at the
  78. cost of slightly less security.
  79. schema:
  80. type: boolean
  81. default: false
  82. - variable: tor_incoming_enabled
  83. label: Tor Incoming Connections
  84. description: |
  85. Broadcast your node to the Bitcoin network to help other Tor nodes access the
  86. blockchain.
  87. schema:
  88. type: boolean
  89. default: false
  90. - variable: tor_incoming_address
  91. label: Incoming Onion Address
  92. description: Enter the local IP of this machine if you are running the Arti TrueNAS App.
  93. schema:
  94. type: string
  95. required: true
  96. valid_chars: "^[a-zA-Z0-9]+\\.onion$"
  97. valid_chars_error: Invalid onion address.
  98. show_if: [["tor_incoming_enabled", "=", true]]
  99. - variable: tor_ip
  100. label: Tor IP
  101. description: |
  102. Enter the local IP of this machine if you are running the Arti TrueNAS App.</br>
  103. Required if any of the following is enabled:
  104. - Tor Outgoing Connections
  105. - Tor Incoming Connections
  106. - Clearnet Outgoing Connections via Tor
  107. schema:
  108. type: ipaddr
  109. - variable: tor_port
  110. label: Tor port
  111. description: |
  112. Required if any of the following is enabled:
  113. - Tor Outgoing Connections
  114. - Tor Incoming Connections
  115. - Clearnet Outgoing Connections via Tor
  116. schema:
  117. type: int
  118. min: 1
  119. max: 65535
  120. - variable: i2p_outgoing_enabled
  121. label: I2P Outgoing Connections
  122. description: Connect to peers available on the I2P network.
  123. schema:
  124. type: boolean
  125. default: false
  126. - variable: i2p_incoming_enabled
  127. label: I2P Incoming Connections
  128. description: |
  129. Broadcast your node to the Bitcoin network to help other I2P nodes access the
  130. blockchain. Your I2P router has to have SAM bridge enabled.
  131. schema:
  132. type: boolean
  133. default: false
  134. - variable: i2p_ip
  135. label: I2P IP
  136. description: |
  137. Enter the local IP of this machine if you are running the Arti TrueNAS App.</br>
  138. Required if any of the following is enabled:
  139. - I2P Outgoing Connections
  140. - I2P Incoming Connections
  141. schema:
  142. type: ipaddr
  143. - variable: i2p_port
  144. label: I2P SAM port
  145. description: |
  146. Required if any of the following is enabled:
  147. - I2P Outgoing Connections
  148. - I2P Incoming Connections
  149. schema:
  150. type: int
  151. min: 1
  152. max: 65535
  153. - variable: public_rest_api_enabled
  154. label: Public REST API
  155. description: |
  156. Enabling the public REST API can help you connect certain wallets and apps to your node.
  157. However, because the REST API access is unauthenticated, it can lead to unauthorized
  158. access, privacy degradation, and denial-of-service (DoS) attacks.
  159. schema:
  160. type: boolean
  161. default: false
  162. - variable: peer_block_filters_enabled
  163. label: Peer Block Filters
  164. description: |
  165. Share compact block filter data with connected light clients (like wallets) connected
  166. to your node, allowing them to get only the transaction information they are interested
  167. in from your node without having to download the entire blockchain.</br>
  168. Note: If you disable Peer Block Filters, you will need to also manually toggle off
  169. Block Filter Index if you want to stop storing block filter data.
  170. schema:
  171. type: boolean
  172. default: true
  173. - variable: block_filter_index_enabled
  174. label: Block Filter Index
  175. description: |
  176. Store an index of compact block filters which allows faster wallet re-scanning. In
  177. order to serve compact block filters to peers, you must also enable Peer Block Filters
  178. above.</br>
  179. Note: To use 'Block Filter Index' with a pruned node, you must enable it when you start
  180. the 'Prune Old Blocks' process under the Optimization category. If your node is already
  181. pruned and 'Block Filter Index' is off, enabling it will prevent your node from
  182. starting. To fix this while keeping 'Block Filter Index' on, you will need to either
  183. reindex your node or turn off 'Prune Old Blocks'.
  184. schema:
  185. type: boolean
  186. default: true
  187. - variable: peer_bloom_filters_enabled
  188. label: Peer Bloom Filters
  189. description: |
  190. Enable support for BIP37, a feature used by older light clients (like wallets) to get
  191. only the transaction information they are interested in from your node without having
  192. to download the entire blockchain.</br>
  193. Note: Bloom filters can have privacy and denial-of-service (DoS) risks, especially if
  194. your node is publicly reachable; its use is discouraged in favour of the more modern
  195. compact block filters.
  196. schema:
  197. type: boolean
  198. default: true
  199. - variable: peer_ban_time
  200. label: Peer Ban Time (seconds)
  201. description: |
  202. Set the duration (in seconds) that a peer will be banned from connecting to your node
  203. if they violate protocol rules or exhibit suspicious behavior. By adjusting ban time,
  204. you can maintain your node's security and network integrity, while preventing repeat
  205. offenders from causing disruptions. A longer ban time increases the ban period,
  206. discouraging misbehavior, while a shorter ban time allows for quicker re-connections but
  207. may require more frequent manual monitoring of peer activity.
  208. schema:
  209. type: int
  210. required: true
  211. default: 86400
  212. min: 0
  213. - variable: max_peer_connections
  214. label: Max Peer Connections
  215. description: |
  216. Set the maximum number of peers your node can connect to simultaneously. By managing
  217. this, you can optimize your node's network usage and system resources based on your
  218. device's capacity. A higher value enables your node to maintain more connections,
  219. potentially improving network stability and data sharing. A lower value conserves
  220. system resources and bandwidth, which may be beneficial for devices with limited
  221. capabilities.
  222. schema:
  223. type: int
  224. required: true
  225. default: 125
  226. min: 0
  227. - variable: max_receive_buffer
  228. label: Max Receive Buffer (KB)
  229. description: |
  230. Set the maximum amount of memory (in kilobytes) allocated for storing incoming data from
  231. other nodes in the network. A larger buffer size allows your node to handle more
  232. incoming data simultaneously, while a smaller size reduces memory consumption but may
  233. limit the amount of data your node can process at once.
  234. schema:
  235. type: int
  236. required: true
  237. default: 5000
  238. min: 0
  239. - variable: max_send_buffer
  240. label: Max Send Buffer (KB)
  241. description: |
  242. Set the maximum memory (in kilobytes) dedicated to storing outgoing data sent to other
  243. nodes in the network. A larger buffer size enables your node to send more data
  244. simultaneously, while a smaller size conserves memory but may restrict the volume of
  245. data your node can transmit at once.
  246. schema:
  247. type: int
  248. required: true
  249. default: 1000
  250. min: 0
  251. - variable: peer_timeout
  252. label: Peer Timeout (seconds)
  253. description: |
  254. Set the maximum time (in seconds) that your node will wait for a response from a
  255. connected peer before considering it unresponsive and disconnecting. Adjusting
  256. peer timeout helps you maintain stable connections with responsive peers while ensuring
  257. your node doesn't waste resources on unresponsive ones. A shorter timeout value allows
  258. for quicker disconnection from unresponsive peers, while a longer timeout provides more
  259. time for slow-responding peers to maintain a connection.
  260. schema:
  261. type: int
  262. required: true
  263. default: 60
  264. min: 0
  265. - variable: connection_timeout
  266. label: Connection Timeout (milliseconds)
  267. description: |
  268. Set the maximum time (in milliseconds) that your node will wait for a response from a
  269. newly connecting peer during the initial handshake process before considering it
  270. unresponsive and disconnecting. Fine-tuning it helps you ensure your node establishes
  271. stable connections with responsive peers while avoiding unresponsive ones. A shorter
  272. timeout value leads to faster disconnection from unresponsive peers, while a longer
  273. timeout allows more time for slow-responding peers to complete the handshake.
  274. schema:
  275. type: int
  276. required: true
  277. default: 5000
  278. min: 0
  279. - variable: max_upload_target
  280. label: Max Upload Target (MB/24h)
  281. description: |
  282. Limit the maximum amount of data (in MB) your node will upload to other peers in the
  283. network within a 24-hour period. Setting this to 0 (default) means that there is no
  284. limit. By adjusting it, you can optimize your node's bandwidth usage and maintain a
  285. balance between sharing data with the network and conserving your internet resources.
  286. A higher upload target allows your node to contribute more data to the network, while a
  287. lower target helps you save bandwidth for other uses.
  288. schema:
  289. type: int
  290. required: true
  291. default: 0
  292. min: 0
  293. - variable: cache_size
  294. label: Cache Size (MB)
  295. description: |
  296. Choose the size of the UTXO set to store in RAM. A larger cache can speed up the initial
  297. synchronization of your Bitcoin node, but after the initial sync is complete, a larger
  298. cache value does not significantly improve performance and may use more RAM than needed.
  299. schema:
  300. type: int
  301. required: true
  302. default: 300
  303. min: 1
  304. - variable: prune_size
  305. label: Prune Old Blocks (GB)
  306. description: |
  307. Save storage space by pruning (deleting) old blocks and keeping only a limited copy of
  308. the blockchain. It may take some time for your node to be online after you turn on
  309. pruning. If you turn off pruning after turning it on, you'll need to download the entire
  310. blockchain.<br />
  311. Note: A value of 0 disables pruning.
  312. schema:
  313. type: int
  314. required: true
  315. default: 0
  316. min: 0
  317. - variable: op_return_txs_relay_enabled
  318. label: Relay Transactions Containing Arbitrary Data
  319. description: Relay transactions with OP_RETURN outputs.
  320. schema:
  321. type: boolean
  322. default: true
  323. - variable: max_op_return_size
  324. label: Max Allowed Size of Arbitrary Data in Transactions (bytes)
  325. description: Set the maximum size of the data in OP_RETURN outputs that your node will relay.
  326. schema:
  327. type: int
  328. required: true
  329. default: 83
  330. min: 1
  331. show_if: [["op_return_txs_relay_enabled", "=", true]]
  332. - variable: bare_multisig_txs_relay_enabled
  333. label: Relay Bare Multisig Transactions
  334. description: Relay non-P2SH multisig transactions.
  335. schema:
  336. type: boolean
  337. default: true
  338. - variable: max_mempool_size
  339. label: Maximum Mempool Size (MB)
  340. description: |
  341. Set the maximum size that your node will allocate (in RAM) for storing unconfirmed
  342. transactions before they are included in a block. By adjusting maxmempool, you can
  343. optimize your node's performance and balance memory usage based on your device's
  344. capabilities. A larger maxmempool allows your node to store more unconfirmed
  345. transactions, providing more accurate statistics on explorer apps like Mempool.
  346. schema:
  347. type: int
  348. required: true
  349. default: 1024
  350. min: 1
  351. - variable: mempool_expiry
  352. label: Mempool Expiration (hours)
  353. description: |
  354. Set the time threshold for unconfirmed transactions to remain in your node's mempool
  355. before being removed. By adjusting it, you can manage your node's memory usage and
  356. ensure outdated, unconfirmed transactions are discarded. A shorter expiry time helps
  357. keep your mempool up-to-date and reduces memory usage, while a longer expiry time allows
  358. transactions to remain in the pool for an extended period in case of network congestion
  359. or delayed confirmations.
  360. schema:
  361. type: int
  362. required: true
  363. default: 336
  364. min: 0
  365. - variable: mempool_persist_enabled
  366. label: Persist Mempool
  367. description: |
  368. Saves unconfirmed transactions in your node's mempool when it's shutting down and
  369. reloads them upon startup. Enabling this setting helps maintain a consistent mempool and
  370. prevents the loss of unconfirmed transactions during a restart. Disabling this setting
  371. will clear the mempool upon restart, which may reduce startup time but requires your
  372. node to rebuild its mempool from scratch.
  373. schema:
  374. type: boolean
  375. default: true
  376. - variable: max_orphan_txs
  377. label: Max Orphan Transactions
  378. description: |
  379. Set the maximum number of orphan transactions (transactions missing one or more of their
  380. inputs) that your node will keep in memory. By fine-tuning it, you can optimize your
  381. node's memory usage and manage its performance based on your device's capabilities. A
  382. larger limit allows your node to store more orphan transactions, potentially increasing
  383. the chances of finding missing inputs. A smaller limit conserves memory but will result
  384. in your node evicting some orphan transactions from memory when the limit is reached.
  385. schema:
  386. type: int
  387. required: true
  388. default: 100
  389. min: 0
  390. - variable: additional_flags
  391. label: Additional flags
  392. description: |
  393. Additional bitcoind commands can be provided here.
  394. If you are unsure, leave this blank.
  395. schema:
  396. type: list
  397. items:
  398. - variable: flag
  399. label: Flag
  400. schema:
  401. type: string
  402. required: true
  403. - variable: network
  404. label: ""
  405. group: Network Configuration
  406. schema:
  407. type: dict
  408. attrs:
  409. - variable: rpc_port
  410. label: RPC Port
  411. description: This is the RPC port which is useful for other apps like Electrs to communicate with.
  412. schema:
  413. type: dict
  414. attrs:
  415. - variable: bind_mode
  416. label: Port Bind Mode
  417. description: |
  418. The port bind mode.</br>
  419. - Publish: The port will be published on the host for external access.</br>
  420. - Expose: The port will be exposed for inter-container communication.</br>
  421. - None: The port will not be exposed or published.</br>
  422. Note: If the Dockerfile defines an EXPOSE directive,
  423. the port will still be exposed for inter-container communication regardless of this setting.
  424. schema:
  425. type: string
  426. default: "published"
  427. enum:
  428. - value: "published"
  429. description: Publish port on the host for external access
  430. - value: "exposed"
  431. description: Expose port for inter-container communication
  432. - value: ""
  433. description: None
  434. - variable: port_number
  435. label: Port Number
  436. schema:
  437. type: int
  438. default: 8332
  439. min: 1
  440. max: 65535
  441. required: true
  442. - variable: host_ips
  443. label: Host IPs
  444. description: IPs on the host to bind this port
  445. schema:
  446. type: list
  447. show_if: [["bind_mode", "=", "published"]]
  448. default: []
  449. items:
  450. - variable: host_ip
  451. label: Host IP
  452. schema:
  453. type: string
  454. required: true
  455. $ref:
  456. - definitions/node_bind_ip
  457. - variable: p2p_clearnet_port
  458. label: P2P Clearnet Port
  459. description: |
  460. The port used for your node to communicate blockchain data with other clearnet nodes.
  461. This should be published for external access in most scenarios.
  462. schema:
  463. type: dict
  464. attrs:
  465. - variable: bind_mode
  466. label: Port Bind Mode
  467. description: |
  468. The port bind mode.</br>
  469. - Publish: The port will be published on the host for external access.</br>
  470. - Expose: The port will be exposed for inter-container communication.</br>
  471. - None: The port will not be exposed or published.</br>
  472. Note: If the Dockerfile defines an EXPOSE directive,
  473. the port will still be exposed for inter-container communication regardless of this setting.
  474. schema:
  475. type: string
  476. default: "published"
  477. enum:
  478. - value: "published"
  479. description: Publish port on the host for external access
  480. - value: "exposed"
  481. description: Expose port for inter-container communication
  482. - value: ""
  483. description: None
  484. - variable: port_number
  485. label: Port Number
  486. schema:
  487. type: int
  488. default: 8333
  489. min: 1
  490. max: 65535
  491. required: true
  492. - variable: host_ips
  493. label: Host IPs
  494. description: IPs on the host to bind this port
  495. schema:
  496. type: list
  497. show_if: [["bind_mode", "=", "published"]]
  498. default: []
  499. items:
  500. - variable: host_ip
  501. label: Host IP
  502. schema:
  503. type: string
  504. required: true
  505. $ref:
  506. - definitions/node_bind_ip
  507. - variable: p2p_tor_port
  508. label: P2P Tor Port
  509. description: |
  510. The port used for your node to communicate blockchain data with other Tor nodes.
  511. This should be published for external access in most scenarios.
  512. schema:
  513. type: dict
  514. attrs:
  515. - variable: bind_mode
  516. label: Port Bind Mode
  517. description: |
  518. The port bind mode.</br>
  519. - Publish: The port will be published on the host for external access.</br>
  520. - Expose: The port will be exposed for inter-container communication.</br>
  521. - None: The port will not be exposed or published.</br>
  522. Note: If the Dockerfile defines an EXPOSE directive,
  523. the port will still be exposed for inter-container communication regardless of this setting.
  524. schema:
  525. type: string
  526. default: ""
  527. enum:
  528. - value: "published"
  529. description: Publish port on the host for external access
  530. - value: "exposed"
  531. description: Expose port for inter-container communication
  532. - value: ""
  533. description: None
  534. - variable: port_number
  535. label: Port Number
  536. schema:
  537. type: int
  538. default: 8334
  539. min: 1
  540. max: 65535
  541. required: true
  542. - variable: host_ips
  543. label: Host IPs
  544. description: IPs on the host to bind this port
  545. schema:
  546. type: list
  547. show_if: [["bind_mode", "=", "published"]]
  548. default: []
  549. items:
  550. - variable: host_ip
  551. label: Host IP
  552. schema:
  553. type: string
  554. required: true
  555. $ref:
  556. - definitions/node_bind_ip
  557. - variable: storage
  558. label: ""
  559. group: Storage Configuration
  560. schema:
  561. type: dict
  562. attrs:
  563. - variable: bitcoin
  564. label: Bitcoin Storage Location
  565. description: |
  566. Use SSDs for reasonable performance.
  567. You will have a very bad time trying to sync a Bitcoin node on HDDs.</br>
  568. We recommend at least 800GB of free space if pruning is disabled.
  569. schema:
  570. type: dict
  571. attrs:
  572. - variable: type
  573. label: Type
  574. description: |
  575. ixVolume: Is dataset created automatically by the system.</br>
  576. Host Path: Is a path that already exists on the system.
  577. schema:
  578. type: string
  579. required: true
  580. default: "ix_volume"
  581. enum:
  582. - value: "host_path"
  583. description: Host Path (Path that already exists on the system)
  584. - value: "ix_volume"
  585. description: ixVolume (Dataset created automatically by the system)
  586. - variable: ix_volume_config
  587. label: ixVolume Configuration
  588. description: The configuration for the ixVolume dataset.
  589. schema:
  590. type: dict
  591. show_if: [["type", "=", "ix_volume"]]
  592. $ref:
  593. - "normalize/ix_volume"
  594. attrs:
  595. - variable: acl_enable
  596. label: Enable ACL
  597. description: Enable ACL for the storage.
  598. schema:
  599. type: boolean
  600. default: false
  601. - variable: dataset_name
  602. label: Dataset Name
  603. description: The name of the dataset to use for storage.
  604. schema:
  605. type: string
  606. required: true
  607. hidden: true
  608. default: "bitcoin"
  609. - variable: acl_entries
  610. label: ACL Configuration
  611. schema:
  612. type: dict
  613. show_if: [["acl_enable", "=", true]]
  614. attrs: []
  615. - variable: host_path_config
  616. label: Host Path Configuration
  617. schema:
  618. type: dict
  619. show_if: [["type", "=", "host_path"]]
  620. attrs:
  621. - variable: acl_enable
  622. label: Enable ACL
  623. description: Enable ACL for the storage.
  624. schema:
  625. type: boolean
  626. default: false
  627. - variable: acl
  628. label: ACL Configuration
  629. schema:
  630. type: dict
  631. show_if: [["acl_enable", "=", true]]
  632. attrs: []
  633. $ref:
  634. - "normalize/acl"
  635. - variable: path
  636. label: Host Path
  637. description: The host path to use for storage.
  638. schema:
  639. type: hostpath
  640. show_if: [["acl_enable", "=", false]]
  641. required: true
  642. - variable: additional_storage
  643. label: Additional Storage
  644. schema:
  645. type: list
  646. default: []
  647. items:
  648. - variable: storageEntry
  649. label: Storage Entry
  650. schema:
  651. type: dict
  652. attrs:
  653. - variable: type
  654. label: Type
  655. description: |
  656. ixVolume: Is dataset created automatically by the system.</br>
  657. Host Path: Is a path that already exists on the system.</br>
  658. SMB Share: Is a SMB share that is mounted to as a volume.
  659. schema:
  660. type: string
  661. required: true
  662. default: "ix_volume"
  663. enum:
  664. - value: "host_path"
  665. description: Host Path (Path that already exists on the system)
  666. - value: "ix_volume"
  667. description: ixVolume (Dataset created automatically by the system)
  668. - value: "cifs"
  669. description: SMB/CIFS Share (Mounts a volume to a SMB share)
  670. - variable: read_only
  671. label: Read Only
  672. description: Mount the volume as read only.
  673. schema:
  674. type: boolean
  675. default: false
  676. - variable: mount_path
  677. label: Mount Path
  678. description: The path inside the container to mount the storage.
  679. schema:
  680. type: path
  681. required: true
  682. - variable: host_path_config
  683. label: Host Path Configuration
  684. schema:
  685. type: dict
  686. show_if: [["type", "=", "host_path"]]
  687. attrs:
  688. - variable: acl_enable
  689. label: Enable ACL
  690. description: Enable ACL for the storage.
  691. schema:
  692. type: boolean
  693. default: false
  694. - variable: acl
  695. label: ACL Configuration
  696. schema:
  697. type: dict
  698. show_if: [["acl_enable", "=", true]]
  699. attrs: []
  700. $ref:
  701. - "normalize/acl"
  702. - variable: path
  703. label: Host Path
  704. description: The host path to use for storage.
  705. schema:
  706. type: hostpath
  707. show_if: [["acl_enable", "=", false]]
  708. required: true
  709. - variable: ix_volume_config
  710. label: ixVolume Configuration
  711. description: The configuration for the ixVolume dataset.
  712. schema:
  713. type: dict
  714. show_if: [["type", "=", "ix_volume"]]
  715. $ref:
  716. - "normalize/ix_volume"
  717. attrs:
  718. - variable: acl_enable
  719. label: Enable ACL
  720. description: Enable ACL for the storage.
  721. schema:
  722. type: boolean
  723. default: false
  724. - variable: dataset_name
  725. label: Dataset Name
  726. description: The name of the dataset to use for storage.
  727. schema:
  728. type: string
  729. required: true
  730. default: "storage_entry"
  731. - variable: acl_entries
  732. label: ACL Configuration
  733. schema:
  734. type: dict
  735. show_if: [["acl_enable", "=", true]]
  736. attrs: []
  737. $ref:
  738. - "normalize/acl"
  739. - variable: cifs_config
  740. label: SMB Configuration
  741. description: The configuration for the SMB dataset.
  742. schema:
  743. type: dict
  744. show_if: [["type", "=", "cifs"]]
  745. attrs:
  746. - variable: server
  747. label: Server
  748. description: The server to mount the SMB share.
  749. schema:
  750. type: string
  751. required: true
  752. - variable: path
  753. label: Path
  754. description: The path to mount the SMB share.
  755. schema:
  756. type: string
  757. required: true
  758. - variable: username
  759. label: Username
  760. description: The username to use for the SMB share.
  761. schema:
  762. type: string
  763. required: true
  764. - variable: password
  765. label: Password
  766. description: The password to use for the SMB share.
  767. schema:
  768. type: string
  769. required: true
  770. private: true
  771. - variable: domain
  772. label: Domain
  773. description: The domain to use for the SMB share.
  774. schema:
  775. type: string
  776. - variable: labels
  777. label: ""
  778. group: Labels Configuration
  779. schema:
  780. type: list
  781. default: []
  782. items:
  783. - variable: label
  784. label: Label
  785. schema:
  786. type: dict
  787. attrs:
  788. - variable: key
  789. label: Key
  790. schema:
  791. type: string
  792. required: true
  793. - variable: value
  794. label: Value
  795. schema:
  796. type: string
  797. required: true
  798. - variable: containers
  799. label: Containers
  800. description: Containers where the label should be applied
  801. schema:
  802. type: list
  803. items:
  804. - variable: container
  805. label: Container
  806. schema:
  807. type: string
  808. required: true
  809. enum:
  810. - value: bitcoind
  811. description: bitcoind
  812. - variable: resources
  813. label: ""
  814. group: Resources Configuration
  815. schema:
  816. type: dict
  817. attrs:
  818. - variable: limits
  819. label: Limits
  820. schema:
  821. type: dict
  822. attrs:
  823. - variable: cpus
  824. label: CPUs
  825. description: CPUs limit for Bitcoin Node.
  826. schema:
  827. type: int
  828. default: 2
  829. required: true
  830. - variable: memory
  831. label: Memory (in MB)
  832. description: Memory limit for Bitcoin Node.
  833. schema:
  834. type: int
  835. default: 4096
  836. required: true