@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
@@ -0,0 +1,174 @@
1
+ #!/bin/bash
2
+ # OpenClaw pre-install hook
3
+ # Clones the OpenClaw repo and builds the Docker image with extra packages
4
+ # Uses upstream pnpm build with OPENCLAW_DOCKER_APT_PACKAGES and OPENCLAW_INSTALL_BROWSER
5
+ # Includes: git, curl, jq, build-essential, Chromium/Playwright baked into image
6
+ # Auto-configures 9Router integration if available
7
+
8
+
9
+ BUILD_DIR="$DOCKER_FOLDER/appdata/openclaw/build"
10
+ IMAGE_NAME="deployrr/openclaw:latest"
11
+ CONFIG_DIR="$DOCKER_FOLDER/appdata/shared/openclaw-cli"
12
+ APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
13
+
14
+ # Step 1: Check if image already exists
15
+ f_print_substep "Checking for existing OpenClaw image..."
16
+ if sudo docker image inspect "$IMAGE_NAME" &>/dev/null; then
17
+ f_print_substep "Image $IMAGE_NAME already exists"
18
+ f_print_substep "To rebuild, run: sudo docker rmi $IMAGE_NAME"
19
+ else
20
+ # Step 2: Clone or update the OpenClaw repository
21
+ f_print_substep "Preparing OpenClaw source code..."
22
+ if [[ -d "$BUILD_DIR/.git" ]]; then
23
+ f_print_substep "Updating existing repository..."
24
+ if ! sudo git -C "$BUILD_DIR" pull --ff-only; then
25
+ f_print_substep "Pull failed, re-cloning..."
26
+ sudo rm -rf "$BUILD_DIR"
27
+ if ! sudo git clone --depth 1 https://github.com/openclaw/openclaw.git "$BUILD_DIR"; then
28
+ f_print_error "Failed to clone OpenClaw repository"
29
+ return 1
30
+ fi
31
+ fi
32
+ else
33
+ f_print_substep "Cloning OpenClaw repository (this may take a minute)..."
34
+ sudo mkdir -p "$(dirname "$BUILD_DIR")"
35
+ sudo rm -rf "$BUILD_DIR"
36
+ if ! sudo git clone --depth 1 https://github.com/openclaw/openclaw.git "$BUILD_DIR"; then
37
+ f_print_error "Failed to clone OpenClaw repository"
38
+ return 1
39
+ fi
40
+ fi
41
+
42
+ # Fix permissions so build context is readable
43
+ sudo chmod -R a+rX "$BUILD_DIR"
44
+
45
+ # Step 3: Validate build context has essential files
46
+ for _required_file in package.json pnpm-lock.yaml .npmrc pnpm-workspace.yaml; do
47
+ if ! sudo test -f "$BUILD_DIR/$_required_file"; then
48
+ f_print_error "Build context missing '$_required_file' — clone may have failed"
49
+ f_print_error "Try removing $BUILD_DIR and re-running the installer"
50
+ return 1
51
+ fi
52
+ done
53
+ f_print_substep "Build context validated ($(sudo du -sh "$BUILD_DIR" | cut -f1) source tree)"
54
+
55
+ # Step 4: Copy the full Dockerfile into the build context
56
+ f_print_substep "Using full-featured Dockerfile (pnpm + extra packages)..."
57
+ sudo cp "$APP_DIR/Dockerfile.full" "$BUILD_DIR/Dockerfile.full"
58
+
59
+ # Step 7: Build the Docker image with extra packages (using full paths, no cd needed)
60
+ f_print_substep "Building OpenClaw image (this may take 10-15 minutes)..."
61
+ f_print_substep "Image name: $IMAGE_NAME"
62
+ f_print_substep "Includes: git, curl, jq, build-essential, Chromium/Playwright"
63
+ if sudo docker build -t "$IMAGE_NAME" -f "$BUILD_DIR/Dockerfile.full" "$BUILD_DIR"; then
64
+ f_print_success "OpenClaw image built successfully"
65
+ else
66
+ f_print_error "Failed to build OpenClaw image"
67
+ return 1
68
+ fi
69
+ fi
70
+
71
+ # Step 8: Read the gateway token Deployrr generated and write it to the service env file.
72
+ # We use env_file: in compose (not Docker secrets) because Docker Compose standalone secrets
73
+ # are bind-mounted with the host file's permissions (root:root 0600), and mode: in compose
74
+ # does NOT override host permissions for file-type secrets. env_file is read by the Docker
75
+ # daemon (root) and injected as env vars — the container process never reads any file.
76
+ f_print_substep "Reading gateway token from Docker secret..."
77
+ sudo mkdir -p "$DOCKER_FOLDER/secrets"
78
+ GATEWAY_TOKEN=$(sudo cat "$DOCKER_FOLDER/secrets/openclaw_gateway_token" 2>/dev/null)
79
+ if [[ -z "$GATEWAY_TOKEN" ]]; then
80
+ f_print_error "Gateway token secret not found — Deployrr should have created it before pre-install"
81
+ return 1
82
+ fi
83
+
84
+ # Write the env file that compose injects via env_file:
85
+ # root:root 0600 — only root can read it on the host; Docker daemon reads it as root
86
+ sudo bash -c "printf 'OPENCLAW_GATEWAY_TOKEN=%s\n' '$GATEWAY_TOKEN' > '$DOCKER_FOLDER/secrets/openclaw.env'"
87
+ sudo chmod 600 "$DOCKER_FOLDER/secrets/openclaw.env"
88
+ sudo chown root:root "$DOCKER_FOLDER/secrets/openclaw.env"
89
+ export OPENCLAW_GATEWAY_TOKEN="$GATEWAY_TOKEN"
90
+ f_print_success "Gateway token written to env file (root:root 0600)"
91
+
92
+ # Step 6b: Clean stale device identity/pairing state from previous installs
93
+ # These directories cache device-auth and paired-device data tied to the old token.
94
+ # Without cleaning them, a new token causes "1008: pairing required" errors.
95
+ f_print_substep "Cleaning stale device pairing state..."
96
+ for _stale_dir in identity devices credentials sessions; do
97
+ if sudo test -d "$CONFIG_DIR/$_stale_dir"; then
98
+ sudo rm -rf "$CONFIG_DIR/$_stale_dir"
99
+ f_print_substep "Removed stale $_stale_dir directory"
100
+ fi
101
+ done
102
+
103
+ # Step 7: Ensure config directory exists
104
+ # NOTE: openclaw.json is written in post-install AFTER the container starts.
105
+ # The container overwrites openclaw.json on first startup (normalizes it),
106
+ # so writing it here would be immediately discarded. Post-install writes it
107
+ # after the container has done its first-run initialization, then restarts
108
+ # the container so it picks up allowInsecureAuth and trustedProxies.
109
+ f_print_substep "Preparing OpenClaw config directory..."
110
+ sudo mkdir -p "$CONFIG_DIR"
111
+
112
+
113
+
114
+ # Step 8: Set ownership of ALL volume-mounted directories (container runs as node:1000)
115
+ f_print_substep "Setting directory ownership (UID 1000 for node user)..."
116
+ sudo mkdir -p "$DOCKER_FOLDER/appdata/openclaw/home"
117
+ sudo chown -R 1000:1000 "$CONFIG_DIR"
118
+ sudo chown -R 1000:1000 "$DOCKER_FOLDER/appdata/openclaw/workspace"
119
+ sudo chown -R 1000:1000 "$DOCKER_FOLDER/appdata/openclaw/home"
120
+
121
+ # Step 9: Run non-interactive onboard to create device identity
122
+ # This is CRITICAL — without it, the gateway has no approved devices and
123
+ # all connections (browser UI, CLI) get "1008: pairing required".
124
+ # Upstream flow: build → onboard → start gateway. We replicate this with raw docker run.
125
+ f_print_substep "Running OpenClaw onboarding (creating device identity)..."
126
+
127
+ # Build onboard args — with or without 9Router provider
128
+ ONBOARD_ARGS=(
129
+ "onboard" "--non-interactive" "--accept-risk"
130
+ "--gateway-port" "18789"
131
+ "--gateway-bind" "lan"
132
+ "--no-install-daemon"
133
+ "--skip-skills"
134
+ )
135
+
136
+ # If 9Router is running, configure it as the provider during onboard
137
+ if sudo docker ps --format '{{.Names}}' 2>/dev/null | grep -q '^9router$'; then
138
+ ONBOARD_ARGS+=(
139
+ "--auth-choice" "custom-api-key"
140
+ "--custom-base-url" "http://9router:20128/v1"
141
+ "--custom-model-id" "auto"
142
+ "--custom-api-key" "sk_9router"
143
+ "--custom-provider-id" "9router"
144
+ "--custom-compatibility" "openai"
145
+ )
146
+ fi
147
+
148
+ # Run onboard via raw docker run (not compose — avoids timing issues)
149
+ # Must use same volumes so identity is written to the shared config dir
150
+ # Pass OPENCLAW_GATEWAY_TOKEN so onboarding registers this gateway's identity
151
+ # with the correct token (the one Deployrr generated and stored in the secret).
152
+ if sudo docker run --rm \
153
+ -e HOME=/home/node \
154
+ -e OPENCLAW_GATEWAY_TOKEN="$GATEWAY_TOKEN" \
155
+ -v "$CONFIG_DIR:/home/node/.openclaw" \
156
+ -v "$DOCKER_FOLDER/appdata/openclaw/workspace:/home/node/.openclaw/workspace" \
157
+ --user 1000:1000 \
158
+ "$IMAGE_NAME" \
159
+ node openclaw.mjs "${ONBOARD_ARGS[@]}" 2>&1; then
160
+ f_print_success "Device identity created — pairing will be automatic"
161
+ else
162
+ f_print_warning "Onboard returned non-zero (may still work — identity might already exist)"
163
+ fi
164
+
165
+ # Step 10: Verify Docker socket access for sandbox support
166
+ f_print_substep "Checking Docker socket access for sandbox support..."
167
+ if [[ -S /var/run/docker.sock ]]; then
168
+ f_print_substep "Docker socket available — sandbox features enabled"
169
+ f_print_substep "Chromium/Playwright pre-installed in image (no first-run download needed)"
170
+ else
171
+ f_print_warning "Docker socket not found — sandbox features will be limited"
172
+ fi
173
+
174
+ f_print_success "OpenClaw pre-install completed"
@@ -0,0 +1,178 @@
1
+ {
2
+ "$schema": "../../../apps/manifest-schema.json",
3
+ "version": "1.2",
4
+ "app": {
5
+ "sname": "openclaw",
6
+ "pname": "OpenClaw",
7
+ "description": "Power-user OpenClaw deployment with agent sandboxing, persistent home volume, and Playwright browser support. WARNING: Mounts Docker socket to enable agent sandbox containers — grants the container access to the host Docker daemon.",
8
+ "descriptionShort": "AI assistant w/ sandbox (9Router rec.)",
9
+ "icon": "https://raw.githubusercontent.com/openclaw/openclaw/main/ui/public/favicon.svg",
10
+ "category": "unofficial",
11
+ "menuNumber": "06",
12
+ "tags": [
13
+ "ai",
14
+ "development",
15
+ "coding",
16
+ "llm",
17
+ "pro",
18
+ "risky"
19
+ ]
20
+ },
21
+ "deployment": {
22
+ "type": "single",
23
+ "compose": "compose.yml",
24
+ "profiles": [
25
+ "apps",
26
+ "all"
27
+ ],
28
+ "networks": [
29
+ "default"
30
+ ],
31
+ "build": {
32
+ "imageName": "deployrr/openclaw:latest",
33
+ "localBuild": true
34
+ },
35
+ "webui": true,
36
+ "port": 18789,
37
+ "protocol": "http"
38
+ },
39
+ "requirements": {
40
+ "prerequisites": [
41
+ "prerequisites",
42
+ "pro"
43
+ ]
44
+ },
45
+ "env": {
46
+ "variables": [
47
+ {
48
+ "name": "OPENCLAW_PORT",
49
+ "description": "OpenClaw gateway web interface port",
50
+ "type": "port",
51
+ "default": 18789,
52
+ "prompt": true,
53
+ "required": true,
54
+ "validation": {
55
+ "type": "port",
56
+ "min": 1,
57
+ "max": 65535
58
+ }
59
+ },
60
+ {
61
+ "name": "OPENCLAW_OLLAMA_HEARTBEAT",
62
+ "description": "Route heartbeats to Ollama (free) instead of paid API",
63
+ "promptText": "Route heartbeats to a FREE local LLM via Ollama?\n\nBy default, OpenClaw heartbeats use your paid API.\nIf you have Ollama installed, this will pull llama3.2:3b\nand route heartbeat checks through it instead — saving\n~$5-15/month on API costs.\n\nRequires: Ollama container running.\n\nType 'yes' to enable or 'no' to skip:",
64
+ "type": "string",
65
+ "default": "no",
66
+ "prompt": true,
67
+ "required": false
68
+ }
69
+ ],
70
+ "secrets": [
71
+ {
72
+ "name": "openclaw_gateway_token",
73
+ "description": "Gateway authentication token — passed to the gateway process via OPENCLAW_GATEWAY_TOKEN env var. Generated by Deployrr and stored as a Docker secret.",
74
+ "type": "random",
75
+ "length": 32,
76
+ "addToCompose": false
77
+ },
78
+ {
79
+ "name": "openclaw.env",
80
+ "description": "Derived env file written by pre-install containing OPENCLAW_GATEWAY_TOKEN. Used by compose via env_file: since Docker standalone secrets cannot override host file permissions.",
81
+ "type": "derived",
82
+ "addToCompose": false
83
+ }
84
+ ],
85
+ "constants": [
86
+ {
87
+ "name": "OPENCLAW_CONFIG_DIR",
88
+ "value": "$DOCKERDIR/appdata/openclaw/config",
89
+ "description": "OpenClaw configuration directory"
90
+ },
91
+ {
92
+ "name": "OPENCLAW_WORKSPACE_DIR",
93
+ "value": "$DOCKERDIR/appdata/openclaw/workspace",
94
+ "description": "OpenClaw workspace directory"
95
+ }
96
+ ]
97
+ },
98
+ "hooks": {
99
+ "preInstall": {
100
+ "runOnUpdate": true,
101
+ "dialog": {
102
+ "type": "warning",
103
+ "title": "OpenClaw - RISKY Deployment",
104
+ "message": "\\Z1⚠ SECURITY WARNING:\\Zn This deployment mounts the Docker socket.\\n\\nThis grants the container full access to your host Docker daemon, which allows it to:\\n• Create and destroy containers on your host\\n• Access host networking and volumes\\n• Potentially escalate privileges\\n\\nThis enables the \\Z4Agent Sandbox\\Zn feature (isolated containers per agent) and \\Z4Playwright\\Zn browser automation.\\n\\nOnly install this if you understand the risks.\\n\\nDo you want to proceed?"
105
+ },
106
+ "script": "files/pre-install.sh"
107
+ },
108
+ "postInstall": {
109
+ "script": "files/post-install.sh",
110
+ "messages": [
111
+ {
112
+ "style": "info",
113
+ "text": "OpenClaw gateway is running at http://$SERVER_LAN_IP:$OPENCLAW_PORT"
114
+ },
115
+ {
116
+ "style": "note",
117
+ "text": "Your gateway token has been saved to $DOCKER_FOLDER/secrets/openclaw_gateway_token"
118
+ },
119
+ {
120
+ "style": "info",
121
+ "text": "Traefik handles authentication automatically — no token or device pairing needed via your domain URL."
122
+ },
123
+ {
124
+ "style": "info",
125
+ "text": "If 9Router is installed: Open 9Router dashboard → Providers → connect at least one provider → OpenClaw is ready!"
126
+ },
127
+ {
128
+ "style": "note",
129
+ "text": "If 9Router is NOT installed: Configure API providers manually via OpenClaw Settings or use: docker exec -it openclaw openclaw configure"
130
+ },
131
+ {
132
+ "style": "warning",
133
+ "text": "Docker socket is mounted — this container can manage host Docker resources."
134
+ },
135
+ {
136
+ "style": "info",
137
+ "text": "Agent sandbox enabled. Build sandbox image: sudo docker compose run --rm openclaw node /app/node_modules/playwright-core/cli.js install chromium"
138
+ },
139
+ {
140
+ "style": "info",
141
+ "text": "If Ollama heartbeat was configured, heartbeats use ollama/llama3.2:3b (free) instead of your paid API."
142
+ },
143
+ {
144
+ "style": "info",
145
+ "text": "For more info: https://docs.openclaw.ai/install/docker#power-user-%2F-full-featured-container-opt-in"
146
+ }
147
+ ],
148
+ "copyValue": "$OPENCLAW_GATEWAY_TOKEN",
149
+ "copyLabel": "Copy Token"
150
+ }
151
+ },
152
+ "folders": {
153
+ "appdata": [
154
+ "config",
155
+ "workspace"
156
+ ]
157
+ },
158
+ "traefik": {
159
+ "supported": true
160
+ },
161
+ "dashboard": {
162
+ "enabled": true,
163
+ "location": "local",
164
+ "showStats": true,
165
+ "portVariable": "OPENCLAW_PORT"
166
+ },
167
+ "status": {
168
+ "file": "06_openclaw_status",
169
+ "successMessage": "OpenClaw Setup Completed",
170
+ "telemetryAction": "openclaw"
171
+ },
172
+ "removal": {
173
+ "browserLocalStorageKeys": [
174
+ "openclaw.control.settings.v1",
175
+ "openclaw-device-identity-v1"
176
+ ]
177
+ }
178
+ }
@@ -0,0 +1,67 @@
1
+ # CORE APPS
2
+ AUTHENTIK_VERSION_PIN_DEFAULT='2025.12.1'
3
+ AUTHENTIKWORKER_VERSION_PIN_DEFAULT='2025.12.1'
4
+ AUTHENTIKPOSTGRESQL_VERSION_PIN_DEFAULT='16-alpine'
5
+ AUTHELIA_VERSION_PIN_DEFAULT='4.39.15'
6
+ TINYAUTH_VERSION_PIN_DEFAULT='v5'
7
+ TRAEFIK_VERSION_PIN_DEFAULT='3.6'
8
+ TRAEFIKBOUNCER_VERSION_PIN_DEFAULT='v1.4.7'
9
+ DEPLOYRRDASHBOARD_VERSION_PIN_DEFAULT='v1.9.0'
10
+ NPM_VERSION_PIN_DEFAULT='2.13.2'
11
+ OAUTH_VERSION_PIN_DEFAULT='latest'
12
+
13
+ # OFFICIAL APPS
14
+ POSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
15
+ N8N_VERSION_PIN_DEFAULT='2.7.0'
16
+ N8NPOSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
17
+ IMMICH_VERSION_PIN_DEFAULT='v2.5.3'
18
+ IMMICHPOSTGRESQL_VERSION_PIN_DEFAULT='14-vectorchord0.4.3-pgvectors0.2.0'
19
+ IMMICHREDIS_VERSION_PIN_DEFAULT='alpine'
20
+ IMMICHMACHINELEARNING_VERSION_PIN_DEFAULT='v2.5.3'
21
+ AUTOBRR_VERSION_PIN_DEFAULT='latest'
22
+ AUTOBRRPOSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
23
+ GAMEVAULT_VERSION_PIN_DEFAULT='latest'
24
+ GAMEVAULTPOSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
25
+ DOCKHAND_VERSION_PIN_DEFAULT='latest'
26
+ DOCKHANDPOSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
27
+ GUACAMOLE_VERSION_PIN_DEFAULT='latest'
28
+ GUACAMOLEMARIADB_VERSION_PIN_DEFAULT='latest'
29
+ GUACD_VERSION_PIN_DEFAULT='latest'
30
+ FLOWISE_VERSION_PIN_DEFAULT='latest'
31
+ FLOWISEPOSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
32
+ FLOWISEREDIS_VERSION_PIN_DEFAULT='alpine'
33
+ SEARXNGREDIS_VERSION_PIN_DEFAULT='alpine'
34
+ PDFDING_VERSION_PIN_DEFAULT='latest'
35
+ PDFDINGPOSTGRESQL_VERSION_PIN_DEFAULT='18-alpine'
36
+ NEXTCLOUD_VERSION_PIN_DEFAULT='latest'
37
+ NEXTCLOUDMARIADB_VERSION_PIN_DEFAULT='latest'
38
+ NEXTCLOUDREDIS_VERSION_PIN_DEFAULT='alpine'
39
+ SCRUTINY_VERSION_PIN_DEFAULT='master-web'
40
+ SCRUTINYINFLUXDB_VERSION_PIN_DEFAULT='2-alpine'
41
+ PAPERLESSNGX_VERSION_PIN_DEFAULT='latest'
42
+ PAPERLESSNGXMARIADB_VERSION_PIN_DEFAULT='latest'
43
+ PAPERLESSNGXREDIS_VERSION_PIN_DEFAULT='alpine'
44
+ GOTENBERG_VERSION_PIN_DEFAULT='latest'
45
+ TIKA_VERSION_PIN_DEFAULT='latest'
46
+ LANGFUSE_VERSION_PIN_DEFAULT='3'
47
+ LANGFUSEWORKER_VERSION_PIN_DEFAULT='3'
48
+ LANGFUSEPOSTGRESQL_VERSION_PIN_DEFAULT='17-alpine'
49
+ LANGFUSEREDIS_VERSION_PIN_DEFAULT='7-alpine'
50
+ LANGFUSECLICKHOUSE_VERSION_PIN_DEFAULT='latest'
51
+ LANGFUSEMINIO_VERSION_PIN_DEFAULT='latest'
52
+ SUPABASE_VERSION_PIN_DEFAULT='2026.02.16-sha-26c615c'
53
+ SUPABASEKONG_VERSION_PIN_DEFAULT='2.8.1'
54
+ SUPABASEAUTH_VERSION_PIN_DEFAULT='v2.186.0'
55
+ SUPABASEREST_VERSION_PIN_DEFAULT='v14.5'
56
+ SUPABASEREALTIME_VERSION_PIN_DEFAULT='v2.76.5'
57
+ SUPABASESTORAGE_VERSION_PIN_DEFAULT='v1.37.8'
58
+ SUPABASEIMGPROXY_VERSION_PIN_DEFAULT='v3.30.1'
59
+ SUPABASEMETA_VERSION_PIN_DEFAULT='v0.95.2'
60
+ SUPABASEFUNCTIONS_VERSION_PIN_DEFAULT='v1.70.3'
61
+ SUPABASEANALYTICS_VERSION_PIN_DEFAULT='1.31.2'
62
+ SUPABASEDB_VERSION_PIN_DEFAULT='15.8.1.085'
63
+ SUPABASEVECTOR_VERSION_PIN_DEFAULT='0.53.0-alpine'
64
+ SUPABASEPOOLER_VERSION_PIN_DEFAULT='2.7.4'
65
+
66
+ # COMMUNITY APPS
67
+ # (none yet)
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ DEPLOYRR_DIR="/opt/deployrr"
6
+
7
+ echo "🚀 Deployrr Installer"
8
+ echo "━━━━━━━━━━━━━━━━━━━━━"
9
+
10
+ if [[ $EUID -ne 0 ]]; then
11
+ echo "This installer requires root privileges."
12
+ echo "Run: sudo npx @simplehomelab/deployrr"
13
+ exit 1
14
+ fi
15
+
16
+ # Create runtime directories
17
+ mkdir -p "$DEPLOYRR_DIR/apps"
18
+
19
+ # Copy app files from npm package
20
+ echo "📦 Installing app files..."
21
+ cp -r "$SCRIPT_DIR/apps/"* "$DEPLOYRR_DIR/apps/"
22
+ cp "$SCRIPT_DIR/latest-version" "$DEPLOYRR_DIR/" 2>/dev/null || true
23
+ cp "$SCRIPT_DIR/announcement" "$DEPLOYRR_DIR/" 2>/dev/null || true
24
+
25
+ # Detect architecture
26
+ ARCH=$(uname -m)
27
+ case "$ARCH" in
28
+ x86_64) ARCH_SUFFIX="" ;;
29
+ aarch64) ARCH_SUFFIX="-arm" ;;
30
+ *)
31
+ echo "❌ Unsupported architecture: $ARCH"
32
+ exit 1
33
+ ;;
34
+ esac
35
+
36
+ VERSION=$(cat "$SCRIPT_DIR/latest-version" 2>/dev/null || echo "6.0")
37
+ BINARY="deployrr_v${VERSION}${ARCH_SUFFIX}.app"
38
+
39
+ echo "📥 Downloading Deployrr v${VERSION} (${ARCH})..."
40
+ if curl -fsSL -o "$DEPLOYRR_DIR/$BINARY" \
41
+ "https://files.deployrr.app/binary/${VERSION}/${ARCH}"; then
42
+ chmod +x "$DEPLOYRR_DIR/$BINARY"
43
+ echo ""
44
+ echo "✅ Deployrr v${VERSION} installed to $DEPLOYRR_DIR/$BINARY"
45
+ echo " Run: sudo $DEPLOYRR_DIR/$BINARY"
46
+ else
47
+ echo "❌ Download failed. Check your internet connection."
48
+ exit 1
49
+ fi
package/latest-version ADDED
@@ -0,0 +1 @@
1
+ 6.0
package/package.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "@simplehomelab/deployrr",
3
+ "version": "6.0.0-rc3",
4
+ "description": "Deployrr - Docker homelab deployment manager",
5
+ "bin": {
6
+ "deployrr": "./bin/deployrr-init.sh"
7
+ },
8
+ "files": [
9
+ "apps/",
10
+ "bin/",
11
+ "latest-version",
12
+ "announcement"
13
+ ],
14
+ "keywords": ["docker", "homelab", "deployment", "compose"],
15
+ "author": "SimpleHomelab",
16
+ "license": "UNLICENSED",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "https://github.com/SimpleHomelab/Deployrr.git"
20
+ }
21
+ }