This project is a content management system (CMS) based on Payload CMS, using Supabase (PostgreSQL) as its database.
- pnpm v9 (via Corepack)
- Supabase Account (Managed Database)
- Docker & Docker Compose (Optional for local development)
This project uses Corepack to define a consistent version of pnpm (v9.15.9). Make sure Corepack is active:
corepack enableAfter that, the pnpm command will automatically use the version specified in package.json.
The project is configured to use Supabase for its database.
-
Configure
.env: Copy the connection string from your Supabase project dashboard (Settings > Database > Connection string > URI). Use the Transaction Mode (Port 6543) if you use connection pooling, or Session Mode (Port 5432) for direct connections.DATABASE_URI= PAYLOAD_SECRET= NEXT_PUBLIC_SERVER_URL= S3_ENDPOINT= S3_REGION= S3_ACCESS_KEY_ID= S3_SECRET_ACCESS_KEY= S3_BUCKET=
-
Install Dependencies:
pnpm install
-
Sync Database Schema:
pnpm payload:db-push
-
Run Development Server:
pnpm dev
If you prefer to run a local PostgreSQL instance:
- Configure
.envfor Docker:DATABASE_URI= PAYLOAD_SECRET= NEXT_PUBLIC_SERVER_URL= S3_ENDPOINT= S3_REGION= S3_ACCESS_KEY_ID= S3_SECRET_ACCESS_KEY= S3_BUCKET=
- Run Docker Compose:
docker compose up -d
- Stop Docker:
docker compose down
- View Logs (Docker):
docker compose logs -f payload
- Generate Types (TypeScript):
pnpm generate:types
- Generate Import Map:
pnpm generate:importmap
- Push Database Schema:
pnpm payload:db-push
- Run Development Server (Clean):
pnpm devsafe
- Build Project:
pnpm build
- Run Tests:
pnpm test
src/collections/: Configuration for data collections (Users, Media, Events, FAQ, SocialMedia, Books, BookCategories, BorrowingRecords).src/globals/: Configuration for global data (Biography, Events, FAQ, HomePage, SiteSettings).src/app/: Next.js application folder (contains frontend and admin routes).public/: Static files such as images, logos, and favicons.
This project is private. Any use must have the permission of the owner.