percher 1.4.0 → 1.4.1

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 (314) hide show
  1. package/LICENSE +0 -0
  2. package/THIRD-PARTY-NOTICES.txt +0 -0
  3. package/dist/bin/percher.d.ts +0 -0
  4. package/dist/bin/percher.d.ts.map +0 -0
  5. package/dist/bin/percher.js +858 -300
  6. package/dist/bin/percher.js.map +0 -0
  7. package/dist/package.json +5 -5
  8. package/dist/src/ci-env.d.ts +0 -0
  9. package/dist/src/ci-env.d.ts.map +0 -0
  10. package/dist/src/ci-env.js +0 -0
  11. package/dist/src/ci-env.js.map +0 -0
  12. package/dist/src/cli-utils.d.ts +0 -0
  13. package/dist/src/cli-utils.d.ts.map +0 -0
  14. package/dist/src/cli-utils.js +0 -0
  15. package/dist/src/cli-utils.js.map +0 -0
  16. package/dist/src/commands/account.d.ts +0 -0
  17. package/dist/src/commands/account.d.ts.map +0 -0
  18. package/dist/src/commands/account.js +0 -0
  19. package/dist/src/commands/account.js.map +0 -0
  20. package/dist/src/commands/admin.d.ts +0 -0
  21. package/dist/src/commands/admin.d.ts.map +0 -0
  22. package/dist/src/commands/admin.js +0 -0
  23. package/dist/src/commands/admin.js.map +0 -0
  24. package/dist/src/commands/analytics.d.ts +0 -0
  25. package/dist/src/commands/analytics.d.ts.map +0 -0
  26. package/dist/src/commands/analytics.js +0 -0
  27. package/dist/src/commands/analytics.js.map +0 -0
  28. package/dist/src/commands/apps.d.ts +0 -0
  29. package/dist/src/commands/apps.d.ts.map +0 -0
  30. package/dist/src/commands/apps.js +0 -0
  31. package/dist/src/commands/apps.js.map +0 -0
  32. package/dist/src/commands/auth.d.ts +0 -0
  33. package/dist/src/commands/auth.d.ts.map +0 -0
  34. package/dist/src/commands/auth.js +0 -0
  35. package/dist/src/commands/auth.js.map +0 -0
  36. package/dist/src/commands/data-records.d.ts +0 -0
  37. package/dist/src/commands/data-records.d.ts.map +0 -0
  38. package/dist/src/commands/data-records.js +0 -0
  39. package/dist/src/commands/data-records.js.map +0 -0
  40. package/dist/src/commands/data.d.ts +0 -0
  41. package/dist/src/commands/data.d.ts.map +0 -0
  42. package/dist/src/commands/data.js +0 -0
  43. package/dist/src/commands/data.js.map +0 -0
  44. package/dist/src/commands/deploys.d.ts +0 -0
  45. package/dist/src/commands/deploys.d.ts.map +0 -0
  46. package/dist/src/commands/deploys.js +0 -0
  47. package/dist/src/commands/deploys.js.map +0 -0
  48. package/dist/src/commands/env.d.ts +0 -0
  49. package/dist/src/commands/env.d.ts.map +0 -0
  50. package/dist/src/commands/env.js +0 -0
  51. package/dist/src/commands/env.js.map +0 -0
  52. package/dist/src/commands/export.d.ts +0 -0
  53. package/dist/src/commands/export.d.ts.map +0 -0
  54. package/dist/src/commands/export.js +0 -0
  55. package/dist/src/commands/export.js.map +0 -0
  56. package/dist/src/commands/github.d.ts +0 -0
  57. package/dist/src/commands/github.d.ts.map +0 -0
  58. package/dist/src/commands/github.js +0 -0
  59. package/dist/src/commands/github.js.map +0 -0
  60. package/dist/src/commands/hooks.d.ts +0 -0
  61. package/dist/src/commands/hooks.d.ts.map +0 -0
  62. package/dist/src/commands/hooks.js +0 -0
  63. package/dist/src/commands/hooks.js.map +0 -0
  64. package/dist/src/commands/migrate.d.ts +0 -0
  65. package/dist/src/commands/migrate.d.ts.map +0 -0
  66. package/dist/src/commands/migrate.js +0 -0
  67. package/dist/src/commands/migrate.js.map +0 -0
  68. package/dist/src/commands/sharing.d.ts +0 -0
  69. package/dist/src/commands/sharing.d.ts.map +0 -0
  70. package/dist/src/commands/sharing.js +0 -0
  71. package/dist/src/commands/sharing.js.map +0 -0
  72. package/dist/src/commands/status.d.ts +0 -0
  73. package/dist/src/commands/status.d.ts.map +0 -0
  74. package/dist/src/commands/status.js +0 -0
  75. package/dist/src/commands/status.js.map +0 -0
  76. package/dist/src/commands/telemetry.d.ts +0 -0
  77. package/dist/src/commands/telemetry.d.ts.map +0 -0
  78. package/dist/src/commands/telemetry.js +0 -0
  79. package/dist/src/commands/telemetry.js.map +0 -0
  80. package/dist/src/commands/token.d.ts +0 -0
  81. package/dist/src/commands/token.d.ts.map +0 -0
  82. package/dist/src/commands/token.js +0 -0
  83. package/dist/src/commands/token.js.map +0 -0
  84. package/dist/src/commands/transfers.d.ts +0 -0
  85. package/dist/src/commands/transfers.d.ts.map +0 -0
  86. package/dist/src/commands/transfers.js +0 -0
  87. package/dist/src/commands/transfers.js.map +0 -0
  88. package/dist/src/context.d.ts +0 -0
  89. package/dist/src/context.d.ts.map +0 -0
  90. package/dist/src/context.js +0 -0
  91. package/dist/src/context.js.map +0 -0
  92. package/dist/src/env-set-input.d.ts +0 -0
  93. package/dist/src/env-set-input.d.ts.map +0 -0
  94. package/dist/src/env-set-input.js +0 -0
  95. package/dist/src/env-set-input.js.map +0 -0
  96. package/dist/src/index.d.ts +0 -0
  97. package/dist/src/index.d.ts.map +0 -0
  98. package/dist/src/index.js +0 -0
  99. package/dist/src/index.js.map +0 -0
  100. package/dist/src/open.d.ts +0 -0
  101. package/dist/src/open.d.ts.map +0 -0
  102. package/dist/src/open.js +0 -0
  103. package/dist/src/open.js.map +0 -0
  104. package/dist/src/output.d.ts +0 -0
  105. package/dist/src/output.d.ts.map +0 -0
  106. package/dist/src/output.js +0 -0
  107. package/dist/src/output.js.map +0 -0
  108. package/dist/src/prompt-hidden.d.ts +0 -0
  109. package/dist/src/prompt-hidden.d.ts.map +0 -0
  110. package/dist/src/prompt-hidden.js +0 -0
  111. package/dist/src/prompt-hidden.js.map +0 -0
  112. package/dist/src/prompt.d.ts +0 -0
  113. package/dist/src/prompt.d.ts.map +0 -0
  114. package/dist/src/prompt.js +0 -0
  115. package/dist/src/prompt.js.map +0 -0
  116. package/dist/src/security-output.d.ts +0 -0
  117. package/dist/src/security-output.d.ts.map +0 -0
  118. package/dist/src/security-output.js +0 -0
  119. package/dist/src/security-output.js.map +0 -0
  120. package/dist/src/telemetry.d.ts +0 -0
  121. package/dist/src/telemetry.d.ts.map +0 -0
  122. package/dist/src/telemetry.js +0 -0
  123. package/dist/src/telemetry.js.map +0 -0
  124. package/dist/src/version-check.d.ts +0 -0
  125. package/dist/src/version-check.d.ts.map +0 -0
  126. package/dist/src/version-check.js +0 -0
  127. package/dist/src/version-check.js.map +0 -0
  128. package/dist/templates/LICENSE +0 -0
  129. package/dist/templates/astro/Caddyfile +5 -1
  130. package/dist/templates/astro/Dockerfile +14 -15
  131. package/dist/templates/astro/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  132. package/dist/templates/astro/astro.config.mjs +0 -0
  133. package/dist/templates/astro/package.json +0 -0
  134. package/dist/templates/astro/percher.toml +0 -0
  135. package/dist/templates/astro/src/pages/index.astro +0 -0
  136. package/dist/templates/bun/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  137. package/dist/templates/bun/index.ts +0 -0
  138. package/dist/templates/bun/package.json +0 -0
  139. package/dist/templates/bun/percher.toml +0 -0
  140. package/dist/templates/capsule/Caddyfile +0 -0
  141. package/dist/templates/capsule/Dockerfile +9 -14
  142. package/dist/templates/capsule/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  143. package/dist/templates/capsule/index.html +0 -0
  144. package/dist/templates/capsule/package.json +0 -0
  145. package/dist/templates/capsule/pb/schema.json +0 -0
  146. package/dist/templates/capsule/percher.toml +0 -0
  147. package/dist/templates/capsule/src/App.tsx +0 -0
  148. package/dist/templates/capsule/src/components/Auth.tsx +0 -0
  149. package/dist/templates/capsule/src/components/SignInWithGoogle.tsx +0 -0
  150. package/dist/templates/capsule/src/lib/ai-client.ts +0 -0
  151. package/dist/templates/capsule/src/lib/ai.ts +0 -0
  152. package/dist/templates/capsule/src/lib/db.ts +0 -0
  153. package/dist/templates/capsule/src/lib/realtime.ts +0 -0
  154. package/dist/templates/capsule/src/main.tsx +0 -0
  155. package/dist/templates/capsule/tsconfig.json +0 -0
  156. package/dist/templates/capsule/vite.config.ts +0 -0
  157. package/dist/templates/django/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  158. package/dist/templates/django/Procfile +0 -0
  159. package/dist/templates/django/app/__init__.py +0 -0
  160. package/dist/templates/django/app/settings.py +0 -0
  161. package/dist/templates/django/app/urls.py +0 -0
  162. package/dist/templates/django/app/wsgi.py +0 -0
  163. package/dist/templates/django/manage.py +0 -0
  164. package/dist/templates/django/percher.toml +0 -0
  165. package/dist/templates/django/requirements.txt +0 -0
  166. package/dist/templates/dotnet/Dockerfile +0 -0
  167. package/dist/templates/dotnet/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  168. package/dist/templates/dotnet/Program.cs +0 -0
  169. package/dist/templates/dotnet/app.csproj +0 -0
  170. package/dist/templates/dotnet/percher.toml +0 -0
  171. package/dist/templates/eleventy/.eleventy.js +0 -0
  172. package/dist/templates/eleventy/Caddyfile +5 -1
  173. package/dist/templates/eleventy/Dockerfile +14 -15
  174. package/dist/templates/eleventy/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  175. package/dist/templates/eleventy/package.json +0 -0
  176. package/dist/templates/eleventy/percher.toml +0 -0
  177. package/dist/templates/eleventy/src/_includes/base.njk +0 -0
  178. package/dist/templates/eleventy/src/assets/style.css +0 -0
  179. package/dist/templates/eleventy/src/index.md +0 -0
  180. package/dist/templates/elysia/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  181. package/dist/templates/elysia/index.ts +0 -0
  182. package/dist/templates/elysia/package.json +0 -0
  183. package/dist/templates/elysia/percher.toml +0 -0
  184. package/dist/templates/express/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  185. package/dist/templates/express/index.ts +0 -0
  186. package/dist/templates/express/package.json +0 -0
  187. package/dist/templates/express/percher.toml +0 -0
  188. package/dist/templates/fastify/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  189. package/dist/templates/fastify/index.ts +0 -0
  190. package/dist/templates/fastify/package.json +0 -0
  191. package/dist/templates/fastify/percher.toml +0 -0
  192. package/dist/templates/flask/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  193. package/dist/templates/flask/main.py +0 -0
  194. package/dist/templates/flask/percher.toml +0 -0
  195. package/dist/templates/flask/requirements.txt +0 -0
  196. package/dist/templates/go/Dockerfile +0 -0
  197. package/dist/templates/go/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  198. package/dist/templates/go/go.mod +0 -0
  199. package/dist/templates/go/main.go +0 -0
  200. package/dist/templates/go/percher.toml +0 -0
  201. package/dist/templates/hono/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  202. package/dist/templates/hono/index.ts +0 -0
  203. package/dist/templates/hono/package.json +0 -0
  204. package/dist/templates/hono/percher.toml +0 -0
  205. package/dist/templates/htmx/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  206. package/dist/templates/htmx/index.ts +0 -0
  207. package/dist/templates/htmx/package.json +0 -0
  208. package/dist/templates/htmx/percher.toml +0 -0
  209. package/dist/templates/hugo/Caddyfile +0 -0
  210. package/dist/templates/hugo/Dockerfile +9 -14
  211. package/dist/templates/hugo/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  212. package/dist/templates/hugo/content/_index.md +0 -0
  213. package/dist/templates/hugo/hugo.toml +0 -0
  214. package/dist/templates/hugo/layouts/index.html +0 -0
  215. package/dist/templates/hugo/percher.toml +0 -0
  216. package/dist/templates/java/Dockerfile +0 -0
  217. package/dist/templates/java/Main.java +0 -0
  218. package/dist/templates/java/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  219. package/dist/templates/java/percher.toml +0 -0
  220. package/dist/templates/laravel/Dockerfile +0 -0
  221. package/dist/templates/laravel/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  222. package/dist/templates/laravel/composer.json +0 -0
  223. package/dist/templates/laravel/percher.toml +0 -0
  224. package/dist/templates/laravel/public/index.php +0 -0
  225. package/dist/templates/nextjs/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  226. package/dist/templates/nextjs/app/api/health/route.ts +0 -0
  227. package/dist/templates/nextjs/app/layout.tsx +0 -0
  228. package/dist/templates/nextjs/app/page.tsx +0 -0
  229. package/dist/templates/nextjs/next.config.mjs +0 -0
  230. package/dist/templates/nextjs/package.json +0 -0
  231. package/dist/templates/nextjs/percher.toml +0 -0
  232. package/dist/templates/node/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  233. package/dist/templates/node/index.js +0 -0
  234. package/dist/templates/node/package.json +0 -0
  235. package/dist/templates/node/percher.toml +0 -0
  236. package/dist/templates/nuxt/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  237. package/dist/templates/nuxt/app.vue +0 -0
  238. package/dist/templates/nuxt/nuxt.config.ts +0 -0
  239. package/dist/templates/nuxt/package.json +0 -0
  240. package/dist/templates/nuxt/percher.toml +0 -0
  241. package/dist/templates/nuxt/server/api/health.ts +0 -0
  242. package/dist/templates/phoenix/Dockerfile +0 -0
  243. package/dist/templates/phoenix/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  244. package/dist/templates/phoenix/lib/application.ex +0 -0
  245. package/dist/templates/phoenix/lib/router.ex +0 -0
  246. package/dist/templates/phoenix/mix.exs +0 -0
  247. package/dist/templates/phoenix/percher.toml +0 -0
  248. package/dist/templates/preact/Caddyfile +6 -2
  249. package/dist/templates/preact/Dockerfile +14 -15
  250. package/dist/templates/preact/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  251. package/dist/templates/preact/index.html +0 -0
  252. package/dist/templates/preact/package.json +0 -0
  253. package/dist/templates/preact/percher.toml +0 -0
  254. package/dist/templates/preact/src/main.tsx +0 -0
  255. package/dist/templates/preact/vite.config.ts +0 -0
  256. package/dist/templates/python/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  257. package/dist/templates/python/main.py +0 -0
  258. package/dist/templates/python/nixpacks.toml +0 -0
  259. package/dist/templates/python/percher.toml +0 -0
  260. package/dist/templates/python/requirements.txt +0 -0
  261. package/dist/templates/rails/Dockerfile +0 -0
  262. package/dist/templates/rails/Gemfile +0 -0
  263. package/dist/templates/rails/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  264. package/dist/templates/rails/config.ru +0 -0
  265. package/dist/templates/rails/percher.toml +0 -0
  266. package/dist/templates/remix/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  267. package/dist/templates/remix/app/root.tsx +0 -0
  268. package/dist/templates/remix/app/routes/_index.tsx +0 -0
  269. package/dist/templates/remix/app/routes/health.tsx +0 -0
  270. package/dist/templates/remix/package.json +0 -0
  271. package/dist/templates/remix/percher.toml +0 -0
  272. package/dist/templates/remix/vite.config.ts +0 -0
  273. package/dist/templates/rust/Cargo.toml +0 -0
  274. package/dist/templates/rust/Dockerfile +0 -0
  275. package/dist/templates/rust/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  276. package/dist/templates/rust/percher.toml +0 -0
  277. package/dist/templates/rust/src/main.rs +0 -0
  278. package/dist/templates/solid/Caddyfile +6 -2
  279. package/dist/templates/solid/Dockerfile +14 -15
  280. package/dist/templates/solid/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  281. package/dist/templates/solid/index.html +0 -0
  282. package/dist/templates/solid/package.json +0 -0
  283. package/dist/templates/solid/percher.toml +0 -0
  284. package/dist/templates/solid/src/main.tsx +0 -0
  285. package/dist/templates/solid/vite.config.ts +0 -0
  286. package/dist/templates/static/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  287. package/dist/templates/static/index.html +0 -0
  288. package/dist/templates/static/percher.toml +0 -0
  289. package/dist/templates/static/style.css +0 -0
  290. package/dist/templates/sveltekit/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  291. package/dist/templates/sveltekit/package.json +0 -0
  292. package/dist/templates/sveltekit/percher.toml +0 -0
  293. package/dist/templates/sveltekit/src/app.html +0 -0
  294. package/dist/templates/sveltekit/src/routes/+page.svelte +0 -0
  295. package/dist/templates/sveltekit/src/routes/health/+server.ts +0 -0
  296. package/dist/templates/sveltekit/svelte.config.js +0 -0
  297. package/dist/templates/sveltekit/vite.config.js +0 -0
  298. package/dist/templates/vite-react/Caddyfile +6 -2
  299. package/dist/templates/vite-react/Dockerfile +14 -15
  300. package/dist/templates/vite-react/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  301. package/dist/templates/vite-react/index.html +0 -0
  302. package/dist/templates/vite-react/package.json +0 -0
  303. package/dist/templates/vite-react/percher.toml +0 -0
  304. package/dist/templates/vite-react/src/main.tsx +0 -0
  305. package/dist/templates/vite-react/vite.config.ts +0 -0
  306. package/dist/templates/vite-vue/Caddyfile +6 -2
  307. package/dist/templates/vite-vue/Dockerfile +14 -15
  308. package/dist/templates/vite-vue/PERCHER-TEMPLATE-LICENSE.txt +0 -0
  309. package/dist/templates/vite-vue/index.html +0 -0
  310. package/dist/templates/vite-vue/package.json +0 -0
  311. package/dist/templates/vite-vue/percher.toml +0 -0
  312. package/dist/templates/vite-vue/src/main.ts +0 -0
  313. package/dist/templates/vite-vue/vite.config.ts +0 -0
  314. package/package.json +5 -5
