| .. | ||
| auth-realtime | ||
| core | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| Makefile | ||
| README.md | ||
Server
To build and run the core and auth-realtime applications simply use the following command:
make run
By default the following ports are opened:
8080- core application's HTTP and WebSocket server.8081- auth-realtime's Hocuspocus HTTP and WebSocket server.
Database Schema
core/internal/db/schema.sql is the schema that all core migrations produce,
dumped with pg_dump from a test Postgres. After adding a migration, run
make schema in server/core. Core's tests fail while the file is stale.
The file is for reading and diffing only. Each foreign key sits next to its
table, so some point at tables created further down, and psql -f fails on it.
Better Auth
Using Migrations
Nothing to do by hand: the Better Auth tables are owned by core's SQL
migrations (server/core/internal/db/migrations/), which are embedded in the
binary and applied automatically on startup.
Generating the Reference Schema
auth-realtime/sql/better_auth_schema.sql is a generated reference of the
schema Better Auth expects — regenerate it after changing the Better Auth
config in src/auth.ts and diff it against core's migrations to see whether a
new migration is needed.
To generate it, start a postgres container:
docker run \
--name betterauth-db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=betterauth \
-p 5432:5432 \
--rm \
postgres
Then put the DB DSN values into the env var:
OXYNOTE_AUTH_REALTIME_DB_DSN=postgresql://postgres:postgres@localhost:5432/betterauth
Then, from within the auth-realtime directory, run (make sure that other env vars
that are needed by src/auth.ts are available and exported too):
source ../../docker/env/auth-realtime.local.env && npx @better-auth/cli generate --output ./sql/better_auth_schema.sql