The project is still under development.
This is my personal website, a monorepo managed using Turborepo. The development is based on the app structure of NextJS, with the use of TailwindCSS and Typescript. For backend functionalities, PostgreSQL and Redis are utilized to store articles and limit API traffic.
Finally, the website is deployed to the Zeabur platform using Docker, and GitHub Actions are used for integration testing.
- Create a new project on Vercel, select the
apps/www
(orapps/dash
) folder as the root directory:
- Overwrite the
railway.json
file with the following content (recommended):
- or add the following environment variables:
you can deploy www
, dash
and service
applications to Zeabur, and make sure that the services name are www
, dash
and service
respectively.
chia1104.dev
├── apps
│ ├── service (NestJS)
│ ├── dash (NextJS)
│ └── www (NextJS)
├── packages
│ ├── api (tRPC API, for nextjs)
│ ├── auth (AuthJS)
│ ├── utils (shared utilities)
│ ├── ui (shared components)
│ └── db (prisma orm)
├── toolings
│ ├── tailwind (tailwind config and css files)
│ └── tsconfig (base, nextjs, react)
└── tests
├── www-e2e (playwright e2e tests)
└── dash-e2e (WIP)
You can run the following commands to initialize the project.
make init
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
pnpm dev:www
Testing the app.
pnpm test && pnpm test:e2e
Build the docker image
docker build -f ./apps/www/Dockerfile -t web:v2 .
docker run -p 8080:8080 web:v2