Rebuild the hub on Bun: Elysia API, Better Auth, Drizzle, Next.js website
CI / test (push) Successful in 30s

The hub becomes a Bun monorepo: apps/api (Elysia, Better Auth for accounts, roles, bans, proxy device
sign-in and JWT keys; tagline linking, presence and the console as before), packages/db (Drizzle; Postgres in
production, PGlite in development and tests), and the Next.js website from apps/web. Self-hostable with
docker compose; the website deploys to Vercel-style hosts, the API to any that runs Bun or containers. The
first version, in Go, is removed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-29 05:03:54 -07:00
1 parent 64c552330b
commit 7a06ba49c3
59 files changed
+2640 -3523

No files matched your search

+15 -20
View File
@@ -1,4 +1,4 @@
# Tests the hub (against a real Postgres, a service container here) and builds it.
# Type-checks, tests (the API against PGlite, an in-process Postgres) and builds the hub.
name: CI
on:
@@ -10,30 +10,25 @@ on:
jobs:
test:
runs-on: ubuntu-latest
env:
GOPRIVATE: git.t5de.dev
# Jobs run as root, which embedded Postgres refuses: the tests use this service instead.
T5DE_TEST_DB: postgres://postgres:postgres@postgres:5432/postgres?sslmode=disable
services:
postgres:
image: postgres:17
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd "pg_isready -U postgres" --health-interval 2s --health-timeout 5s --health-retries 30
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
- uses: oven-sh/setup-bun@v2
with:
go-version-file: go.mod
bun-version: 1.4.4
- uses: actions/setup-node@v4
with:
node-version: 26
- name: Install
run: bun install --frozen-lockfile
- name: Check types
run: bun run check-types
- name: Test
run: |
unformatted=$(gofmt -l .)
if [ -n "$unformatted" ]; then echo "Not gofmt-formatted: $unformatted"; exit 1; fi
go vet ./...
go test ./...
run: bun run test
- name: Build
run: CGO_ENABLED=0 go build -trimpath -o dist/t5de-hub ./cmd/t5de-hub
run: bun run build