Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
0faaaf0
Email outbox backend
N2D4 Nov 19, 2025
ec2b69f
Auth.fastSignUp()
N2D4 Nov 19, 2025
280942c
fix tests
N2D4 Nov 19, 2025
fe0f404
Merge dev into email-outbox-backend
N2D4 Nov 19, 2025
137f40f
build fixes
N2D4 Nov 19, 2025
7612034
check cron secret
N2D4 Nov 19, 2025
22c922a
various fixes
N2D4 Nov 19, 2025
c78ddc4
clean up stuff
N2D4 Nov 21, 2025
1aabe14
more fixes
N2D4 Nov 21, 2025
d44ef8e
more fixes
N2D4 Nov 21, 2025
4188d10
fix docs build
N2D4 Nov 21, 2025
1c1d8ca
fixes
N2D4 Nov 21, 2025
433de04
Merge branch 'dev' into email-outbox-backend
N2D4 Nov 21, 2025
09c103f
more
N2D4 Nov 21, 2025
f706faa
Merge dev into email-outbox-backend
N2D4 Nov 22, 2025
63ca4b6
comments
N2D4 Nov 24, 2025
559ca56
more fixes
N2D4 Nov 24, 2025
1f95176
Add new bundle analyzer
N2D4 Nov 24, 2025
7748fa4
Update pnpm version
N2D4 Nov 24, 2025
e2fd02f
Increase minimumReleaseAge
N2D4 Nov 24, 2025
5fcabf5
Upgrade GitHub workflow scripts
N2D4 Nov 24, 2025
2d97072
Merge remote-tracking branch 'origin/dev' into email-outbox-backend
N2D4 Nov 24, 2025
c2bdea0
changes
N2D4 Nov 25, 2025
1f3b758
Seed script now provides dummy data for events
N2D4 Nov 25, 2025
644c461
Update Docker build
N2D4 Nov 25, 2025
bde842b
Use pnpm 10.23.0 everywhere
N2D4 Nov 25, 2025
4f5e262
Add comment to TypeScript error that's not an error
N2D4 Nov 25, 2025
79428a0
Bump server Node version
N2D4 Nov 25, 2025
bfa7d2d
small fixes
N2D4 Nov 26, 2025
247b47e
more fixes
N2D4 Nov 26, 2025
c9e0b7a
fix more
N2D4 Nov 26, 2025
789872a
more fixes
N2D4 Nov 26, 2025
58a2886
small fixes
N2D4 Dec 4, 2025
06044c3
Merge remote-tracking branch 'origin/dev' into email-outbox-backend
N2D4 Dec 10, 2025
c32ddf2
more
N2D4 Dec 11, 2025
6ba29f6
fixes
N2D4 Dec 11, 2025
fc757c0
fixes
N2D4 Dec 11, 2025
9e49b9d
remove
N2D4 Dec 11, 2025
a91b805
Merge branch 'dev' into email-outbox-backend
N2D4 Dec 11, 2025
0eb3227
more
N2D4 Dec 11, 2025
8c53e60
more fixes
N2D4 Dec 11, 2025
10560a3
more fixes
N2D4 Dec 11, 2025
c11cacc
fix stuff
N2D4 Dec 11, 2025
ea5d1a5
fix sot
N2D4 Dec 11, 2025
494b552
more fixes
N2D4 Dec 11, 2025
445cf0c
small fixes
N2D4 Dec 11, 2025
30e4c61
add indices and stuff
N2D4 Dec 11, 2025
4c1381a
Update apps/backend/src/lib/emails-low-level.tsx
N2D4 Dec 11, 2025
1240b38
Update apps/backend/src/lib/emails.tsx
N2D4 Dec 11, 2025
9c6e8ce
many small fixes
N2D4 Dec 11, 2025
c378b17
fix docker stuff
N2D4 Dec 11, 2025
735c295
dbgenerate
N2D4 Dec 11, 2025
3615404
schema fixes
N2D4 Dec 11, 2025
0f5c647
Merge branch 'dev' into email-outbox-backend
N2D4 Dec 11, 2025
cd7eada
fix better
N2D4 Dec 11, 2025
d0cff6d
multiple fixes
N2D4 Dec 11, 2025
0172e9c
fix
N2D4 Dec 11, 2025
50176ef
fix
N2D4 Dec 12, 2025
59c22f8
fix things
N2D4 Dec 12, 2025
bebe0aa
no longer require stripe key
N2D4 Dec 12, 2025
eb3790d
better logs
N2D4 Dec 12, 2025
b2fae7a
wait longer
N2D4 Dec 12, 2025
234d4de
better
N2D4 Dec 12, 2025
400d23f
updates
N2D4 Dec 12, 2025
8d3f53d
even more!
N2D4 Dec 12, 2025
29604bb
hopefully last?
N2D4 Dec 12, 2025
e3decb1
lots of fixes!
N2D4 Dec 12, 2025
c7fc0a0
conditionally
N2D4 Dec 12, 2025
f3f2303
fix docs
N2D4 Dec 12, 2025
1a4f46e
rename migrations
N2D4 Dec 12, 2025
1a83322
fix
N2D4 Dec 12, 2025
313c229
more fixes
N2D4 Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions .github/workflows/docker-server-build-run.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Docker Server Build and Run

on:
push:
branches:
- main
- dev
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/dev' }}

jobs:
docker:
runs-on: ubicloud-standard-8
steps:
- uses: actions/checkout@v6