File without changes
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "percher",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "CLI for the Percher hosting platform — publish apps with one command",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,10 +28,10 @@
28
28
  "typecheck": "tsc --noEmit"
29
29
  },
30
30
  "dependencies": {
31
- "@percher/shared": "^1.3.0",
32
- "@percher/client": "^1.4.0",
33
- "@percher/core": "^1.4.0",
34
- "@percher/toml": "^1.0.5",
31
+ "@percher/shared": "^1.3.1",
32
+ "@percher/client": "^1.4.1",
33
+ "@percher/core": "^1.4.1",
34
+ "@percher/toml": "^1.0.6",
35
35
  "cac": "^7.0.0",
36
36
  "picocolors": "^1.1.1"
37
37
  },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/src/index.js CHANGED
File without changes
File without changes
File without changes
File without changes
package/dist/src/open.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,5 +2,9 @@
2
2
  bind 0.0.0.0
3
3
  root * /srv
4
4
  encode gzip zstd
5
- file_server
5
+ route {
6
+ @percher_platform path_regexp percher_platform (?i)(?:^/+(?:percher[.]toml|[.]percherignore|pb|Dockerfile|Caddyfile|[.]git|[.]env|[.]env[.][^/]*|[.]percher-[^/]*)(?:/|$)|(?:^|/)(?:[.]npmrc|[.]pypirc|[.]netrc|_netrc|[.]git-credentials|[.]htpasswd|[.]pgpass|[.]my[.]cnf|[.]dev[.]vars|id_rsa|id_dsa|id_ecdsa|id_ed25519|credentials[.]json|secrets[.]toml|wp-config[.]php|[.]env|[.]ssh|[.]aws|[.]gnupg|[.]docker/config[.]json|[.]kube/config|[.]env[.][^/]*|[.]dev[.]vars[.][^/]*|[^/]*[.]pem|[^/]*[.]key|[^/]*[.]p12|[^/]*[.]pfx|[^/]*[.]jks|[^/]*[.]keystore)(?:/|$))
7
+ respond @percher_platform 404
8
+ file_server
9
+ }
6
10
  }
