From d21251d122d0a9190b227ac0f01f71e98fe4b3e4 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 23 Mar 2025 20:56:20 +0000 Subject: [PATCH 1/3] Add devcontainer configuration for development Co-Authored-By: Konstantin Wohlwend --- .devcontainer/Dockerfile | 17 +++++++++++ .devcontainer/README.md | 40 ++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 48 ++++++++++++++++++++++++++++++++ .devcontainer/docker-compose.yml | 28 +++++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/README.md create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..b1d1272f7d --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,17 @@ +ARG NODE_VERSION=22 +FROM mcr.microsoft.com/devcontainers/javascript-node:${NODE_VERSION} + +# Install dependencies +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends \ + postgresql-client \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* + +# Set up development environment +USER node +WORKDIR /workspaces/stack-auth + +# Enable corepack for pnpm +RUN corepack enable +RUN corepack prepare pnpm@9 --activate diff --git a/.devcontainer/README.md b/.devcontainer/README.md new file mode 100644 index 0000000000..160f8aa640 --- /dev/null +++ b/.devcontainer/README.md @@ -0,0 +1,40 @@ +# Stack Auth Development Container + +This development container provides a standardized development environment for working on Stack Auth. + +## What's Included + +- Node.js 22 +- pnpm 9 +- Docker for running dependencies +- PostgreSQL client tools +- VS Code extensions for development + +## Getting Started + +1. Open this folder in VS Code with the Dev Containers extension installed +2. VS Code will prompt you to "Reopen in Container" +3. Once the container is built and started, the following commands will be run automatically: + - `pnpm install` + - `pnpm build:packages` + - `pnpm codegen` + +4. Start the dependencies and development server with: + ``` + pnpm restart-deps + pnpm dev + ``` + +5. You can now access the dev launchpad at http://localhost:8100 + +## Ports + +The following ports are forwarded to your local machine: +- 8100: Dev launchpad +- 8101: Dashboard +- 8102: API +- 8103: Demo +- 8104: Docs +- 8105: Inbucket (e-mails) +- 8106: Prisma Studio +- and more development services diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..f262e2daa3 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,48 @@ +{ + "name": "Stack Auth Development", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "features": { + "ghcr.io/devcontainers/features/node:1": { + "version": "22" + }, + "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers-contrib/features/pnpm:2": { + "version": "9" + }, + "ghcr.io/devcontainers/features/git:1": {} + }, + "forwardPorts": [ + 5432, // PostgreSQL + 8100, // Dev launchpad + 8101, // Dashboard + 8102, // API + 8103, // Demo + 8104, // Docs + 8105, // Inbucket (e-mails) + 8106, // Prisma Studio + 8107, // Jaeger UI + 8113, // Svix + 8116, // PgHero + 8117 // PgAdmin + ], + "postCreateCommand": "pnpm install && pnpm build:packages && pnpm codegen", + "postStartCommand": "echo 'To start the development server with dependencies, run: pnpm restart-deps && pnpm dev'", + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "bradlc.vscode-tailwindcss", + "Prisma.prisma" + ], + "settings": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + } + } + } + }, + "remoteUser": "vscode" +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 0000000000..53d3fa75c1 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3' +services: + app: + build: + context: .. + dockerfile: .devcontainer/Dockerfile + volumes: + - ..:/workspaces/stack-auth:cached + command: sleep infinity + network_mode: service:db + depends_on: + - db + + db: + build: + context: ../docker/postgres-with-extensions + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: PASSWORD-PLACEHOLDER--uqfEC1hmmv + POSTGRES_DB: stackframe + POSTGRES_DELAY_MS: 0 + volumes: + - postgres-data:/var/lib/postgresql/data + cap_add: + - NET_ADMIN + +volumes: + postgres-data: From b1ff994f9e15268b719786885f28a5859d3f9eb0 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 23 Mar 2025 20:56:46 +0000 Subject: [PATCH 2/3] Update docker-compose.yml to use environment variables for passwords Co-Authored-By: Konstantin Wohlwend --- .devcontainer/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 53d3fa75c1..4991392843 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -16,7 +16,7 @@ services: context: ../docker/postgres-with-extensions environment: POSTGRES_USER: postgres - POSTGRES_PASSWORD: PASSWORD-PLACEHOLDER--uqfEC1hmmv + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} POSTGRES_DB: stackframe POSTGRES_DELAY_MS: 0 volumes: From 2e23763b6cf4c980e07e1140bca92ed734803092 Mon Sep 17 00:00:00 2001 From: Konstantin Wohlwend Date: Thu, 3 Apr 2025 18:27:46 -0700 Subject: [PATCH 3/3] fix --- .devcontainer/Dockerfile | 17 ----------- .devcontainer/README.md | 19 +------------ .devcontainer/devcontainer.json | 48 +++++++++++++++++--------------- .devcontainer/docker-compose.yml | 28 ------------------- .gitignore | 2 ++ .vscode/extensions.json | 3 +- .vscode/settings.json | 3 +- 7 files changed, 32 insertions(+), 88 deletions(-) delete mode 100644 .devcontainer/Dockerfile delete mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index b1d1272f7d..0000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -ARG NODE_VERSION=22 -FROM mcr.microsoft.com/devcontainers/javascript-node:${NODE_VERSION} - -# Install dependencies -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends \ - postgresql-client \ - && apt-get clean -y \ - && rm -rf /var/lib/apt/lists/* - -# Set up development environment -USER node -WORKDIR /workspaces/stack-auth - -# Enable corepack for pnpm -RUN corepack enable -RUN corepack prepare pnpm@9 --activate diff --git a/.devcontainer/README.md b/.devcontainer/README.md index 160f8aa640..e8822d0315 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -2,14 +2,6 @@ This development container provides a standardized development environment for working on Stack Auth. -## What's Included - -- Node.js 22 -- pnpm 9 -- Docker for running dependencies -- PostgreSQL client tools -- VS Code extensions for development - ## Getting Started 1. Open this folder in VS Code with the Dev Containers extension installed @@ -27,14 +19,5 @@ This development container provides a standardized development environment for w 5. You can now access the dev launchpad at http://localhost:8100 -## Ports +For more information, read the README.md in the root of the repository. -The following ports are forwarded to your local machine: -- 8100: Dev launchpad -- 8101: Dashboard -- 8102: API -- 8103: Demo -- 8104: Docs -- 8105: Inbucket (e-mails) -- 8106: Prisma Studio -- and more development services diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f262e2daa3..f908172df2 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -11,37 +11,39 @@ }, "ghcr.io/devcontainers/features/git:1": {} }, + "hostRequirements": { + "cpus": 2, + "memory": "16gb" + }, "forwardPorts": [ 5432, // PostgreSQL - 8100, // Dev launchpad - 8101, // Dashboard - 8102, // API - 8103, // Demo - 8104, // Docs - 8105, // Inbucket (e-mails) - 8106, // Prisma Studio - 8107, // Jaeger UI - 8113, // Svix - 8116, // PgHero - 8117 // PgAdmin + 2500, // Inbucket SMTP + 1100, // Inbucket POP3 + 4318, // OTel collector + 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, + 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8117, 8118, 8119, + 8120, 8121, 8122, 8123, 8124, 8125, 8126, 8127, 8128, 8129, + 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8138, 8139, + 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, + 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 8159, + 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, + 8170, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8179, + 8180, 8181, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8189, + 8190, 8191, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199 ], - "postCreateCommand": "pnpm install && pnpm build:packages && pnpm codegen", - "postStartCommand": "echo 'To start the development server with dependencies, run: pnpm restart-deps && pnpm dev'", + "postCreateCommand": "pnpm install && pnpm build:packages && pnpm codegen && pnpm run start-deps && pnpm run stop-deps", + "postStartCommand": "pnpm install && clear && echo 'To start the development server with dependencies, run: pnpm restart-deps && pnpm dev' && echo 'To run the tests, run: pnpm test []'", "customizations": { "vscode": { "extensions": [ "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "bradlc.vscode-tailwindcss", + "streetsidesoftware.code-spell-checker", + "YoavBls.pretty-ts-errors", + "mxsdev.typescript-explorer", + "github.vscode-github-actions", + "fabiospampinato.vscode-highlight", "Prisma.prisma" - ], - "settings": { - "editor.formatOnSave": true, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - } - } + ] } }, "remoteUser": "vscode" diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml deleted file mode 100644 index 4991392843..0000000000 --- a/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3' -services: - app: - build: - context: .. - dockerfile: .devcontainer/Dockerfile - volumes: - - ..:/workspaces/stack-auth:cached - command: sleep infinity - network_mode: service:db - depends_on: - - db - - db: - build: - context: ../docker/postgres-with-extensions - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} - POSTGRES_DB: stackframe - POSTGRES_DELAY_MS: 0 - volumes: - - postgres-data:/var/lib/postgresql/data - cap_add: - - NET_ADMIN - -volumes: - postgres-data: diff --git a/.gitignore b/.gitignore index 6f3962009d..bcb1cd6898 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ node-compile-cache/ *.cpuprofile +.pnpm-store + .vercel diff --git a/.vscode/extensions.json b/.vscode/extensions.json index d795349efe..e9c48cf96d 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -9,7 +9,8 @@ "YoavBls.pretty-ts-errors", "mxsdev.typescript-explorer", "github.vscode-github-actions", - "fabiospampinato.vscode-highlight" + "fabiospampinato.vscode-highlight", + "Prisma.prisma" ], // List of extensions recommended by VS Code that should not be recommended for users of this workspace. "unwantedRecommendations": [ diff --git a/.vscode/settings.json b/.vscode/settings.json index e08febc9da..8ea5f0e632 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -150,5 +150,6 @@ "((?:| *\\*/| *!}| *--}}| *}}|(?= *(?:[^:]//|/\\*+|| *\\*/| *!}| *--}}| *}}|(?= *(?:[^:]//|/\\*+|