Openstatus www.openstatus.dev

fix docker build (#1628)

* fix dock build

* ci: apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

authored by

Thibault Le Ouay
autofix-ci[bot]
and committed by
GitHub
9b8b1cdf 17b5eb9e

+121 -83
+1 -1
.env.docker.example
··· 54 54 55 55 # [REQUIRED] Self-hosted mode - enables magic link authentication 56 56 # Set to "true" to allow email login without OAuth 57 - SELF_HOST=true 57 + SELF_HOST="true" 58 58 59 59 # GitHub OAuth (optional) 60 60 # Get from: https://github.com/settings/developers
+16 -15
apps/dashboard/Dockerfile
··· 8 8 org.opencontainers.image.base.digest="sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2" \ 9 9 org.opencontainers.image.base.name="docker.io/node:24-slim" 10 10 ENV \ 11 - NEXT_PUBLIC_OPENPANEL_CLIENT_ID="test" \ 12 - TINY_BIRD_API_KEY="test" \ 11 + PROJECT_ID_VERCEL="test" \ 12 + CRON_SECRET="test" \ 13 + DATABASE_URL="http://libsql:8080" \ 13 14 DATABASE_AUTH_TOKEN="test" \ 14 - PNPM_HOME="/pnpm" \ 15 - VERCEL_AUTH_BEARER_TOKEN="test" \ 15 + UPSTASH_REDIS_REST_TOKEN="test" \ 16 + UPSTASH_REDIS_REST_URL="test" \ 17 + AUTH_SECRET="build-time-placeholder-min-32-chars-long" \ 16 18 OPENPANEL_CLIENT_SECRET="test" \ 17 - RESEND_API_KEY="test" \ 18 - AUTH_SECRET="build-time-placeholder-min-32-chars-long" \ 19 + VERCEL_AUTH_BEARER_TOKEN="test" \ 20 + TEAM_ID_VERCEL="test" \ 21 + TINY_BIRD_API_KEY="test" \ 22 + UNKEY_TOKEN="test" \ 23 + NEXT_PUBLIC_URL="http://localhost:3002" \ 19 24 STRIPE_SECRET_KEY="test" \ 20 - TEAM_ID_VERCEL="test" \ 21 - CRON_SECRET="test" \ 22 - PATH="$PNPM_HOME:$PATH" \ 23 - UPSTASH_REDIS_REST_TOKEN="test" \ 24 25 UNKEY_API_ID="test" \ 25 - DATABASE_URL="http://libsql:8080" \ 26 - NEXT_PUBLIC_URL="http://localhost:3002" \ 26 + NEXT_PUBLIC_OPENPANEL_CLIENT_ID="test" \ 27 + PATH="$PNPM_HOME:$PATH" \ 27 28 NODE_ENV="production" \ 28 - UPSTASH_REDIS_REST_URL="test" \ 29 - UNKEY_TOKEN="test" \ 30 - PROJECT_ID_VERCEL="test" 29 + SELF_HOST="true" \ 30 + PNPM_HOME="/pnpm" \ 31 + RESEND_API_KEY="test" 31 32 WORKDIR /app 32 33 COPY \ 33 34 --link \
+12
apps/dashboard/docker-compose.yaml
··· 1 + name: server 2 + services: 3 + server: 4 + build: 5 + context: ../.. 6 + dockerfile: apps/dashboard/Dockerfile 7 + ports: 8 + - 3000:3000 9 + image: dashboard 10 + env_file: 11 + - ../../.env.docker 12 + command: .
+29 -27
apps/dashboard/dofigen.lock
··· 5 5 path: node 6 6 digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 7 7 label: 8 - org.opencontainers.image.base.name: docker.io/node:24-slim 9 8 org.opencontainers.image.base.digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 9 + org.opencontainers.image.base.name: docker.io/node:24-slim 10 10 workdir: /app 11 11 env: 12 - NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 13 - TINY_BIRD_API_KEY: test 12 + PROJECT_ID_VERCEL: test 13 + CRON_SECRET: test 14 + DATABASE_URL: http://libsql:8080 14 15 DATABASE_AUTH_TOKEN: test 15 - PNPM_HOME: /pnpm 16 - VERCEL_AUTH_BEARER_TOKEN: test 17 - OPENPANEL_CLIENT_SECRET: test 18 - RESEND_API_KEY: test 16 + UPSTASH_REDIS_REST_TOKEN: test 17 + UPSTASH_REDIS_REST_URL: test 19 18 AUTH_SECRET: build-time-placeholder-min-32-chars-long 20 - STRIPE_SECRET_KEY: test 19 + OPENPANEL_CLIENT_SECRET: test 20 + VERCEL_AUTH_BEARER_TOKEN: test 21 21 TEAM_ID_VERCEL: test 22 - CRON_SECRET: test 23 - PATH: $PNPM_HOME:$PATH 24 - UPSTASH_REDIS_REST_TOKEN: test 25 - UNKEY_API_ID: test 26 - DATABASE_URL: http://libsql:8080 22 + TINY_BIRD_API_KEY: test 23 + UNKEY_TOKEN: test 27 24 NEXT_PUBLIC_URL: http://localhost:3002 25 + STRIPE_SECRET_KEY: test 26 + UNKEY_API_ID: test 27 + NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 28 + PATH: $PNPM_HOME:$PATH 28 29 NODE_ENV: production 29 - UPSTASH_REDIS_REST_URL: test 30 - UNKEY_TOKEN: test 31 - PROJECT_ID_VERCEL: test 30 + SELF_HOST: 'true' 31 + PNPM_HOME: /pnpm 32 + RESEND_API_KEY: test 32 33 copy: 33 34 - paths: 34 35 - . ··· 42 43 digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 43 44 label: 44 45 org.opencontainers.image.base.digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 45 - io.dofigen.version: 2.5.1 46 46 org.opencontainers.image.base.name: docker.io/node:24-slim 47 + io.dofigen.version: 2.5.1 47 48 user: 48 49 user: '1000' 49 50 group: '1000' ··· 90 91 digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 91 92 resources: 92 93 dofigen.yml: 93 - hash: dbe530c6d76da88f16d50c0f1932e9f5a95417c94ea58e4ddf72a0c81c786412 94 + hash: 9f3113ec1095f913b3cc8e6202c7f1cc93087b2418ad8da90aa7ea0ccbd35579 94 95 content: | 95 96 builders: 96 97 # Stage 1: Next.js build with Node.js ··· 106 107 # Build-time environment variables (placeholder values, overwritten by .env.docker at runtime) 107 108 DATABASE_URL: http://libsql:8080 108 109 DATABASE_AUTH_TOKEN: test 109 - RESEND_API_KEY: test 110 - UPSTASH_REDIS_REST_URL: test 111 - UPSTASH_REDIS_REST_TOKEN: test 112 - STRIPE_SECRET_KEY: test 113 - PROJECT_ID_VERCEL: test 110 + NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 111 + NEXT_PUBLIC_URL: http://localhost:3002 114 112 TEAM_ID_VERCEL: test 113 + PROJECT_ID_VERCEL: test 115 114 VERCEL_AUTH_BEARER_TOKEN: test 116 - NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 117 115 OPENPANEL_CLIENT_SECRET: test 118 - TINY_BIRD_API_KEY: test 119 - CRON_SECRET: test 116 + RESEND_API_KEY: test 117 + UPSTASH_REDIS_REST_URL: test 118 + UPSTASH_REDIS_REST_TOKEN: test 120 119 UNKEY_TOKEN: test 121 120 UNKEY_API_ID: test 121 + TINY_BIRD_API_KEY: test 122 + CRON_SECRET: test 123 + STRIPE_SECRET_KEY: test 122 124 AUTH_SECRET: build-time-placeholder-min-32-chars-long 123 - NEXT_PUBLIC_URL: http://localhost:3002 125 + SELF_HOST: "true" 124 126 run: 125 127 - corepack enable 126 128 - pnpm install --frozen-lockfile
+1
apps/dashboard/dofigen.yml
··· 27 27 CRON_SECRET: test 28 28 STRIPE_SECRET_KEY: test 29 29 AUTH_SECRET: build-time-placeholder-min-32-chars-long 30 + SELF_HOST: "true" 30 31 run: 31 32 - corepack enable 32 33 - pnpm install --frozen-lockfile
+1 -1
apps/dashboard/next.config.ts
··· 2 2 import type { NextConfig } from "next"; 3 3 4 4 const nextConfig: NextConfig = { 5 - ...(process.env.SELF_HOST === "true" && { output: "standalone" }), 5 + output: process.env.SELF_HOST === "true" ? "standalone" : undefined, 6 6 images: { 7 7 remotePatterns: [ 8 8 new URL("https://openstatus.dev/**"),
+15 -13
apps/status-page/Dockerfile
··· 8 8 org.opencontainers.image.base.digest="sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2" \ 9 9 org.opencontainers.image.base.name="docker.io/node:24-slim" 10 10 ENV \ 11 - VERCEL_AUTH_BEARER_TOKEN="test" \ 12 - STRIPE_SECRET_KEY="test" \ 13 - UPSTASH_REDIS_REST_TOKEN="test" \ 14 - DATABASE_AUTH_TOKEN="test" \ 11 + PATH="$PNPM_HOME:$PATH" \ 12 + CRON_SECRET="test" \ 15 13 RESEND_API_KEY="test" \ 16 - CRON_SECRET="test" \ 14 + STRIPE_SECRET_KEY="test" \ 15 + TINY_BIRD_API_KEY="test" \ 16 + TEAM_ID_VERCEL="test" \ 17 + PROJECT_ID_VERCEL="test" \ 18 + SELF_HOST="true" \ 19 + NODE_ENV="production" \ 17 20 NEXT_PUBLIC_OPENPANEL_CLIENT_ID="test" \ 18 - NEXT_PUBLIC_URL="http://localhost:3003" \ 19 21 OPENPANEL_CLIENT_SECRET="test" \ 20 - DATABASE_URL="http://libsql:8080" \ 22 + NEXT_PUBLIC_URL="http://localhost:3002" \ 23 + UNKEY_TOKEN="test" \ 24 + RANDOM_YOLO="YOLO" \ 25 + UPSTASH_REDIS_REST_TOKEN="test" \ 21 26 UNKEY_API_ID="test" \ 22 - NODE_ENV="production" \ 27 + DATABASE_URL="http://libsql:8080" \ 23 28 UPSTASH_REDIS_REST_URL="test" \ 24 - UNKEY_TOKEN="test" \ 25 - TINY_BIRD_API_KEY="test" \ 26 - PATH="$PNPM_HOME:$PATH" \ 29 + VERCEL_AUTH_BEARER_TOKEN="test" \ 27 30 PNPM_HOME="/pnpm" \ 28 - PROJECT_ID_VERCEL="test" \ 29 - TEAM_ID_VERCEL="test" 31 + DATABASE_AUTH_TOKEN="test" 30 32 WORKDIR /app 31 33 COPY \ 32 34 --link \
+12
apps/status-page/docker-compose.yaml
··· 1 + name: server 2 + services: 3 + server: 4 + build: 5 + context: ../.. 6 + dockerfile: apps/status-page/Dockerfile 7 + ports: 8 + - 3000:3000 9 + image: status-page 10 + env_file: 11 + - ../../.env.docker 12 + command: .
+29 -24
apps/status-page/dofigen.lock
··· 9 9 org.opencontainers.image.base.digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 10 10 workdir: /app 11 11 env: 12 - VERCEL_AUTH_BEARER_TOKEN: test 13 - STRIPE_SECRET_KEY: test 14 - UPSTASH_REDIS_REST_TOKEN: test 15 - DATABASE_AUTH_TOKEN: test 12 + PATH: $PNPM_HOME:$PATH 13 + CRON_SECRET: test 16 14 RESEND_API_KEY: test 17 - CRON_SECRET: test 15 + STRIPE_SECRET_KEY: test 16 + TINY_BIRD_API_KEY: test 17 + TEAM_ID_VERCEL: test 18 + PROJECT_ID_VERCEL: test 19 + SELF_HOST: 'true' 20 + NODE_ENV: production 18 21 NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 19 - NEXT_PUBLIC_URL: http://localhost:3003 20 22 OPENPANEL_CLIENT_SECRET: test 21 - DATABASE_URL: http://libsql:8080 23 + NEXT_PUBLIC_URL: http://localhost:3002 24 + UNKEY_TOKEN: test 25 + RANDOM_YOLO: YOLO 26 + UPSTASH_REDIS_REST_TOKEN: test 22 27 UNKEY_API_ID: test 23 - NODE_ENV: production 28 + DATABASE_URL: http://libsql:8080 24 29 UPSTASH_REDIS_REST_URL: test 25 - UNKEY_TOKEN: test 26 - TINY_BIRD_API_KEY: test 27 - PATH: $PNPM_HOME:$PATH 30 + VERCEL_AUTH_BEARER_TOKEN: test 28 31 PNPM_HOME: /pnpm 29 - PROJECT_ID_VERCEL: test 30 - TEAM_ID_VERCEL: test 32 + DATABASE_AUTH_TOKEN: test 31 33 copy: 32 34 - paths: 33 35 - . ··· 40 42 path: node 41 43 digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 42 44 label: 45 + org.opencontainers.image.base.digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 43 46 io.dofigen.version: 2.5.1 44 47 org.opencontainers.image.base.name: docker.io/node:24-slim 45 - org.opencontainers.image.base.digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 46 48 user: 47 49 user: '1000' 48 50 group: '1000' ··· 89 91 digest: sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 90 92 resources: 91 93 dofigen.yml: 92 - hash: 29d846efda50082c251fd06ac8b56ba9fb73332770a8317a7536fdbcd6718c76 94 + hash: f70082e0a301dbbeb765a67ea8826eacb69af6d0af9a85bf325cc81225611d7d 93 95 content: | 94 96 builders: 95 97 # Stage 1: Next.js build with Node.js ··· 103 105 PNPM_HOME: /pnpm 104 106 PATH: $PNPM_HOME:$PATH 105 107 # Build-time environment variables (placeholder values, overwritten by .env.docker at runtime) 108 + SELF_HOST: "true" 109 + RANDOM_YOLO: YOLO 106 110 DATABASE_URL: http://libsql:8080 107 111 DATABASE_AUTH_TOKEN: test 112 + NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 113 + NEXT_PUBLIC_URL: http://localhost:3002 114 + TEAM_ID_VERCEL: test 115 + PROJECT_ID_VERCEL: test 116 + VERCEL_AUTH_BEARER_TOKEN: test 117 + OPENPANEL_CLIENT_SECRET: test 108 118 RESEND_API_KEY: test 109 119 UPSTASH_REDIS_REST_URL: test 110 120 UPSTASH_REDIS_REST_TOKEN: test 121 + UNKEY_TOKEN: test 122 + UNKEY_API_ID: test 111 123 TINY_BIRD_API_KEY: test 124 + CRON_SECRET: test 112 125 STRIPE_SECRET_KEY: test 113 - PROJECT_ID_VERCEL: test 114 - TEAM_ID_VERCEL: test 115 - VERCEL_AUTH_BEARER_TOKEN: test 116 - CRON_SECRET: test 117 - UNKEY_TOKEN: test 118 - UNKEY_API_ID: test 119 - NEXT_PUBLIC_OPENPANEL_CLIENT_ID: test 120 - OPENPANEL_CLIENT_SECRET: test 121 - NEXT_PUBLIC_URL: http://localhost:3003 126 + 122 127 run: 123 128 - corepack enable 124 129 - pnpm install --frozen-lockfile
+2
apps/status-page/dofigen.yml
··· 26 26 TINY_BIRD_API_KEY: test 27 27 CRON_SECRET: test 28 28 STRIPE_SECRET_KEY: test 29 + SELF_HOST: "true" 30 + 29 31 run: 30 32 - corepack enable 31 33 - pnpm install --frozen-lockfile
+1 -1
apps/status-page/next.config.ts
··· 3 3 import type { NextConfig } from "next"; 4 4 5 5 const nextConfig: NextConfig = { 6 - ...(process.env.SELF_HOST === "true" && { output: "standalone" }), 6 + output: process.env.SELF_HOST === "true" ? "standalone" : undefined, 7 7 experimental: { 8 8 authInterrupts: true, 9 9 },
+2 -1
turbo.json
··· 23 23 "OPENPANEL_CLIENT_SECRET", 24 24 "NEXT_PUBLIC_OPENPANEL_CLIENT_ID", 25 25 "AUTH_SECRET", 26 - "CRON_SECRET" 26 + "CRON_SECRET", 27 + "SELF_HOST" 27 28 ], 28 29 "outputs": [".next/**", "!.next/cache/**", "dist/**"] 29 30 },