@@ -10,27 +10,26 @@ WORKDIR /app
10
10
  COPY . .
11
11
  RUN bun install && bun run build
12
12
 
13
+ # Preserve build inputs for deployment; only this filtered copy reaches /srv.
14
+ FROM build AS static-content
15
+ RUN bun -e 'const fs=require("node:fs"),path=require("node:path");const root=fs.realpathSync(process.argv[1]),dir=fs.realpathSync(process.argv[2]),dest=process.argv[3];const deny=new RegExp("(?:^/+(?:percher[.]toml|[.]percherignore|pb|Dockerfile|Caddyfile|[.]git|[.]env|[.]env[.][^/]*|[.]percher-[^/]*)(?:/|$)|(?:^|/)(?:[.]npmrc|[.]pypirc|[.]netrc|_netrc|[.]git-credentials|[.]htpasswd|[.]pgpass|[.]my[.]cnf|[.]dev[.]vars|id_rsa|id_dsa|id_ecdsa|id_ed25519|credentials[.]json|secrets[.]toml|wp-config[.]php|[.]env|[.]ssh|[.]aws|[.]gnupg|[.]docker/config[.]json|[.]kube/config|[.]env[.][^/]*|[.]dev[.]vars[.][^/]*|[^/]*[.]pem|[^/]*[.]key|[^/]*[.]p12|[^/]*[.]pfx|[^/]*[.]jks|[^/]*[.]keystore)(?:/|$))","i");const reserved=p=>deny.test("/"+p.split(path.sep).join("/"));if((dir!==root&&!dir.startsWith(root+path.sep))||reserved(path.relative(root,dir)))throw Error("Static output escapes the project or selects platform content");if(fs.existsSync(dest))throw Error("Reserved static staging directory already exists");fs.cpSync(dir,dest,{recursive:true,filter:p=>{if(reserved(path.relative(dir,p))||reserved(path.relative(root,p)))return false;if(fs.lstatSync(p).isSymbolicLink())throw Error("Static content cannot contain symlinks");return true}})' '/app' '/app/dist' '/percher-static-content'
16
+
13
17
  # --- Serve stage: minimal Caddy image --------------------------------
