@simplehomelab/deployrr 6.0.0-rc3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/announcement +1 -0
  2. package/apps/community/CONTRIBUTING.md +660 -0
  3. package/apps/community/apps.json +6 -0
  4. package/apps/core/apps.json +16 -0
  5. package/apps/core/authelia/authelia-redis.yml +24 -0
  6. package/apps/core/authelia/compose.yml +45 -0
  7. package/apps/core/authelia/files/chain-authelia.yml +8 -0
  8. package/apps/core/authelia/files/configuration.yml +100 -0
  9. package/apps/core/authelia/files/middlewares-authelia.yml +9 -0
  10. package/apps/core/authelia/files/users.yml +15 -0
  11. package/apps/core/authelia/manifest.json +156 -0
  12. package/apps/core/authentik/authentik-postgresql.yml +26 -0
  13. package/apps/core/authentik/authentik-worker.yml +37 -0
  14. package/apps/core/authentik/compose.yml +51 -0
  15. package/apps/core/authentik/files/chain-authentik.yml +8 -0
  16. package/apps/core/authentik/files/middlewares-authentik.yml +19 -0
  17. package/apps/core/authentik/manifest.json +117 -0
  18. package/apps/core/crowdsec/compose.yml +23 -0
  19. package/apps/core/crowdsec/files/acquis-traefik.yaml +4 -0
  20. package/apps/core/crowdsec/files/acquis.yaml +8 -0
  21. package/apps/core/crowdsec/files/crowdsec-firewall-bouncer.yaml +46 -0
  22. package/apps/core/crowdsec/files/custom-whitelists.yaml +13 -0
  23. package/apps/core/crowdsec/manifest.json +87 -0
  24. package/apps/core/crowdsec-firewall-bouncer/manifest.json +85 -0
  25. package/apps/core/deployrr/jokes_and_tips.txt +58 -0
  26. package/apps/core/deployrr-dashboard/compose.yml +23 -0
  27. package/apps/core/deployrr-dashboard/files/bookmarks.yaml +51 -0
  28. package/apps/core/deployrr-dashboard/files/deployrr_icon.ico +0 -0
  29. package/apps/core/deployrr-dashboard/files/deployrr_icon.png +0 -0
  30. package/apps/core/deployrr-dashboard/files/docker.yaml +10 -0
  31. package/apps/core/deployrr-dashboard/files/service-template-other.yaml +10 -0
  32. package/apps/core/deployrr-dashboard/files/service-template-web-local.yaml +10 -0
  33. package/apps/core/deployrr-dashboard/files/service-template-web-remote.yaml +10 -0
  34. package/apps/core/deployrr-dashboard/files/services.yaml +18 -0
  35. package/apps/core/deployrr-dashboard/files/settings.yaml +13 -0
  36. package/apps/core/deployrr-dashboard/files/widgets.yaml +20 -0
  37. package/apps/core/deployrr-dashboard/manifest.json +133 -0
  38. package/apps/core/npm/compose.yml +40 -0
  39. package/apps/core/npm/manifest.json +60 -0
  40. package/apps/core/oauth/compose.yml +38 -0
  41. package/apps/core/oauth/files/chain-oauth.yml +8 -0
  42. package/apps/core/oauth/files/middlewares-oauth.yml +8 -0
  43. package/apps/core/oauth/files/oauth-secrets-template +3 -0
  44. package/apps/core/oauth/manifest.json +58 -0
  45. package/apps/core/socket-proxy/compose.yml +54 -0
  46. package/apps/core/socket-proxy/manifest.json +62 -0
  47. package/apps/core/system/bash-aliases/udms_bash_aliases +229 -0
  48. package/apps/core/system/bash-aliases/udms_bashrc +5 -0
  49. package/apps/core/system/docker/custom.yml +4 -0
  50. package/apps/core/system/docker/starter.yml +25 -0
  51. package/apps/core/system/rclone/compose.yml +28 -0
  52. package/apps/core/system/rclone/rclone-mount-template.service +43 -0
  53. package/apps/core/system/rclone/rclone-template.conf +6 -0
  54. package/apps/core/system/rclone/start-media-after-boot.service +9 -0
  55. package/apps/core/system/rclone/start-media-after-boot.sh +57 -0
  56. package/apps/core/tinyauth/compose.yml +47 -0
  57. package/apps/core/tinyauth/files/chain-tinyauth.yml +8 -0
  58. package/apps/core/tinyauth/files/middlewares-tinyauth.yml +10 -0
  59. package/apps/core/tinyauth/manifest.json +70 -0
  60. package/apps/core/traefik/compose.yml +106 -0
  61. package/apps/core/traefik/files/app-http-bypass-template.yml +31 -0
  62. package/apps/core/traefik/files/app-http-template.yml +18 -0
  63. package/apps/core/traefik/files/app-https-ssc-bypass-template.yml +36 -0
  64. package/apps/core/traefik/files/app-https-ssc-template.yml +23 -0
  65. package/apps/core/traefik/files/chain-basic-auth.yml +9 -0
  66. package/apps/core/traefik/files/chain-nextcloud.yml +8 -0
  67. package/apps/core/traefik/files/chain-no-auth.yml +8 -0
  68. package/apps/core/traefik/files/domain-passthrough-template.yml +15 -0
  69. package/apps/core/traefik/files/labels-auth-bypass-template.yml +6 -0
  70. package/apps/core/traefik/files/labels-template.yml +10 -0
  71. package/apps/core/traefik/files/middlewares-basic-auth.yml +9 -0
  72. package/apps/core/traefik/files/middlewares-buffering.yml +9 -0
  73. package/apps/core/traefik/files/middlewares-compress.yml +4 -0
  74. package/apps/core/traefik/files/middlewares-crowdsec-bouncer.yml +13 -0
  75. package/apps/core/traefik/files/middlewares-nextcloud.yml +35 -0
  76. package/apps/core/traefik/files/middlewares-rate-limit.yml +6 -0
  77. package/apps/core/traefik/files/middlewares-secure-headers.yml +26 -0
  78. package/apps/core/traefik/files/t2_proxy_network.yml +8 -0
  79. package/apps/core/traefik/files/tls-opts.yml +19 -0
  80. package/apps/core/traefik/files/traefik-static-config-example.yml +97 -0
  81. package/apps/core/traefik/files/traefik.yml +123 -0
  82. package/apps/core/traefik/files/traefik_global_secrets_template.yml +4 -0
  83. package/apps/core/traefik/files/traefik_proxy_network.yml +8 -0
  84. package/apps/core/traefik/manifest.json +70 -0
  85. package/apps/manifest-schema.json +760 -0
  86. package/apps/official/adminer/compose.yml +14 -0
  87. package/apps/official/adminer/manifest.json +65 -0
  88. package/apps/official/airsonic-advanced/compose.yml +26 -0
  89. package/apps/official/airsonic-advanced/manifest.json +78 -0
  90. package/apps/official/apps.json +146 -0
  91. package/apps/official/audiobookshelf/compose.yml +20 -0
  92. package/apps/official/audiobookshelf/manifest.json +65 -0
  93. package/apps/official/autobrr/autobrr-postgresql.yml +24 -0
  94. package/apps/official/autobrr/compose.yml +27 -0
  95. package/apps/official/autobrr/manifest.json +101 -0
  96. package/apps/official/baikal/compose.yml +17 -0
  97. package/apps/official/baikal/manifest.json +65 -0
  98. package/apps/official/bazarr/compose.yml +23 -0
  99. package/apps/official/bazarr/manifest.json +65 -0
  100. package/apps/official/beets/compose.yml +24 -0
  101. package/apps/official/beets/manifest.json +65 -0
  102. package/apps/official/bookstack/bookstack-mariadb.yml +26 -0
  103. package/apps/official/bookstack/compose.yml +31 -0
  104. package/apps/official/bookstack/manifest.json +113 -0
  105. package/apps/official/boxarr/compose.yml +18 -0
  106. package/apps/official/boxarr/manifest.json +65 -0
  107. package/apps/official/cadvisor/compose.yml +23 -0
  108. package/apps/official/cadvisor/files/pre-install.sh +10 -0
  109. package/apps/official/cadvisor/manifest.json +69 -0
  110. package/apps/official/calibre/compose.yml +27 -0
  111. package/apps/official/calibre/manifest.json +87 -0
  112. package/apps/official/calibre-web/compose.yml +23 -0
  113. package/apps/official/calibre-web/manifest.json +74 -0
  114. package/apps/official/change-detection/compose.yml +22 -0
  115. package/apps/official/change-detection/manifest.json +65 -0
  116. package/apps/official/chromium/compose.yml +25 -0
  117. package/apps/official/chromium/manifest.json +82 -0
  118. package/apps/official/cleanuparr/compose.yml +30 -0
  119. package/apps/official/cleanuparr/manifest.json +65 -0
  120. package/apps/official/cloud-commander/compose.yml +24 -0
  121. package/apps/official/cloud-commander/manifest.json +65 -0
  122. package/apps/official/cloudflare-tunnel/compose.yml +26 -0
  123. package/apps/official/cloudflare-tunnel/files/pre-install.sh +7 -0
  124. package/apps/official/cloudflare-tunnel/manifest.json +70 -0
  125. package/apps/official/cyberchef/compose.yml +14 -0
  126. package/apps/official/cyberchef/manifest.json +65 -0
  127. package/apps/official/dashy/compose.yml +27 -0
  128. package/apps/official/dashy/files/starter-conf.yml +45 -0
  129. package/apps/official/dashy/manifest.json +72 -0
  130. package/apps/official/ddns-updater/compose.yml +28 -0
  131. package/apps/official/ddns-updater/files/config.json +14 -0
  132. package/apps/official/ddns-updater/files/pre-install.sh +18 -0
  133. package/apps/official/ddns-updater/manifest.json +71 -0
  134. package/apps/official/deunhealth/compose.yml +17 -0
  135. package/apps/official/deunhealth/manifest.json +46 -0
  136. package/apps/official/digikam/compose.yml +23 -0
  137. package/apps/official/digikam/manifest.json +85 -0
  138. package/apps/official/dispatcharr/compose.yml +39 -0
  139. package/apps/official/dispatcharr/manifest.json +86 -0
  140. package/apps/official/docker-gc/compose.yml +25 -0
  141. package/apps/official/docker-gc/files/docker-gc-exclude +9 -0
  142. package/apps/official/docker-gc/files/pre-install.sh +22 -0
  143. package/apps/official/docker-gc/manifest.json +54 -0
  144. package/apps/official/dockhand/compose.yml +24 -0
  145. package/apps/official/dockhand/dockhand-postgresql.yml +24 -0
  146. package/apps/official/dockhand/manifest.json +105 -0
  147. package/apps/official/dockpeek/compose.yml +20 -0
  148. package/apps/official/dockpeek/manifest.json +95 -0
  149. package/apps/official/dockwatch/compose.yml +31 -0
  150. package/apps/official/dockwatch/manifest.json +65 -0
  151. package/apps/official/dokuwiki/compose.yml +21 -0
  152. package/apps/official/dokuwiki/manifest.json +81 -0
  153. package/apps/official/double-commander/compose.yml +26 -0
  154. package/apps/official/double-commander/manifest.json +83 -0
  155. package/apps/official/dozzle/compose.yml +23 -0
  156. package/apps/official/dozzle/manifest.json +65 -0
  157. package/apps/official/dozzle-agent/compose.yml +26 -0
  158. package/apps/official/dozzle-agent/manifest.json +71 -0
  159. package/apps/official/dweebui/compose.yml +21 -0
  160. package/apps/official/dweebui/manifest.json +81 -0
  161. package/apps/official/emby/compose.yml +29 -0
  162. package/apps/official/emby/manifest.json +98 -0
  163. package/apps/official/esphome/compose.yml +20 -0
  164. package/apps/official/esphome/manifest.json +65 -0
  165. package/apps/official/filezilla/compose.yml +23 -0
  166. package/apps/official/filezilla/manifest.json +82 -0
  167. package/apps/official/flame/compose.yml +21 -0
  168. package/apps/official/flame/manifest.json +73 -0
  169. package/apps/official/flaresolverr/compose.yml +19 -0
  170. package/apps/official/flaresolverr/manifest.json +75 -0
  171. package/apps/official/flowise/compose.yml +46 -0
  172. package/apps/official/flowise/flowise-postgresql.yml +24 -0
  173. package/apps/official/flowise/flowise-redis.yml +23 -0
  174. package/apps/official/flowise/manifest.json +125 -0
  175. package/apps/official/freshrss/compose.yml +20 -0
  176. package/apps/official/freshrss/manifest.json +65 -0
  177. package/apps/official/funkwhale/compose.yml +24 -0
  178. package/apps/official/funkwhale/files/post-install.sh +8 -0
  179. package/apps/official/funkwhale/manifest.json +69 -0
  180. package/apps/official/gamevault/compose.yml +26 -0
  181. package/apps/official/gamevault/gamevault-postgresql.yml +24 -0
  182. package/apps/official/gamevault/manifest.json +101 -0
  183. package/apps/official/glances/compose.yml +26 -0
  184. package/apps/official/glances/files/glances.conf +771 -0
  185. package/apps/official/glances/manifest.json +72 -0
  186. package/apps/official/gluetun/compose.yml +33 -0
  187. package/apps/official/gluetun/files/post-install.sh +78 -0
  188. package/apps/official/gluetun/manifest.json +88 -0
  189. package/apps/official/gonic/compose.yml +26 -0
  190. package/apps/official/gonic/manifest.json +78 -0
  191. package/apps/official/gptwol/compose.yml +23 -0
  192. package/apps/official/gptwol/manifest.json +81 -0
  193. package/apps/official/grafana/compose.yml +19 -0
  194. package/apps/official/grafana/manifest.json +81 -0
  195. package/apps/official/grocy/compose.yml +20 -0
  196. package/apps/official/grocy/manifest.json +74 -0
  197. package/apps/official/guacamole/compose.yml +26 -0
  198. package/apps/official/guacamole/guacamole-mariadb.yml +26 -0
  199. package/apps/official/guacamole/guacd.yml +12 -0
  200. package/apps/official/guacamole/hooks/post-install.sh +60 -0
  201. package/apps/official/guacamole/manifest.json +131 -0
  202. package/apps/official/heimdall/compose.yml +20 -0
  203. package/apps/official/heimdall/manifest.json +65 -0
  204. package/apps/official/homarr/compose.yml +22 -0
  205. package/apps/official/homarr/manifest.json +73 -0
  206. package/apps/official/homebridge/compose.yml +13 -0
  207. package/apps/official/homebridge/manifest.json +66 -0
  208. package/apps/official/homepage/compose.yml +22 -0
  209. package/apps/official/homepage/manifest.json +65 -0
  210. package/apps/official/homer/compose.yml +20 -0
  211. package/apps/official/homer/manifest.json +65 -0
  212. package/apps/official/immich/compose.yml +35 -0
  213. package/apps/official/immich/immich-machine-learning.yml +21 -0
  214. package/apps/official/immich/immich-postgresql.yml +30 -0
  215. package/apps/official/immich/immich-redis.yml +23 -0
  216. package/apps/official/immich/manifest.json +135 -0
  217. package/apps/official/influxdb/compose.yml +17 -0
  218. package/apps/official/influxdb/manifest.json +65 -0
  219. package/apps/official/it-tools/compose.yml +14 -0
  220. package/apps/official/it-tools/manifest.json +65 -0
  221. package/apps/official/jackett/compose.yml +21 -0
  222. package/apps/official/jackett/manifest.json +65 -0
  223. package/apps/official/jellyfin/compose.yml +27 -0
  224. package/apps/official/jellyfin/manifest.json +89 -0
  225. package/apps/official/jellyseerr/compose.yml +19 -0
  226. package/apps/official/jellyseerr/manifest.json +65 -0
  227. package/apps/official/kasm/compose.yml +27 -0
  228. package/apps/official/kasm/manifest.json +115 -0
  229. package/apps/official/kavita/compose.yml +21 -0
  230. package/apps/official/kavita/manifest.json +65 -0
  231. package/apps/official/kometa/compose.yml +23 -0
  232. package/apps/official/kometa/manifest.json +56 -0
  233. package/apps/official/komga/compose.yml +22 -0
  234. package/apps/official/komga/manifest.json +65 -0
  235. package/apps/official/langfuse/compose.yml +64 -0
  236. package/apps/official/langfuse/files/pre-install.sh +178 -0
  237. package/apps/official/langfuse/langfuse-clickhouse.yml +25 -0
  238. package/apps/official/langfuse/langfuse-minio.yml +25 -0
  239. package/apps/official/langfuse/langfuse-postgresql.yml +26 -0
  240. package/apps/official/langfuse/langfuse-redis.yml +22 -0
  241. package/apps/official/langfuse/langfuse-worker.yml +50 -0
  242. package/apps/official/langfuse/manifest.json +201 -0
  243. package/apps/official/lidarr/compose.yml +25 -0
  244. package/apps/official/lidarr/manifest.json +65 -0
  245. package/apps/official/lollypop/compose.yml +26 -0
  246. package/apps/official/lollypop/manifest.json +83 -0
  247. package/apps/official/maintainerr/compose.yml +20 -0
  248. package/apps/official/maintainerr/manifest.json +72 -0
  249. package/apps/official/mariadb/compose.yml +27 -0
  250. package/apps/official/mariadb/manifest.json +74 -0
  251. package/apps/official/mosquitto/compose.yml +24 -0
  252. package/apps/official/mosquitto/files/mosquitto.conf +15 -0
  253. package/apps/official/mosquitto/files/passwd +0 -0
  254. package/apps/official/mosquitto/files/post-install.sh +23 -0
  255. package/apps/official/mosquitto/manifest.json +123 -0
  256. package/apps/official/mqttx-web/compose.yml +14 -0
  257. package/apps/official/mqttx-web/manifest.json +74 -0
  258. package/apps/official/mylar3/compose.yml +22 -0
  259. package/apps/official/mylar3/manifest.json +65 -0
  260. package/apps/official/n8n/compose.yml +29 -0
  261. package/apps/official/n8n/files/pre-install.sh +26 -0
  262. package/apps/official/n8n/manifest.json +103 -0
  263. package/apps/official/n8n/n8n-postgresql.yml +26 -0
  264. package/apps/official/navidrome/compose.yml +26 -0
  265. package/apps/official/navidrome/manifest.json +65 -0
  266. package/apps/official/netdata/compose.yml +28 -0
  267. package/apps/official/netdata/manifest.json +66 -0
  268. package/apps/official/nextcloud/compose.yml +38 -0
  269. package/apps/official/nextcloud/manifest.json +159 -0
  270. package/apps/official/nextcloud/nextcloud-mariadb.yml +29 -0
  271. package/apps/official/nextcloud/nextcloud-redis.yml +20 -0
  272. package/apps/official/node-exporter/compose.yml +23 -0
  273. package/apps/official/node-exporter/manifest.json +65 -0
  274. package/apps/official/node-red/compose.yml +16 -0
  275. package/apps/official/node-red/manifest.json +72 -0
  276. package/apps/official/notifiarr/compose.yml +23 -0
  277. package/apps/official/notifiarr/manifest.json +75 -0
  278. package/apps/official/nzbget/compose.yml +23 -0
  279. package/apps/official/nzbget/manifest.json +74 -0
  280. package/apps/official/ollama/compose.yml +17 -0
  281. package/apps/official/ollama/manifest.json +85 -0
  282. package/apps/official/ombi/compose.yml +21 -0
  283. package/apps/official/ombi/manifest.json +65 -0
  284. package/apps/official/open-webui/compose.yml +21 -0
  285. package/apps/official/open-webui/manifest.json +75 -0
  286. package/apps/official/openhands/compose.yml +23 -0
  287. package/apps/official/openhands/manifest.json +65 -0
  288. package/apps/official/organizr/compose.yml +19 -0
  289. package/apps/official/organizr/manifest.json +78 -0
  290. package/apps/official/overseerr/compose.yml +20 -0
  291. package/apps/official/overseerr/manifest.json +65 -0
  292. package/apps/official/paperless-ai/compose.yml +16 -0
  293. package/apps/official/paperless-ai/manifest.json +74 -0
  294. package/apps/official/paperless-ngx/compose.yml +51 -0
  295. package/apps/official/paperless-ngx/gotenberg.yml +18 -0
  296. package/apps/official/paperless-ngx/manifest.json +179 -0
  297. package/apps/official/paperless-ngx/paperless-ngx-mariadb.yml +26 -0
  298. package/apps/official/paperless-ngx/paperless-ngx-redis.yml +23 -0
  299. package/apps/official/paperless-ngx/tika.yml +12 -0
  300. package/apps/official/pdfding/compose.yml +32 -0
  301. package/apps/official/pdfding/files/post-install.sh +55 -0
  302. package/apps/official/pdfding/manifest.json +120 -0
  303. package/apps/official/pdfding/pdfding-postgresql.yml +24 -0
  304. package/apps/official/pgadmin/compose.yml +17 -0
  305. package/apps/official/pgadmin/manifest.json +80 -0
  306. package/apps/official/phpmyadmin/compose.yml +22 -0
  307. package/apps/official/phpmyadmin/manifest.json +65 -0
  308. package/apps/official/pihole/compose.yml +41 -0
  309. package/apps/official/pihole/manifest.json +89 -0
  310. package/apps/official/piwigo/compose.yml +22 -0
  311. package/apps/official/piwigo/manifest.json +65 -0
  312. package/apps/official/plex/compose.yml +39 -0
  313. package/apps/official/plex/files/pre-install.sh +24 -0
  314. package/apps/official/plex/manifest.json +109 -0
  315. package/apps/official/portainer/compose.yml +22 -0
  316. package/apps/official/portainer/manifest.json +91 -0
  317. package/apps/official/postgresql/compose.yml +28 -0
  318. package/apps/official/postgresql/manifest.json +89 -0
  319. package/apps/official/privatebin/compose.yml +20 -0
  320. package/apps/official/privatebin/files/conf.php +90 -0
  321. package/apps/official/privatebin/manifest.json +82 -0
  322. package/apps/official/projectsend/compose.yml +21 -0
  323. package/apps/official/projectsend/manifest.json +72 -0
  324. package/apps/official/prometheus/compose.yml +25 -0
  325. package/apps/official/prometheus/files/prometheus.yml +3 -0
  326. package/apps/official/prometheus/manifest.json +79 -0
  327. package/apps/official/prowlarr/compose.yml +22 -0
  328. package/apps/official/prowlarr/manifest.json +65 -0
  329. package/apps/official/pulse/compose.yml +28 -0
  330. package/apps/official/pulse/files/post-install.sh +29 -0
  331. package/apps/official/pulse/manifest.json +78 -0
  332. package/apps/official/qbittorrent/compose.yml +22 -0
  333. package/apps/official/qbittorrent/files/pre-install.sh +5 -0
  334. package/apps/official/qbittorrent/files/qBittorrent.conf +39 -0
  335. package/apps/official/qbittorrent/manifest.json +96 -0
  336. package/apps/official/qbittorrent-vpn/compose.yml +26 -0
  337. package/apps/official/qbittorrent-vpn/files/post-install.sh +52 -0
  338. package/apps/official/qbittorrent-vpn/files/pre-install.sh +10 -0
  339. package/apps/official/qbittorrent-vpn/files/qBittorrent.conf +39 -0
  340. package/apps/official/qbittorrent-vpn/manifest.json +108 -0
  341. package/apps/official/qdrant/compose.yml +15 -0
  342. package/apps/official/qdrant/manifest.json +82 -0
  343. package/apps/official/radarr/compose.yml +25 -0
  344. package/apps/official/radarr/manifest.json +65 -0
  345. package/apps/official/redis/compose.yml +26 -0
  346. package/apps/official/redis/manifest.json +73 -0
  347. package/apps/official/redis-commander/compose.yml +20 -0
  348. package/apps/official/redis-commander/manifest.json +65 -0
  349. package/apps/official/remmina/compose.yml +23 -0
  350. package/apps/official/remmina/manifest.json +84 -0
  351. package/apps/official/resilio-sync/compose.yml +23 -0
  352. package/apps/official/resilio-sync/manifest.json +74 -0
  353. package/apps/official/sabnzbd/compose.yml +23 -0
  354. package/apps/official/sabnzbd/files/post-install.sh +35 -0
  355. package/apps/official/sabnzbd/manifest.json +75 -0
  356. package/apps/official/scrutiny/compose.yml +25 -0
  357. package/apps/official/scrutiny/manifest.json +113 -0
  358. package/apps/official/scrutiny/scrutiny-influxdb.yml +28 -0
  359. package/apps/official/searxng/compose.yml +28 -0
  360. package/apps/official/searxng/files/limiter.toml +6 -0
  361. package/apps/official/searxng/files/pre-install.sh +25 -0
  362. package/apps/official/searxng/files/settings.yml +8 -0
  363. package/apps/official/searxng/manifest.json +88 -0
  364. package/apps/official/searxng/searxng-valkey.yml +26 -0
  365. package/apps/official/shellinabox/manifest.json +68 -0
  366. package/apps/official/smokeping/compose.yml +21 -0
  367. package/apps/official/smokeping/manifest.json +65 -0
  368. package/apps/official/sonarr/compose.yml +25 -0
  369. package/apps/official/sonarr/manifest.json +65 -0
  370. package/apps/official/speedtest-tracker/compose.yml +30 -0
  371. package/apps/official/speedtest-tracker/manifest.json +119 -0
  372. package/apps/official/speedtest-tracker/speedtest-tracker-mariadb.yml +24 -0
  373. package/apps/official/sshwifty/compose.yml +17 -0
  374. package/apps/official/sshwifty/files/pre-install.sh +34 -0
  375. package/apps/official/sshwifty/files/sshwifty.conf.json +36 -0
  376. package/apps/official/sshwifty/manifest.json +101 -0
  377. package/apps/official/stirling-pdf/compose.yml +23 -0
  378. package/apps/official/stirling-pdf/manifest.json +65 -0
  379. package/apps/official/supabase/compose.yml +39 -0
  380. package/apps/official/supabase/files/pre-install.sh +201 -0
  381. package/apps/official/supabase/files/volumes/api/kong.yml +221 -0
  382. package/apps/official/supabase/files/volumes/db/_supabase.sql +3 -0
  383. package/apps/official/supabase/files/volumes/db/jwt.sql +5 -0
  384. package/apps/official/supabase/files/volumes/db/logs.sql +6 -0
  385. package/apps/official/supabase/files/volumes/db/pooler.sql +6 -0
  386. package/apps/official/supabase/files/volumes/db/realtime.sql +4 -0
  387. package/apps/official/supabase/files/volumes/db/roles.sql +8 -0
  388. package/apps/official/supabase/files/volumes/db/webhooks.sql +208 -0
  389. package/apps/official/supabase/files/volumes/functions/hello/index.ts +6 -0
  390. package/apps/official/supabase/files/volumes/functions/main/index.ts +93 -0
  391. package/apps/official/supabase/files/volumes/logs/vector.yml +266 -0
  392. package/apps/official/supabase/files/volumes/pooler/pooler.exs +30 -0
  393. package/apps/official/supabase/manifest.json +327 -0
  394. package/apps/official/supabase/supabase-analytics.yml +32 -0
  395. package/apps/official/supabase/supabase-auth.yml +34 -0
  396. package/apps/official/supabase/supabase-db.yml +42 -0
  397. package/apps/official/supabase/supabase-functions.yml +24 -0
  398. package/apps/official/supabase/supabase-imgproxy.yml +25 -0
  399. package/apps/official/supabase/supabase-kong.yml +30 -0
  400. package/apps/official/supabase/supabase-meta.yml +20 -0
  401. package/apps/official/supabase/supabase-pooler.yml +45 -0
  402. package/apps/official/supabase/supabase-realtime.yml +42 -0
  403. package/apps/official/supabase/supabase-rest.yml +21 -0
  404. package/apps/official/supabase/supabase-storage.yml +36 -0
  405. package/apps/official/supabase/supabase-vector.yml +23 -0
  406. package/apps/official/tailscale/compose.yml +23 -0
  407. package/apps/official/tailscale/manifest.json +65 -0
  408. package/apps/official/tautulli/compose.yml +21 -0
  409. package/apps/official/tautulli/files/pre-install.sh +9 -0
  410. package/apps/official/tautulli/manifest.json +69 -0
  411. package/apps/official/termix/compose.yml +18 -0
  412. package/apps/official/termix/manifest.json +65 -0
  413. package/apps/official/teslamate/teslamate-grafana.yml +22 -0
  414. package/apps/official/teslamate/teslamate-mosquitto.yml +27 -0
  415. package/apps/official/teslamate/teslamate-pgsql.yml +24 -0
  416. package/apps/official/teslamate/teslamate.yml +27 -0
  417. package/apps/official/thelounge/compose.yml +20 -0
  418. package/apps/official/thelounge/manifest.json +65 -0
  419. package/apps/official/theme-park/compose.yml +21 -0
  420. package/apps/official/theme-park/manifest.json +74 -0
  421. package/apps/official/traefik-access-log/compose.yml +14 -0
  422. package/apps/official/traefik-access-log/manifest.json +59 -0
  423. package/apps/official/traefik-certs-dumper/compose.yml +18 -0
  424. package/apps/official/traefik-certs-dumper/manifest.json +56 -0
  425. package/apps/official/traefik-error-log/compose.yml +14 -0
  426. package/apps/official/traefik-error-log/manifest.json +59 -0
  427. package/apps/official/transmission/compose.yml +33 -0
  428. package/apps/official/transmission/manifest.json +90 -0
  429. package/apps/official/trilium/compose.yml +19 -0
  430. package/apps/official/trilium/manifest.json +65 -0
  431. package/apps/official/uptime-kuma/compose.yml +17 -0
  432. package/apps/official/uptime-kuma/manifest.json +65 -0
  433. package/apps/official/vaultwarden/compose.yml +20 -0
  434. package/apps/official/vaultwarden/files/pre-install.sh +27 -0
  435. package/apps/official/vaultwarden/manifest.json +86 -0
  436. package/apps/official/vikunja/compose.yml +30 -0
  437. package/apps/official/vikunja/manifest.json +123 -0
  438. package/apps/official/vikunja/vikunja-mariadb.yml +26 -0
  439. package/apps/official/viniplay/compose.yml +18 -0
  440. package/apps/official/viniplay/files/pre-install.sh +9 -0
  441. package/apps/official/viniplay/manifest.json +63 -0
  442. package/apps/official/vscode/compose.yml +28 -0
  443. package/apps/official/vscode/manifest.json +65 -0
  444. package/apps/official/wallos/compose.yml +19 -0
  445. package/apps/official/wallos/manifest.json +65 -0
  446. package/apps/official/weaviate/compose.yml +28 -0
  447. package/apps/official/weaviate/manifest.json +82 -0
  448. package/apps/official/wg-easy/compose.yml +31 -0
  449. package/apps/official/wg-easy/files/post-install.sh +32 -0
  450. package/apps/official/wg-easy/manifest.json +118 -0
  451. package/apps/official/wikidocs/compose.yml +19 -0
  452. package/apps/official/wikidocs/manifest.json +65 -0
  453. package/apps/official/wud/compose.yml +22 -0
  454. package/apps/official/wud/manifest.json +74 -0
  455. package/apps/official/xpipe-webtop/compose.yml +21 -0
  456. package/apps/official/xpipe-webtop/manifest.json +83 -0
  457. package/apps/official/zerotier/compose.yml +17 -0
  458. package/apps/official/zerotier/files/post-install.sh +23 -0
  459. package/apps/official/zerotier/manifest.json +78 -0
  460. package/apps/unofficial/9router/compose.yml +30 -0
  461. package/apps/unofficial/9router/files/oauth-fix.patch +32 -0
  462. package/apps/unofficial/9router/files/pre-install.sh +87 -0
  463. package/apps/unofficial/9router/manifest.json +144 -0
  464. package/apps/unofficial/openclaw/Dockerfile.full +79 -0
  465. package/apps/unofficial/openclaw/compose.yml +60 -0
  466. package/apps/unofficial/openclaw/files/post-install.sh +316 -0
  467. package/apps/unofficial/openclaw/files/pre-install.sh +174 -0
  468. package/apps/unofficial/openclaw/manifest.json +178 -0
  469. package/apps/version_pins +67 -0
  470. package/bin/deployrr-init.sh +49 -0
  471. package/latest-version +1 -0
  472. package/package.json +21 -0
