Last Revised: 01.12.2026
Date Created: 01.22.2026
Latest Reviser: MyeongSeok Kang
Revisers: KMSStudio, Jihoon Kim, Jiho Ryu
Monorepo for the Altair Labatory project. It contains a Next.js web app plus shared auth and database packages. Postgres runs locally via Docker Compose.
- Node.js 20+ and npm
- Docker Desktop (with Compose)
- Git
npm install- Copy or edit
.envin the repo root to match your local Postgres settings. The default values in the sample.envwork with the provided Docker setup. DATABASE_URLmust match the container port (4821by default).
.env file must be located at root and written in given form.
| Key Name | Description |
|---|---|
NODE_ENV |
Application execution mode. |
GOOGLE_CLIENT_ID |
The OAuth client ID issued by Google. |
GOOGLE_CLIENT_SECRET |
The OAuth client secret associated with the Google client ID. |
NEXTAUTH_SECRET |
A secret key used by NextAuth to sign and encrypt sensitive authentication data. |
NEXTAUTH_URL |
The canonical base URL of the application. |
EMAIL_ID |
The email account ID (email address) used as the sender. |
EMAIL_PASSWORD |
The password or app-specific password for the email account. |
EMAIL_NAME |
The display name shown as the sender in the recipient’s inbox. |
EMAIL_DOMAIN |
The domain associated with the sender’s email address. |
EXPIRE_DURATION |
The number of minutes before a verification email token expires. |
IGNORE_EMAIL_VERIFY |
When set to '1' or 'true', verification email will not be sent. This option is for development purpose only. |
POSTGRES_DB |
The name of the PostgreSQL database. |
POSTGRES_USER |
The PostgreSQL user with access to the database. |
POSTGRES_PASSWORD |
The password for the PostgreSQL user. |
DATABASE_URL |
The PostgreSQL connection string. |
- Start Postgres
npm run db:up- Generate Prisma client and apply migrations
npm run prisma:generate
npm run prisma:migrate:dev- Seed initial data (optional if you only need an empty DB)
npm run prisma:seed- Run the web app
npm run web:dev
# open http://localhost:3000- Stop containers:
npm run db:down
- Drops the Postgres volume and removes all local data.
- Run
npm run db:reset, then re-apply migrations withnpm run prisma:migrate:dev. - If you need sample data again, rerun
npm run prisma:seed.
- Make sure the DB is running (
npm run db:up) and the client is generated. - Run
npm run prisma:studioand open http://localhost:5555.
apps/web— Next.js 16 front-endpackages/db— Prisma schema, migrations, seedpackages/auth— Auth utilities (depends on db)
This repository uses Prettier for formatting and ESLint for code-quality rules. Run linting before opening a PR. CI may fail if lint checks do not pass.
npm run web:lintnpm run web:lint:check- DB not ready: wait for the health check (Compose retries), or rerun
npm run db:up. - Prisma errors: confirm
DATABASE_URLmatches.envand the container port4821.