14
18
  # Build pinned Caddy source with refreshed security modules. The scratch
15
19
  # runtime carries no shell, package manager, or file capabilities and listens
16
20
  # on the unprivileged port :8080.
17
21
  FROM golang:1.26.10-alpine3.23@sha256:0525c952defebc693cdaf62cdf43afa32be5a7f377e99260642ea19c240c708e AS caddy-source
18
- ADD --checksum=sha256:78e660d838e45c0b8c89338b325946238f153641aa9925df9ef2ad5e8eced31b \
19
- https://github.com/caddyserver/caddy/commit/b2693fb63a30e6d7be0972c3645e9a2c0a500e93.patch /tmp/caddy-cel-go.patch
20
- RUN go mod download github.com/caddyserver/caddy/v2@v2.11.4 \
21
- && cp -R /go/pkg/mod/github.com/caddyserver/caddy/v2@v2.11.4 /src \
22
+ RUN go mod download github.com/caddyserver/caddy/v2@v2.11.7 \
23
+ && cp -R /go/pkg/mod/github.com/caddyserver/caddy/v2@v2.11.7 /src \
22
24
  && chmod -R u+w /src
23
25
  WORKDIR /src
24
- RUN apk add --no-cache patch \
25
- && patch -p1 < /tmp/caddy-cel-go.patch \
26
- && go get github.com/go-chi/chi/v5@v5.3.0 github.com/google/cel-go@v0.29.2 \
27
- github.com/klauspost/compress@v1.18.7 go.opentelemetry.io/otel@v1.45.0 \
28
- go.opentelemetry.io/otel/sdk/log@v0.21.0 \
29
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc@v0.21.0 \
30
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@v0.21.0 \
31
- go.opentelemetry.io/otel/exporters/stdout/stdoutlog@v0.21.0 \
32
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc@v1.45.0 \
33
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp@v1.45.0 \
26
+ RUN go get github.com/go-chi/chi/v5@v5.3.2 github.com/klauspost/compress@v1.20.1 \
27
+ go.opentelemetry.io/otel@v1.46.0 go.opentelemetry.io/otel/sdk/log@v0.22.0 \
28
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc@v0.22.0 \
29
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@v0.22.0 \
30
+ go.opentelemetry.io/otel/exporters/stdout/stdoutlog@v0.22.0 \
31
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc@v1.46.0 \
32
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp@v1.46.0 \
34
33
  golang.org/x/crypto@v0.57.0 golang.org/x/net@v0.60.0 \