package/announcement ADDED
@@ -0,0 +1 @@
1
+ \Z7ANNOUNCEMENT:\Zn Version 6.0 is not compatible with setups from previous versions.
@@ -0,0 +1,660 @@
1
+ # Contributing Community Apps to Deployrr
2
+
3
+ Welcome! This guide explains how to contribute apps to the Deployrr community app store. Community apps extend Deployrr's functionality and help fellow homelab enthusiasts.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Quick Start](#quick-start)
8
+ - [Directory Structure](#directory-structure)
9
+ - [The Manifest File](#the-manifest-file)
10
+ - [The Compose File](#the-compose-file)
11
+ - [Environment Variables & Placeholders](#environment-variables--placeholders)
12
+ - [Registering Your App](#registering-your-app)
13
+ - [Testing Your App](#testing-your-app)
14
+ - [Submission Checklist](#submission-checklist)
15
+ - [Examples](#examples)
16
+
17
+ ---
18
+
19
+ ## Quick Start
20
+
21
+ To add a community app, you need to create:
22
+
23
+ 1. **A folder** named after your app (lowercase, hyphens for spaces)
24
+ 2. **`manifest.json`** - App metadata and configuration
25
+ 3. **`compose.yml`** - Docker Compose definition
26
+
27
+ ```
28
+ apps/community/
29
+ ├── apps.json # Registry of all community apps
30
+ └── your-app-name/
31
+ ├── manifest.json # App configuration
32
+ └── compose.yml # Docker Compose file
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Directory Structure
38
+
39
+ ### Folder Naming Rules
40
+
41
+ - Use **lowercase** letters only
42
+ - Use **hyphens** (`-`) to separate words
43
+ - Match the container name when possible
44
+ - Maximum 32 characters
45
+
46
+ **Good:** `uptime-kuma`, `it-tools`, `home-assistant`
47
+ **Bad:** `UptimeKuma`, `it_tools`, `HomeAssistant`
48
+
49
+ ---
50
+
51
+ ## The Manifest File
52
+
53
+ The `manifest.json` file is the heart of your app definition. It tells Deployrr everything it needs to know about your app.
54
+
55
+ ### Complete Manifest Structure
56
+
57
+ ```json
58
+ {
59
+ "$schema": "../../../apps/manifest-schema.json",
60
+ "version": "1.2",
61
+
62
+ "app": {
63
+ "sname": "your-app",
64
+ "pname": "Your App",
65
+ "description": "A detailed description of what your app does. This appears in the app info dialog.",
66
+ "descriptionShort": "Brief description (max 42 chars)",
67
+ "icon": "sh-your-app",
68
+ "category": "community",
69
+ "menuNumber": "07",
70
+ "tags": ["category1", "category2", "category3"]
71
+ },
72
+
73
+ "deployment": {
74
+ "type": "single",
75
+ "compose": "compose.yml",
76
+ "profiles": ["apps", "all"],
77
+ "networks": ["default"],
78
+ "webui": true,
79
+ "port": 8080,
80
+ "protocol": "http"
81
+ },
82
+
83
+ "requirements": {
84
+ "prerequisites": ["prerequisites"],
85
+ "apps": []
86
+ },
87
+
88
+ "traefik": {
89
+ "supported": true
90
+ },
91
+
92
+ "dashboard": {
93
+ "enabled": true,
94
+ "location": "local",
95
+ "showStats": true,
96
+ "portVariable": "YOURAPP_PORT"
97
+ },
98
+
99
+ "env": {
100
+ "variables": [
101
+ {
102
+ "name": "YOURAPP_PORT",
103
+ "description": "Web interface port",
104
+ "type": "port",
105
+ "default": 8080,
106
+ "prompt": true,
107
+ "required": true,
108
+ "validation": {
109
+ "type": "port",
110
+ "min": 1,
111
+ "max": 65535
112
+ }
113
+ }
114
+ ]
115
+ },
116
+
117
+ "status": {
118
+ "file": "07_yourapp_status",
119
+ "successMessage": "Your App Setup Completed",
120
+ "telemetryAction": "yourapp"
121
+ }
122
+ }
123
+ ```
124
+
125
+ ### Manifest Field Reference
126
+
127
+ #### `app` Section (Required)
128
+
129
+ | Field | Type | Required | Description |
130
+ |-------|------|----------|-------------|
131
+ | `sname` | string | Yes | Service/container name. Lowercase, hyphens only. Max 32 chars. Pattern: `^[a-z0-9-]+$` |
132
+ | `pname` | string | Yes | Display name shown to users (e.g., "Uptime Kuma") |
133
+ | `description` | string | Yes | Full description for app info dialog |
134
+ | `descriptionShort` | string | Yes | Short description for menus. **Max 42 characters** |
135
+ | `icon` | string | Yes | Icon identifier. Use format `sh-appname` (selfh.st/icons) |
136
+ | `category` | string | Yes | Must be `"community"` for community apps |
137
+ | `menuNumber` | string | Yes | Must be `"07"` for community apps |
138
+ | `tags` | array | No | Keywords for filtering (e.g., `["monitoring", "dashboard"]`) |
139
+
140
+ #### `deployment` Section (Required)
141
+
142
+ | Field | Type | Required | Description |
143
+ |-------|------|----------|-------------|
144
+ | `type` | string | No | `"single"` for Tier 1 apps (default) |
145
+ | `compose` | string | Yes | Compose filename, always `"compose.yml"` |
146
+ | `profiles` | array | Yes | Docker profiles. Use `["apps", "all"]` for most apps |
147
+ | `networks` | array | No | Networks needed. Default: `["default"]` |
148
+ | `webui` | boolean | Yes | `true` if app has a web interface |
149
+ | `port` | number | No | Default port number (required if `webui: true`) |
150
+ | `protocol` | string | No | `"http"` or `"https"` |
151
+
152
+ #### `requirements` Section (Required)
153
+
154
+ | Field | Type | Required | Description |
155
+ |-------|------|----------|-------------|
156
+ | `prerequisites` | array | Yes | Always include `["prerequisites"]` |
157
+ | `apps` | array | No | Other apps that must be running (e.g., `["mariadb"]`) |
158
+
159
+ #### `traefik` Section
160
+
161
+ | Field | Type | Required | Description |
162
+ |-------|------|----------|-------------|
163
+ | `supported` | boolean | No | `true` if app can work behind Traefik reverse proxy |
164
+
165
+ #### `dashboard` Section
166
+
167
+ | Field | Type | Required | Description |
168
+ |-------|------|----------|-------------|
169
+ | `enabled` | boolean | No | `true` to show on Deployrr dashboard |
170
+ | `location` | string | No | `"local"`, `"remote"`, or `"other"` |
171
+ | `showStats` | boolean | No | `true` to show container stats |
172
+ | `portVariable` | string | No | Env var name containing the port (e.g., `"YOURAPP_PORT"`) |
173
+
174
+ #### `env` Section
175
+
176
+ | Field | Type | Required | Description |
177
+ |-------|------|----------|-------------|
178
+ | `variables` | array | No | Environment variables to configure |
179
+
180
+ **Variable Object Fields:**
181
+
182
+ | Field | Type | Required | Description |
183
+ |-------|------|----------|-------------|
184
+ | `name` | string | Yes | Variable name (e.g., `YOURAPP_PORT`) |
185
+ | `description` | string | No | Human-readable description |
186
+ | `type` | string | Yes | `"port"`, `"string"`, or `"password"` |
187
+ | `default` | any | No | Default value |
188
+ | `prompt` | boolean | No | `true` to ask user during install |
189
+ | `required` | boolean | No | `true` if value must be provided |
190
+ | `validation` | object | No | Validation rules |
191
+
192
+ #### `status` Section (Required)
193
+
194
+ | Field | Type | Required | Description |
195
+ |-------|------|----------|-------------|
196
+ | `file` | string | Yes | Status filename. Format: `07_appname_status` |
197
+ | `successMessage` | string | Yes | Message shown on successful install |
198
+ | `telemetryAction` | string | Yes | Telemetry identifier (lowercase, no hyphens) |
199
+
200
+ ---
201
+
202
+ ## The Compose File
203
+
204
+ The `compose.yml` file defines your Docker container(s).
205
+
206
+ ### Basic Template
207
+
208
+ ```yaml
209
+ services:
210
+ # App Name - Short Description
211
+ your-app:
212
+ image: publisher/image:latest
213
+ container_name: your-app
214
+ security_opt:
215
+ - no-new-privileges:true
216
+ restart: unless-stopped
217
+ profiles: ["apps", "all"]
218
+ networks:
219
+ - default
220
+ ports:
221
+ - "$YOURAPP_PORT:8080"
222
+ volumes:
223
+ - $DOCKERDIR/appdata/your-app:/config
224
+ environment:
225
+ PUID: $PUID
226
+ PGID: $PGID
227
+ TZ: $TZ
228
+ # DOCKER-LABELS-PLACEHOLDER
229
+ ```
230
+
231
+ ### Compose File Rules
232
+
233
+ 1. **Service name** must match `sname` in manifest
234
+ 2. **Container name** must match `sname` in manifest
235
+ 3. **Always include** `security_opt: - no-new-privileges:true`
236
+ 4. **Always include** `restart: unless-stopped`
237
+ 5. **Profiles** must match manifest's `deployment.profiles`
238
+ 6. **Networks** must match manifest's `deployment.networks`
239
+ 7. **End with** `# DOCKER-LABELS-PLACEHOLDER` comment (for Traefik labels)
240
+
241
+ ### Required Elements
242
+
243
+ | Element | Purpose |
244
+ |---------|---------|
245
+ | `security_opt: - no-new-privileges:true` | Security hardening |
246
+ | `restart: unless-stopped` | Auto-restart on failure |
247
+ | `profiles` | Control when container starts |
248
+ | `networks` | Network connectivity |
249
+ | `# DOCKER-LABELS-PLACEHOLDER` | Traefik label injection point |
250
+
251
+ ---
252
+
253
+ ## Environment Variables & Placeholders
254
+
255
+ ### System Variables (Always Available)
256
+
257
+ These variables are automatically provided by Deployrr:
258
+
259
+ | Variable | Description | Example |
260
+ |----------|-------------|---------|
261
+ | `$DOCKERDIR` | Docker root directory | `/home/user/docker` |
262
+ | `$PUID` | User ID for permissions | `1000` |
263
+ | `$PGID` | Group ID for permissions | `1000` |
264
+ | `$TZ` | Timezone | `America/New_York` |
265
+ | `$DOMAINNAME_1` | Primary domain (if configured) | `example.com` |
266
+
267
+ ### Port Variables
268
+
269
+ For apps with a web UI, define a port variable:
270
+
271
+ **In manifest.json:**
272
+ ```json
273
+ "env": {
274
+ "variables": [
275
+ {
276
+ "name": "YOURAPP_PORT",
277
+ "description": "Web interface port",
278
+ "type": "port",
279
+ "default": 8080,
280
+ "prompt": true,
281
+ "required": true,
282
+ "validation": {
283
+ "type": "port",
284
+ "min": 1,
285
+ "max": 65535
286
+ }
287
+ }
288
+ ]
289
+ }
290
+ ```
291
+
292
+ **In compose.yml:**
293
+ ```yaml
294
+ ports:
295
+ - "$YOURAPP_PORT:8080"
296
+ ```
297
+
298
+ ### Port Naming Convention
299
+
300
+ - Use `APPNAME_PORT` format
301
+ - Remove hyphens from app name
302
+ - All uppercase
303
+
304
+ | App Name | Port Variable |
305
+ |----------|---------------|
306
+ | `uptime-kuma` | `UPTIMEKUMA_PORT` |
307
+ | `it-tools` | `ITTOOLS_PORT` |
308
+ | `home-assistant` | `HOMEASSISTANT_PORT` |
309
+
310
+ ### Volume Paths
311
+
312
+ Always use the standard appdata path format:
313
+
314
+ ```yaml
315
+ volumes:
316
+ - $DOCKERDIR/appdata/your-app:/config
317
+ ```
318
+
319
+ ---
320
+
321
+ ## Registering Your App
322
+
323
+ Add your app to `apps/community/apps.json`:
324
+
325
+ ```json
326
+ {
327
+ "version": "2.1",
328
+ "description": "Community Deployrr Apps Registry",
329
+ "lastUpdated": "2026-01-24",
330
+ "apps": [
331
+ "existing-app",
332
+ "your-app"
333
+ ]
334
+ }
335
+ ```
336
+
337
+ Keep apps sorted alphabetically by name.
338
+
339
+ ---
340
+
341
+ ## Testing Your App
342
+
343
+ Before submitting, verify:
344
+
345
+ 1. **JSON Validation**
346
+ ```bash
347
+ # Validate manifest.json syntax
348
+ python -m json.tool apps/community/your-app/manifest.json
349
+ ```
350
+
351
+ 2. **YAML Validation**
352
+ ```bash
353
+ # Validate compose.yml syntax
354
+ docker compose -f apps/community/your-app/compose.yml config
355
+ ```
356
+
357
+ 3. **Container Test**
358
+ ```bash
359
+ # Test the container starts
360
+ docker compose -f apps/community/your-app/compose.yml up -d
361
+ docker logs your-app
362
+ ```
363
+
364
+ 4. **Verify Required Fields**
365
+ - [ ] `sname` matches folder name
366
+ - [ ] `sname` matches compose service name
367
+ - [ ] `sname` matches compose container_name
368
+ - [ ] `category` is `"community"`
369
+ - [ ] `menuNumber` is `"07"`
370
+ - [ ] `descriptionShort` is 42 characters or less
371
+ - [ ] Status file uses `07_` prefix
372
+
373
+ ---
374
+
375
+ ## Submission Checklist
376
+
377
+ - [ ] Folder name matches `sname`
378
+ - [ ] `manifest.json` is valid JSON
379
+ - [ ] `compose.yml` is valid YAML
380
+ - [ ] All required manifest sections present
381
+ - [ ] `category` set to `"community"`
382
+ - [ ] `menuNumber` set to `"07"`
383
+ - [ ] Port variable defined (if webui: true)
384
+ - [ ] `# DOCKER-LABELS-PLACEHOLDER` at end of compose
385
+ - [ ] App added to `apps.json`
386
+ - [ ] Tested container starts successfully
387
+ - [ ] No hardcoded paths (use `$DOCKERDIR`)
388
+ - [ ] Security options included
389
+
390
+ ---
391
+
392
+ ## Examples
393
+
394
+ ### Example 1: Simple Web App (IT-Tools)
395
+
396
+ **manifest.json:**
397
+ ```json
398
+ {
399
+ "$schema": "../../../apps/manifest-schema.json",
400
+ "version": "1.2",
401
+
402
+ "app": {
403
+ "sname": "it-tools",
404
+ "pname": "IT-Tools",
405
+ "description": "IT-Tools is a collection of handy online tools for developers and IT professionals.",
406
+ "descriptionShort": "Set of IT tools",
407
+ "icon": "sh-it-tools",
408
+ "category": "community",
409
+ "menuNumber": "07",
410
+ "tags": ["tools", "developer", "utilities"]
411
+ },
412
+
413
+ "deployment": {
414
+ "type": "single",
415
+ "compose": "compose.yml",
416
+ "profiles": ["apps", "all"],
417
+ "networks": ["default"],
418
+ "webui": true,
419
+ "port": 8080,
420
+ "protocol": "http"
421
+ },
422
+
423
+ "requirements": {
424
+ "prerequisites": ["prerequisites"],
425
+ "apps": []
426
+ },
427
+
428
+ "traefik": {
429
+ "supported": true
430
+ },
431
+
432
+ "dashboard": {
433
+ "enabled": true,
434
+ "location": "local",
435
+ "showStats": true,
436
+ "portVariable": "ITTOOLS_PORT"
437
+ },
438
+
439
+ "env": {
440
+ "variables": [
441
+ {
442
+ "name": "ITTOOLS_PORT",
443
+ "description": "Web interface port",
444
+ "type": "port",
445
+ "default": 8080,
446
+ "prompt": true,
447
+ "required": true,
448
+ "validation": {
449
+ "type": "port",
450
+ "min": 1,
451
+ "max": 65535
452
+ }
453
+ }
454
+ ]
455
+ },
456
+
457
+ "status": {
458
+ "file": "07_ittools_status",
459
+ "successMessage": "IT-Tools Setup Completed",
460
+ "telemetryAction": "ittools"
461
+ }
462
+ }
463
+ ```
464
+
465
+ **compose.yml:**
466
+ ```yaml
467
+ services:
468
+ # IT-Tools - IT Tools Dashboard
469
+ it-tools:
470
+ image: corentinth/it-tools
471
+ container_name: it-tools
472
+ security_opt:
473
+ - no-new-privileges:true
474
+ restart: unless-stopped
475
+ profiles: ["apps", "all"]
476
+ networks:
477
+ - default
478
+ ports:
479
+ - "$ITTOOLS_PORT:80"
480
+ # DOCKER-LABELS-PLACEHOLDER
481
+ ```
482
+
483
+ ### Example 2: App with Persistent Data (Uptime Kuma)
484
+
485
+ **manifest.json:**
486
+ ```json
487
+ {
488
+ "$schema": "../../../apps/manifest-schema.json",
489
+ "version": "1.2",
490
+
491
+ "app": {
492
+ "sname": "uptime-kuma",
493
+ "pname": "Uptime-Kuma",
494
+ "description": "Uptime Kuma is a fancy, self-hosted monitoring tool with a beautiful status page.",
495
+ "descriptionShort": "Self-hosted monitoring tool",
496
+ "icon": "sh-uptime-kuma",
497
+ "category": "community",
498
+ "menuNumber": "07",
499
+ "tags": ["monitoring", "uptime", "status"]
500
+ },
501
+
502
+ "deployment": {
503
+ "type": "single",
504
+ "compose": "compose.yml",
505
+ "profiles": ["apps", "all"],
506
+ "networks": ["default"],
507
+ "webui": true,
508
+ "port": 3001,
509
+ "protocol": "http"
510
+ },
511
+
512
+ "requirements": {
513
+ "prerequisites": ["prerequisites"],
514
+ "apps": []
515
+ },
516
+
517
+ "traefik": {
518
+ "supported": true
519
+ },
520
+
521
+ "dashboard": {
522
+ "enabled": true,
523
+ "location": "local",
524
+ "showStats": true,
525
+ "portVariable": "UPTIMEKUMA_PORT"
526
+ },
527
+
528
+ "env": {
529
+ "variables": [
530
+ {
531
+ "name": "UPTIMEKUMA_PORT",
532
+ "description": "Web interface port",
533
+ "type": "port",
534
+ "default": 3001,
535
+ "prompt": true,
536
+ "required": true,
537
+ "validation": {
538
+ "type": "port",
539
+ "min": 1,
540
+ "max": 65535
541
+ }
542
+ }
543
+ ]
544
+ },
545
+
546
+ "status": {
547
+ "file": "07_uptimekuma_status",
548
+ "successMessage": "Uptime-Kuma Setup Completed",
549
+ "telemetryAction": "uptimekuma"
550
+ }
551
+ }
552
+ ```
553
+
554
+ **compose.yml:**
555
+ ```yaml
556
+ services:
557
+ # Uptime Kuma - Status Page & Monitoring Server
558
+ uptime-kuma:
559
+ image: louislam/uptime-kuma
560
+ container_name: uptime-kuma
561
+ security_opt:
562
+ - no-new-privileges:true
563
+ restart: unless-stopped
564
+ profiles: ["apps", "all"]
565
+ networks:
566
+ - default
567
+ ports:
568
+ - "$UPTIMEKUMA_PORT:3001"
569
+ volumes:
570
+ - $DOCKERDIR/appdata/uptime-kuma:/app/data
571
+ # DOCKER-LABELS-PLACEHOLDER
572
+ ```
573
+
574
+ ### Example 3: App Without Web UI (DeUnhealth)
575
+
576
+ **manifest.json:**
577
+ ```json
578
+ {
579
+ "$schema": "../../../apps/manifest-schema.json",
580
+ "version": "1.2",
581
+
582
+ "app": {
583
+ "sname": "deunhealth",
584
+ "pname": "DeUnhealth",
585
+ "description": "DeUnhealth monitors and restarts unhealthy Docker containers automatically.",
586
+ "descriptionShort": "Unhealthy container restarter",
587
+ "icon": "sh-deunhealth",
588
+ "category": "community",
589
+ "menuNumber": "07",
590
+ "tags": ["docker", "automation", "health"]
591
+ },
592
+
593
+ "deployment": {
594
+ "type": "single",
595
+ "compose": "compose.yml",
596
+ "profiles": ["apps", "all"],
597
+ "networks": ["default"],
598
+ "webui": false,
599
+ "port": null,
600
+ "protocol": "http"
601
+ },
602
+
603
+ "requirements": {
604
+ "prerequisites": ["prerequisites"],
605
+ "apps": []
606
+ },
607
+
608
+ "traefik": {
609
+ "supported": false
610
+ },
611
+
612
+ "dashboard": {
613
+ "enabled": false,
614
+ "location": "local",
615
+ "showStats": true
616
+ },
617
+
618
+ "env": {
619
+ "variables": []
620
+ },
621
+
622
+ "status": {
623
+ "file": "07_deunhealth_status",
624
+ "successMessage": "DeUnhealth Setup Completed",
625
+ "telemetryAction": "deunhealth"
626
+ }
627
+ }
628
+ ```
629
+
630
+ **compose.yml:**
631
+ ```yaml
632
+ services:
633
+ # DeUnhealth - Unhealthy Container Restarter
634
+ deunhealth:
635
+ image: qmcgaw/deunhealth
636
+ container_name: deunhealth
637
+ security_opt:
638
+ - no-new-privileges:true
639
+ restart: always
640
+ profiles: ["apps", "all"]
641
+ networks:
642
+ - default
643
+ volumes:
644
+ - /var/run/docker.sock:/var/run/docker.sock:ro
645
+ environment:
646
+ TZ: $TZ
647
+ LOG_LEVEL: info
648
+ HEALTH_CHECK_INTERVAL: 5s
649
+ # DOCKER-LABELS-PLACEHOLDER
650
+ ```
651
+
652
+ ---
653
+
654
+ ## Getting Help
655
+
656
+ - **Questions?** Open an issue on GitHub
657
+ - **Found a bug?** Submit a bug report
658
+ - **Want to contribute?** Fork the repo and submit a PR
659
+
660
+ Thank you for contributing to Deployrr!
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": "2.1",
3
+ "description": "Community Deployrr Apps Registry - Apps contributed by the community. See CONTRIBUTING.md for how to add apps.",
4
+ "lastUpdated": "2026-01-24",
5
+ "apps": []
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": "1.0",
3
+ "description": "Core Deployrr Apps - Proprietary applications",
4
+ "category": "core",
5
+ "apps": [
6
+ "authelia",
7
+ "authentik",
8
+ "crowdsec",
9
+ "deployrr-dashboard",
10
+ "npm",
11
+ "oauth",
12
+ "socket-proxy",
13
+ "tinyauth",
14
+ "traefik"
15
+ ]
16
+ }
@@ -0,0 +1,24 @@
1
+ services:
2
+ # Authelia Redis - Key-value Store for Authelia session management
3
+ # Dedicated Redis instance for Authelia
4
+ authelia-redis:
5
+ image: docker.io/library/redis:alpine
6
+ container_name: authelia-redis
7
+ security_opt:
8
+ - no-new-privileges:true
9
+ restart: unless-stopped
10
+ profiles: ["core", "all"]
11
+ command: redis-server --save "" --maxmemory 256mb --appendonly no --maxmemory-policy allkeys-lru
12
+ healthcheck:
13
+ test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
14
+ start_period: 20s
15
+ interval: 30s
16
+ retries: 5
17
+ timeout: 3s
18
+ networks:
19
+ - default
20
+ deploy:
21
+ resources:
22
+ limits:
23
+ memory: 256MB
24
+ # DOCKER-LABELS-PLACEHOLDER