template.yaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. ---
  2. kind: compose
  3. schema: "1.2"
  4. metadata:
  5. name: Passbolt
  6. description: |-
  7. Passbolt is an open-source password manager designed for teams and businesses. It provides a secure way to store, share, and manage passwords and sensitive
  8. information collaboratively.
  9. ## Prerequisites
  10. * **Project:** https://www.passbolt.com/
  11. * **Documentation:** https://help.passbolt.com/
  12. * **GitHub:** https://github.com/passbolt/passbolt
  13. version: 11.3
  14. author: Christian Lempa
  15. date: '2025-09-28'
  16. tags:
  17. - traefik
  18. - database
  19. spec:
  20. general:
  21. vars:
  22. service_name:
  23. default: "passbolt"
  24. container_name:
  25. default: "passbolt"
  26. container_timezone:
  27. default: "UTC"
  28. ports:
  29. vars:
  30. ports_http:
  31. description: HTTP port for Passbolt
  32. type: int
  33. default: 80
  34. ports_https:
  35. description: HTTPS port for Passbolt
  36. type: int
  37. default: 443
  38. traefik:
  39. vars:
  40. traefik_enabled:
  41. type: bool
  42. default: false
  43. traefik_network:
  44. default: "traefik"
  45. traefik_host:
  46. default: "passbolt"
  47. traefik_domain:
  48. default: "home.arpa"
  49. traefik_entrypoint:
  50. default: "web"
  51. traefik_tls_entrypoint:
  52. default: "websecure"
  53. traefik_tls_enabled:
  54. type: bool
  55. default: true
  56. traefik_tls_certresolver:
  57. default: "cloudflare"
  58. database:
  59. vars:
  60. database_type:
  61. options: ["sqlite", "postgres", "mysql"]
  62. default: "mysql"
  63. database_external:
  64. description: Use an external database server?
  65. extra: skips creation of internal database container
  66. type: bool
  67. needs: "database_type=mysql,postgres"
  68. default: false
  69. database_host:
  70. description: Database host
  71. type: str
  72. needs: "database_external=true"
  73. default: "passbolt-db"
  74. required: true
  75. database_port:
  76. description: Database port
  77. type: int
  78. required: true
  79. database_name:
  80. description: Database name
  81. type: str
  82. required: true
  83. database_user:
  84. description: Database user
  85. type: str
  86. required: true
  87. database_password:
  88. description: Database password
  89. type: str
  90. sensitive: true
  91. required: true
  92. volume:
  93. vars:
  94. volume_mode:
  95. type: enum
  96. options: ["local", "mount", "nfs"]
  97. default: "local"
  98. volume_mount_path:
  99. description: Host path for bind mounts
  100. type: str
  101. default: "/mnt/storage"
  102. needs: "volume_mode=mount"
  103. required: true
  104. volume_nfs_server:
  105. description: NFS server address
  106. type: str
  107. default: "192.168.1.1"
  108. needs: "volume_mode=nfs"
  109. required: true
  110. volume_nfs_path:
  111. description: NFS export path
  112. type: str
  113. default: "/export"
  114. needs: "volume_mode=nfs"
  115. required: true
  116. volume_nfs_options:
  117. description: NFS mount options (comma-separated)
  118. type: str
  119. default: "rw,nolock,soft"
  120. needs: "volume_mode=nfs"
  121. required: true
  122. resources:
  123. vars:
  124. resources_enabled:
  125. type: bool
  126. default: false
  127. resources_cpu_limit:
  128. description: Maximum CPU cores (e.g., 0.5, 1.0, 2.0)
  129. type: str
  130. default: "1.0"
  131. required: true
  132. resources_memory_limit:
  133. description: Maximum memory (e.g., 512M, 1G, 2G)
  134. type: str
  135. default: "1G"
  136. required: true