35
34
  golang.org/x/text@v0.42.0 google.golang.org/grpc@v1.83.2 \
36
35
  && go mod tidy \
@@ -46,7 +45,7 @@ COPY --from=caddy-source /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-ce
46
45
  COPY --from=caddy-source /out/caddy /usr/bin/caddy
47
46
  COPY --from=caddy-source /out/percher-healthcheck /usr/bin/percher-healthcheck
48
47
  COPY Caddyfile /etc/caddy/Caddyfile
49
- COPY --from=build /app/dist /srv
48
+ COPY --from=static-content /percher-static-content /srv
50
49
  LABEL dev.percher.health-client="static-http-v1"
51
50
  # HOME points at the writable tmpfs so non-root Caddy can persist its
52
51
  # XDG state (storage-clean lock, config autosave) under Percher's
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -22,22 +22,17 @@ RUN bun install && bun run build
22
22
  # runtime carries no shell, package manager, or file capabilities and listens
23
23
  # on the unprivileged port :8080.
24
24
  FROM golang:1.26.10-alpine3.23@sha256:0525c952defebc693cdaf62cdf43afa32be5a7f377e99260642ea19c240c708e AS caddy-source
25
- ADD --checksum=sha256:78e660d838e45c0b8c89338b325946238f153641aa9925df9ef2ad5e8eced31b \
26
- https://github.com/caddyserver/caddy/commit/b2693fb63a30e6d7be0972c3645e9a2c0a500e93.patch /tmp/caddy-cel-go.patch
27
- RUN go mod download github.com/caddyserver/caddy/v2@v2.11.4 \
28
- && cp -R /go/pkg/mod/github.com/caddyserver/caddy/v2@v2.11.4 /src \
25
+ RUN go mod download github.com/caddyserver/caddy/v2@v2.11.7 \
26
+ && cp -R /go/pkg/mod/github.com/caddyserver/caddy/v2@v2.11.7 /src \
29
27
  && chmod -R u+w /src
