이 저장소는 BGM(보드게임 동호회)의 공식 홈페이지를 위한 코드를 포함하고 있습니다. Next.js 13 기반으로 제작되었습니다. https://bgm.namssy.com 에서 서비스되고있습니다.
- 체스 경기 결과를 기록할 수 있는 페이지
- 리더보드를 통해 선수들의 순위와 점수를 확인할 수 있는 페이지
개발을 시작하기 위해서 아래의 명령어를 사용하세요:
npm install -g yarn
yarn install
## ORM
# ref: https://www.prisma.io/docs/concepts/components/prisma-client/working-with-prismaclient/generating-prisma-client
npx prisma generate
또한 필요한 환경변수를 .env 혹은 .env.local에 저장하세요 아래 환경 변수가 필요합니다.
## ORM
# ref: https://www.prisma.io/docs/reference/database-reference/connection-urls
DATABASE_URL=
## Authorization
# ref: https://next-auth.js.org/configuration/options
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXTAUTH_URL=
NEXTAUTH_SECRET=
개발 서버를 실행하려면 아래의 명령어를 사용하세요:
yarn dev
http://localhost:4000 주소를 브라우저로 열면 결과를 볼 수 있습니다.
현재 Docker Swarm으로 관리되고 있습니다. 아래는 docker compose 예시 입니다.
version: '3'
services:
db:
image: postgres:15.4
restart: always
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER:
POSTGRES_PASSWORD:
POSTGRES_DB:
TZ: Asia/Seoul
ports:
- 5432:5432
web:
image: namssy/bgm-home
restart: always
ports:
- 3000:3000
depends_on:
- db
environment:
DATABASE_URL:
GOOGLE_CLIENT_ID:
GOOGLE_CLIENT_SECRET:
NEXTAUTH_URL:
NEXTAUTH_SECRET:
TZ: Asia/Seoul
volumes:
pgdata:
- Next.js
- Version 13
- App router
- Tailwind CSS
- Prisma
- postgresql
- Docker
- Docker swarm
- Portainer
- GitHub Action