- name: Setup postgres
run: |
docker run -d --name db -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password -e POSTGRES_DB=stackframe -p 8128:5432 postgres:latest
sleep 5
docker logs db

- name: Build Docker image
run: docker build -f docker/server/Dockerfile -t server .

- name: Run Docker container and check logs
run: |
docker run --add-host=host.docker.internal:host-gateway --env-file docker/server/.env.example -p 8101:8101 -p 8102:8102 -d --name stackframe-server server
sleep 60
docker logs -t stackframe-server

- name: Check server health
run: |
check_health() {
local name="$1"
local url="$2"

echo "Attempting to connect to $name at $url..."
# Verbose request for debugging (ignore exit code)
curl -v "$url" || true

# Capture response code, allowing curl to fail without exiting the script
set +e
response_code=$(curl -s -o /dev/null -w "%{http_code}" "$url" 2>/dev/null)
curl_exit=$?
set -e

echo "Response code: '$response_code' (curl exit: $curl_exit)"

# Check if curl failed completely
if [ "$curl_exit" -ne 0 ]; then
echo "$name health check failed: curl exited with code $curl_exit"
return 1
fi

# Check if response code is empty
if [ -z "$response_code" ]; then
echo "$name health check failed: curl returned empty response code"
return 1
fi

# Check if response code is 200
if [ "$response_code" -ne 200 ]; then
echo "$name health check failed with status code: $response_code"
return 1
fi

echo "$name health check passed!"
return 0
}

check_health "dashboard" "http://localhost:8101" || exit 1
check_health "backend" "http://localhost:8102/health" || exit 1
44 changes: 0 additions & 44 deletions .github/workflows/docker-server-test.yaml

This file was deleted.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ node-compile-cache/

.vercel

# https://stackoverflow.com/questions/76510164/can-i-safely-delete-vite-config-ts-timestamp-files
vite.config.ts.timestamp-*

# Misc
.DS_Store
.eslintcache
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"Ciphertext",
"cjsx",
"clsx",
"dbgenerated",
"cmdk",
"codegen",
"crockford",
Expand Down
3 changes: 3 additions & 0 deletions apps/backend/.env
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ STACK_EMAIL_PASSWORD=# for local inbucket: none
STACK_EMAIL_SENDER=# for local inbucket: [email protected]
STACK_EMAILABLE_API_KEY=# for Emailable email validation, see https://emailable.com

STACK_DEFAULT_EMAIL_CAPACITY_PER_HOUR=# the number of emails a new project can send. Defaults to 200


# Database
# For local development: `docker run -it --rm -e POSTGRES_PASSWORD=password -p "8128:5432" postgres`
STACK_DATABASE_CONNECTION_STRING=# enter your connection string here. For local development: `postgres://postgres:PASSWORD-PLACEHOLDER--uqfEC1hmmv@localhost:8128/stackframe`
Expand Down
2 changes: 2 additions & 0 deletions apps/backend/.env.development
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ [email protected]

STACK_ACCESS_TOKEN_EXPIRATION_TIME=60s

STACK_DEFAULT_EMAIL_CAPACITY_PER_HOUR=10000

STACK_SVIX_SERVER_URL=http://localhost:${NEXT_PUBLIC_STACK_PORT_PREFIX:-81}13
STACK_SVIX_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NTUxNDA2MzksImV4cCI6MTk3MDUwMDYzOSwibmJmIjoxNjU1MTQwNjM5LCJpc3MiOiJzdml4LXNlcnZlciIsInN1YiI6Im9yZ18yM3JiOFlkR3FNVDBxSXpwZ0d3ZFhmSGlyTXUifQ.En8w77ZJWbd0qrMlHHupHUB-4cx17RfzFykseg95SUk

Expand Down
6 changes: 4 additions & 2 deletions apps/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
"name": "@stackframe/stack-backend",
"version": "2.8.57",
"private": true,
"type": "module",
"scripts": {
"clean": "rimraf src/generated && rimraf .next && rimraf node_modules",
"typecheck": "tsc --noEmit",
"with-env": "dotenv -c development --",
"with-env:prod": "dotenv -c --",
"dev": "concurrently -n \"dev,codegen,prisma-studio\" -k \"next dev --turbopack --port ${NEXT_PUBLIC_STACK_PORT_PREFIX:-81}02\" \"pnpm run codegen:watch\" \"pnpm run prisma-studio\"",
"dev": "concurrently -n \"dev,codegen,prisma-studio,email-queue\" -k \"next dev --turbopack --port ${NEXT_PUBLIC_STACK_PORT_PREFIX:-81}02\" \"pnpm run codegen:watch\" \"pnpm run prisma-studio\" \"pnpm run run-email-queue\"",
"build": "pnpm run codegen && next build",
"docker-build": "pnpm run codegen && next build --experimental-build-mode compile",
"build-self-host-migration-script": "tsup --config scripts/db-migrations.tsup.config.ts",
Expand Down Expand Up @@ -35,7 +36,8 @@
"generate-openapi-fumadocs": "pnpm run with-env tsx scripts/generate-openapi-fumadocs.ts",
"generate-keys": "pnpm run with-env tsx scripts/generate-keys.ts",
"db-seed-script": "pnpm run db:seed",
"verify-data-integrity": "pnpm run with-env tsx scripts/verify-data-integrity.ts"
"verify-data-integrity": "pnpm run with-env tsx scripts/verify-data-integrity.ts",
"run-email-queue": "pnpm run with-env tsx scripts/run-email-queue.ts"
},
"prisma": {
"seed": "pnpm run db-seed-script"
Expand Down
Loading