30
28
  WORKDIR /src
31
- RUN apk add --no-cache patch \
32
- && patch -p1 < /tmp/caddy-cel-go.patch \
33
- && go get github.com/go-chi/chi/v5@v5.3.0 github.com/google/cel-go@v0.29.2 \
34
- github.com/klauspost/compress@v1.18.7 go.opentelemetry.io/otel@v1.45.0 \
35
- go.opentelemetry.io/otel/sdk/log@v0.21.0 \
36
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc@v0.21.0 \
37
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@v0.21.0 \
38
- go.opentelemetry.io/otel/exporters/stdout/stdoutlog@v0.21.0 \
39
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc@v1.45.0 \
40
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp@v1.45.0 \
29
+ RUN go get github.com/go-chi/chi/v5@v5.3.2 github.com/klauspost/compress@v1.20.1 \
30
+ go.opentelemetry.io/otel@v1.46.0 go.opentelemetry.io/otel/sdk/log@v0.22.0 \
31
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc@v0.22.0 \
32
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp@v0.22.0 \
33
+ go.opentelemetry.io/otel/exporters/stdout/stdoutlog@v0.22.0 \
34
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc@v1.46.0 \
35
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp@v1.46.0 \
41
36
  golang.org/x/crypto@v0.57.0 golang.org/x/net@v0.60.0 \
