Rebuild the hub on Bun: Elysia API, Better Auth, Drizzle, Next.js website
CI / test (push) Successful in 30s
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:
1 parent
64c552330b
commit
7a06ba49c3
59 files changed
+2640
-3523
No files matched your search
@@ -0,0 +1,37 @@
|
||||
# Runs the whole hub: Postgres, the API (port 4101) and the website (port 4100). Set AUTH_SECRET, and the public
|
||||
# addresses when they aren't localhost (API_PUBLIC_URL, WEB_PUBLIC_URL):
|
||||
# AUTH_SECRET=$(openssl rand -base64 32) docker compose up -d
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17
|
||||
environment:
|
||||
POSTGRES_USER: t5de
|
||||
POSTGRES_PASSWORD: t5de
|
||||
POSTGRES_DB: t5de_hub
|
||||
volumes: [postgres:/var/lib/postgresql/data]
|
||||
healthcheck:
|
||||
test: ["CMD", "pg_isready", "-U", "t5de"]
|
||||
interval: 2s
|
||||
retries: 30
|
||||
|
||||
api:
|
||||
build: { context: ., dockerfile: apps/api/Dockerfile }
|
||||
environment:
|
||||
DATABASE_URL: postgres://t5de:t5de@postgres:5432/t5de_hub
|
||||
AUTH_SECRET: ${AUTH_SECRET:?set AUTH_SECRET}
|
||||
# T5DE's proxies reach the API directly (sign-in and the WebSocket); the website reaches it through its own /api.
|
||||
API_URL: ${API_PUBLIC_URL:-http://localhost:4101}
|
||||
WEB_URL: ${WEB_PUBLIC_URL:-http://localhost:4100}
|
||||
ports: ["4101:4101"]
|
||||
depends_on:
|
||||
postgres: { condition: service_healthy }
|
||||
|
||||
web:
|
||||
build: { context: ., dockerfile: apps/web/Dockerfile }
|
||||
environment:
|
||||
API_URL: http://api:4101
|
||||
ports: ["4100:4100"]
|
||||
depends_on: [api]
|
||||
|
||||
volumes:
|
||||
postgres:
|
||||
Reference in new issue
Block a user