Skip to content

Chia1104/chia1104.dev

Repository files navigation

Chia1104.dev

www deployment Next.js version Licensed under MIT GitHub repo size

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.

🔨 Languages and Tools

typescript nextjs nestjs turborepo tailwindcss framer-motion vitest playwright docker redis postgresql

🌐 Deployments

www

dash

🚀 Deploy your own

Vercel

Deploy with Vercel

  • Create a new project on Vercel, select the apps/www (or apps/dash) folder as the root directory:

Vercel build settings

Railway

Deploy on Railway

  • Overwrite the railway.json file with the following content (recommended):

Railway environment variables

  • or add the following environment variables:

Railway environment variables

Zeabur

you can deploy www, dash and service applications to Zeabur, and make sure that the services name are www, dash and service respectively.

Zeabur build settings

🏗️ Project Structure

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)

🎉 Get Started

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