mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
# Which Problems Are Solved The login container can only serve HTTP. In deployments where a reverse proxy is not used, operators need the login container to terminate TLS itself. Closes #11473 # How the Problems Are Solved The container now supports optional HTTPS via three environment variables that match the pattern already used by the backend server: `ZITADEL_TLS_ENABLED`, `ZITADEL_TLS_CERTPATH`, and `ZITADEL_TLS_KEYPATH`. When `ZITADEL_TLS_ENABLED` is not set or set to `false`, behavior is identical to before. When set to `true`, the server reads the provided certificate and key files and serves HTTPS using the lower-level `getRequestHandlers` API from Next.js. The Docker healthcheck was updated to probe the correct scheme automatically based on the same environment variable. # Additional Changes Added a dockerized integration test that verifies both HTTP and HTTPS modes using testcontainers. # Additional Context The TLS path uses `getRequestHandlers` from `next/dist/server/lib/start-server` instead of `startServer` because the latter rejects self-signed certificates in production mode. This is the same internal API that `startServer` itself calls. --------- Co-authored-by: Copilot <[email protected]>
97 lines
3.3 KiB
JSON
97 lines
3.3 KiB
JSON
{
|
|
"packageManager": "[email protected]+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
|
|
"name": "@zitadel/login",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "NEXT_OUTPUT_MODE=standalone next build && cp -r public scripts/* .next/standalone/ && mv .next/standalone/apps/login/server.js .next/standalone/apps/login/next-server.js && cp .next/standalone/server.mjs .next/standalone/apps/login/server.js && cp -r .next/static .next/standalone/apps/login/.next/ && rm .next/standalone/apps/login/.env",
|
|
"build-vercel": "next build",
|
|
"dev": "HOSTNAME=127.0.0.1 ./scripts/entrypoint.sh next dev",
|
|
"prod": "cd ./.next/standalone && HOSTNAME=127.0.0.1 ./entrypoint.sh node apps/login/server.js",
|
|
"lint-check-next": "next lint",
|
|
"lint-check-prettier": "prettier --check .",
|
|
"lint-fix": "prettier --write .",
|
|
"test-unit": "vitest --run",
|
|
"lint-staged": "lint-staged",
|
|
"clean": "rm -rf node_modules .next cypress"
|
|
},
|
|
"git": {
|
|
"pre-commit": "lint-staged"
|
|
},
|
|
"lint-staged": {
|
|
"*": "prettier --write --ignore-unknown"
|
|
},
|
|
"dependencies": {
|
|
"@headlessui/react": "^2.2.9",
|
|
"@heroicons/react": "^2.2.0",
|
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
"@tailwindcss/forms": "^0.5.11",
|
|
"clsx": "^2.1.1",
|
|
"copy-to-clipboard": "^3.3.3",
|
|
"deepmerge": "^4.3.1",
|
|
"escape-html": "^1.0.3",
|
|
"lucide-react": "^0.562.0",
|
|
"moment": "^2.30.1",
|
|
"next": "15.5.10",
|
|
"next-intl": "^3.26.5",
|
|
"next-themes": "^0.2.1",
|
|
"nice-grpc": "^2.1.14",
|
|
"qrcode.react": "^4.2.0",
|
|
"react": "19.2.4",
|
|
"react-dom": "19.2.4",
|
|
"react-hook-form": "^7.71.1",
|
|
"tinycolor2": "^1.6.0",
|
|
"uuid": "^13.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/eslint-parser": "^7.28.6",
|
|
"@faker-js/faker": "^9.9.0",
|
|
"@otplib/core": "^12.0.1",
|
|
"@otplib/plugin-crypto": "^12.0.1",
|
|
"@otplib/plugin-thirty-two": "^12.0.1",
|
|
"@playwright/test": "^1.58.0",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/node": "^22.19.7",
|
|
"@types/node-forge": "^1.3.14",
|
|
"@types/escape-html": "^1.0.4",
|
|
"@types/react": "19.2.7",
|
|
"@types/react-dom": "19.2.3",
|
|
"@types/tinycolor2": "^1.4.6",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.54.0",
|
|
"@typescript-eslint/parser": "^8.54.0",
|
|
"@vercel/git-hooks": "1.0.0",
|
|
"@vitejs/plugin-react": "^4.7.0",
|
|
"@zitadel/client": "workspace:*",
|
|
"@zitadel/proto": "workspace:*",
|
|
"autoprefixer": "^10.4.23",
|
|
"concurrently": "^9.2.1",
|
|
"cypress": "^14.5.4",
|
|
"dotenv-cli": "^8.0.0",
|
|
"env-cmd": "^10.1.0",
|
|
"esbuild": "^0.27.3",
|
|
"eslint": "^8.57.1",
|
|
"eslint-config-next": "15.5.9",
|
|
"eslint-config-prettier": "^9.1.2",
|
|
"gaxios": "^7.1.3",
|
|
"grpc-tools": "^1.13.1",
|
|
"jsdom": "^26.1.0",
|
|
"lint-staged": "15.5.1",
|
|
"node-forge": "^1.3.3",
|
|
"nodemon": "^3.1.11",
|
|
"postcss": "^8.5.6",
|
|
"prettier": "^3.8.1",
|
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
"prettier-plugin-tailwindcss": "^0.7.2",
|
|
"sass": "^1.97.3",
|
|
"start-server-and-test": "^2.1.3",
|
|
"tailwindcss": "3.4.14",
|
|
"testcontainers": "^11.11.0",
|
|
"ts-proto": "^2.11.1",
|
|
"typescript": "^5.9.3",
|
|
"vite-tsconfig-paths": "^5.1.4",
|
|
"vitest": "^2.1.9"
|
|
}
|
|
}
|