42
37
  golang.org/x/text@v0.42.0 google.golang.org/grpc@v1.83.2 \
43
38
  && go mod tidy \
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,5 +2,9 @@
2
2
  bind 0.0.0.0
3
3
  root * /srv
4
4
  encode gzip zstd
5
- file_server
5
+ route {
6
+ @percher_platform path_regexp percher_platform (?i)(?:^/+(?:percher[.]toml|[.]percherignore|pb|Dockerfile|Caddyfile|[.]git|[.]env|[.]env[.][^/]*|[.]percher-[^/]*)(?:/|$)|(?:^|/)(?:[.]npmrc|[.]pypirc|[.]netrc|_netrc|[.]git-credentials|[.]htpasswd|[.]pgpass|[.]my[.]cnf|[.]dev[.]vars|id_rsa|id_dsa|id_ecdsa|id_ed25519|credentials[.]json|secrets[.]toml|wp-config[.]php|[.]env|[.]ssh|[.]aws|[.]gnupg|[.]docker/config[.]json|[.]kube/config|[.]env[.][^/]*|[.]dev[.]vars[.][^/]*|[^/]*[.]pem|[^/]*[.]key|[^/]*[.]p12|[^/]*[.]pfx|[^/]*[.]jks|[^/]*[.]keystore)(?:/|$))
7
+ respond @percher_platform 404
8
+ file_server
9
+ }
6
10
  }