mirror of
https://github.com/stack-auth/stack.git
synced 2026-06-04 21:04:37 +08:00
pnpm run restart-deps
This commit is contained in:
parent
57a33b2dd6
commit
eb51c4d63c
18
README.md
18
README.md
@ -101,13 +101,7 @@ This is for you if you want to contribute to the Stack project or run the Stack
|
||||
|
||||
Pre-populated .env files for the setup below are available and used by default in `.env.development` in each of the packages. You should copy all the `.env.development` files to `.env.local` in the respective packages for local development.
|
||||
|
||||
In a terminal, start the dependencies (Postgres and Inbucket) as Docker containers:
|
||||
|
||||
```sh
|
||||
docker compose -f dependencies.compose.yaml up
|
||||
```
|
||||
|
||||
Then open a new terminal:
|
||||
In a new terminal:
|
||||
|
||||
```sh
|
||||
pnpm install
|
||||
@ -115,12 +109,10 @@ pnpm install
|
||||
# Run build to build everything once
|
||||
pnpm run build
|
||||
|
||||
# initialize the database and seed it with some data
|
||||
pnpm prisma db push
|
||||
pnpm prisma db seed
|
||||
|
||||
# Run code generation (repeat this after eg. changing the Prisma schema). This is part of the build script, but faster
|
||||
pnpm run codegen
|
||||
# reset & start the dependencies (DB, Inbucket, etc.) as Docker containers, seeding the DB with the Prisma schema
|
||||
pnpm run restart-deps
|
||||
# pnpm run start-deps
|
||||
# pnpm run stop-deps
|
||||
|
||||
# Start the dev server
|
||||
pnpm run dev
|
||||
|
||||
@ -7,11 +7,14 @@
|
||||
"typecheck": "tsc --noEmit",
|
||||
"with-env": "dotenv -c development --",
|
||||
"with-env:prod": "dotenv -c --",
|
||||
"dev": "concurrently -k \"next dev --port 8102\" \"pnpm run watch-docs\" \"pnpm run prisma-studio\"",
|
||||
"dev": "concurrently -n \"dev,codegen,prisma-studio\" -k \"next dev --port 8102\" \"pnpm run codegen:watch\" \"pnpm run prisma-studio\"",
|
||||
"build": "pnpm run codegen && next build",
|
||||
"analyze-bundle": "ANALYZE_BUNDLE=1 pnpm run build",
|
||||
"start": "next start --port 8102",
|
||||
"codegen": "pnpm run prisma generate && pnpm run generate-docs",
|
||||
"codegen-prisma": "pnpm run prisma generate",
|
||||
"codegen-prisma:watch": "pnpm run prisma generate --watch",
|
||||
"codegen": "pnpm run codegen-prisma && pnpm run generate-docs",
|
||||
"codegen:watch": "concurrently -n \"prisma,docs\" -k \"pnpm run codegen-prisma:watch\" \"pnpm run watch-docs\"",
|
||||
"psql-inner": "psql $STACK_DATABASE_CONNECTION_STRING",
|
||||
"psql": "pnpm run with-env pnpm run psql-inner",
|
||||
"prisma": "pnpm run with-env prisma",
|
||||
@ -59,6 +62,7 @@
|
||||
"yup": "^1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"concurrently": "^8.2.2",
|
||||
"@types/node": "^20.8.10",
|
||||
"@types/nodemailer": "^6.4.14",
|
||||
"@types/react": "^18.2.66",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
services:
|
||||
# ================= stack =================
|
||||
|
||||
# ================= PostgreSQL =================
|
||||
|
||||
db:
|
||||
image: postgres:latest
|
||||
@ -7,20 +8,22 @@ services:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: password
|
||||
POSTGRES_DB: stackframe
|
||||
POSTGRES_DELAY: ${POSTGRES_DELAY:-0}
|
||||
POSTGRES_DELAY_MS: ${POSTGRES_DELAY_MS:-0}
|
||||
ports:
|
||||
- 5432:5432
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
entrypoint: ["sh", "-c", "
|
||||
if [ $POSTGRES_DELAY -gt 0 ]; then
|
||||
if [ $POSTGRES_DELAY_MS -gt 0 ]; then
|
||||
apt-get update && apt-get install -y iproute2 && \
|
||||
tc qdisc add dev eth0 root netem delay ${POSTGRES_DELAY}ms;
|
||||
tc qdisc add dev eth0 root netem delay ${POSTGRES_DELAY_MS}ms;
|
||||
fi;
|
||||
exec docker-entrypoint.sh postgres"]
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
|
||||
# ================= Inbucket =================
|
||||
|
||||
inbucket:
|
||||
image: inbucket/inbucket:latest
|
||||
ports:
|
||||
@ -30,6 +33,8 @@ services:
|
||||
volumes:
|
||||
- inbucket-data:/data
|
||||
|
||||
# ================= Jaeger =================
|
||||
|
||||
jaeger:
|
||||
image: jaegertracing/all-in-one:latest
|
||||
environment:
|
||||
|
||||
@ -12,6 +12,12 @@
|
||||
"build:demo": "only-allow pnpm && turbo run build --filter=demo-app...",
|
||||
"clean": "only-allow pnpm && turbo run clean && rimraf --glob **/.next && rimraf --glob **/.turbo && rimraf .turbo && rimraf --glob **/node_modules",
|
||||
"codegen": "only-allow pnpm && turbo run codegen",
|
||||
"deps-compose": "docker compose -f dependencies.compose.yaml",
|
||||
"stop-deps": "pnpm run deps-compose kill && pnpm run deps-compose down -v",
|
||||
"init-db": "pnpm run prisma db push && pnpm run prisma db seed",
|
||||
"start-deps:no-delay": "pnpm run deps-compose up --detach && sleep 5 && pnpm run init-db && echo \"\\nDependencies started in the background as Docker containers. 'pnpm run stop-deps' to stop them\"n",
|
||||
"start-deps": "POSTGRES_DELAY_MS=${POSTGRES_DELAY_MS:-20} pnpm run start-deps:no-delay",
|
||||
"restart-deps": "pnpm run stop-deps && pnpm run start-deps",
|
||||
"psql": "only-allow pnpm && pnpm run --filter=@stackframe/stack-backend psql",
|
||||
"prisma": "only-allow pnpm && pnpm run --filter=@stackframe/stack-backend prisma",
|
||||
"fern": "only-allow pnpm && pnpm run --filter=@stackframe/docs fern",
|
||||
@ -30,6 +36,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.27.1",
|
||||
"wait-on": "^8.0.0",
|
||||
"@testing-library/react": "^15.0.2",
|
||||
"@types/node": "^20.8.10",
|
||||
"@types/supertest": "^6.0.2",
|
||||
|
||||
@ -77,6 +77,9 @@ importers:
|
||||
vitest:
|
||||
specifier: ^1.5.0
|
||||
version: 1.6.0(@types/node@20.14.2)(jsdom@24.1.0)(terser@5.31.1)
|
||||
wait-on:
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0
|
||||
|
||||
apps/backend:
|
||||
dependencies:
|
||||
@ -186,6 +189,9 @@ importers:
|
||||
'@types/react':
|
||||
specifier: ^18.2.66
|
||||
version: 18.3.3
|
||||
concurrently:
|
||||
specifier: ^8.2.2
|
||||
version: 8.2.2
|
||||
glob:
|
||||
specifier: ^10.4.1
|
||||
version: 10.4.1
|
||||
@ -1849,6 +1855,12 @@ packages:
|
||||
'@floating-ui/utils@0.2.2':
|
||||
resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==}
|
||||
|
||||
'@hapi/hoek@9.3.0':
|
||||
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
|
||||
|
||||
'@hapi/topo@5.1.0':
|
||||
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
|
||||
|
||||
'@hookform/resolvers@3.6.0':
|
||||
resolution: {integrity: sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==}
|
||||
peerDependencies:
|
||||
@ -3721,6 +3733,15 @@ packages:
|
||||
resolution: {integrity: sha512-x0PYIMWcsTauqxgl7vWUY6sANl+XGKtx7DCVnnY7aOIIlIna0jChTAPANTfA2QrK+VK+4I/4JxatCEZBnXh3Og==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
'@sideway/address@4.1.5':
|
||||
resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
|
||||
|
||||
'@sideway/formula@3.0.1':
|
||||
resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
|
||||
|
||||
'@sideway/pinpoint@2.0.0':
|
||||
resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
|
||||
|
||||
'@sinclair/typebox@0.27.8':
|
||||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
|
||||
@ -6283,6 +6304,9 @@ packages:
|
||||
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
|
||||
hasBin: true
|
||||
|
||||
joi@17.13.3:
|
||||
resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==}
|
||||
|
||||
jose@4.15.5:
|
||||
resolution: {integrity: sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg==}
|
||||
|
||||
@ -8682,6 +8706,11 @@ packages:
|
||||
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
wait-on@8.0.0:
|
||||
resolution: {integrity: sha512-fNE5SXinLr2Bt7cJvjvLg2PcXfqznlqRvtE3f8AqYdRZ9BhE+XpsCp1mwQbRoO7s1q7uhAuCw0Ro3mG/KdZjEw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
hasBin: true
|
||||
|
||||
warning@4.0.3:
|
||||
resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
|
||||
|
||||
@ -9746,6 +9775,12 @@ snapshots:
|
||||
|
||||
'@floating-ui/utils@0.2.2': {}
|
||||
|
||||
'@hapi/hoek@9.3.0': {}
|
||||
|
||||
'@hapi/topo@5.1.0':
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.3.0
|
||||
|
||||
'@hookform/resolvers@3.6.0(react-hook-form@7.52.0(react@18.3.1))':
|
||||
dependencies:
|
||||
react-hook-form: 7.52.0(react@18.3.1)
|
||||
@ -11900,6 +11935,14 @@ snapshots:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
'@sideway/address@4.1.5':
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.3.0
|
||||
|
||||
'@sideway/formula@3.0.1': {}
|
||||
|
||||
'@sideway/pinpoint@2.0.0': {}
|
||||
|
||||
'@sinclair/typebox@0.27.8': {}
|
||||
|
||||
'@sindresorhus/is@5.6.0': {}
|
||||
@ -14919,6 +14962,14 @@ snapshots:
|
||||
|
||||
jiti@1.21.6: {}
|
||||
|
||||
joi@17.13.3:
|
||||
dependencies:
|
||||
'@hapi/hoek': 9.3.0
|
||||
'@hapi/topo': 5.1.0
|
||||
'@sideway/address': 4.1.5
|
||||
'@sideway/formula': 3.0.1
|
||||
'@sideway/pinpoint': 2.0.0
|
||||
|
||||
jose@4.15.5: {}
|
||||
|
||||
jose@5.4.0: {}
|
||||
@ -18026,6 +18077,16 @@ snapshots:
|
||||
dependencies:
|
||||
xml-name-validator: 5.0.0
|
||||
|
||||
wait-on@8.0.0:
|
||||
dependencies:
|
||||
axios: 1.7.4
|
||||
joi: 17.13.3
|
||||
lodash: 4.17.21
|
||||
minimist: 1.2.8
|
||||
rxjs: 7.8.1
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
warning@4.0.3:
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user