Skip to content

v0.2.1

Choose a tag to compare

@eigger eigger released this 02 Sep 00:11
· 19 commits to master since this release
32e7ca3

v0.2.0 이하는 Docker/Proxmox 배포에서 API가 기동하지 않습니다. 이 릴리스로 올리십시오.

고친 것

API가 기동하지 않던 문제

compose의 api 커맨드가 migrate deploy && prisma db seed && node … 였습니다. prisma.config.tsseed: "tsx prisma/seed.ts"실행 시점 cwd 기준으로 풀리는데, 컨테이너 cwd가 /app이라 /app/prisma/seed.ts를 찾다 실패합니다(실제 위치는 /app/apps/api/prisma/seed.ts). && 체인이라 node index.js가 아예 실행되지 않았습니다.

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/app/prisma/seed.ts' imported from /app/

증상은 관리자 생성 화면 대신 로그인 화면이 뜨고 어떤 계정으로도 로그인되지 않음이었습니다. /api/*가 전부 실패하기 때문입니다.

기동 커맨드에서 시드 단계를 뺐습니다. 시스템 EventType은 API가 기동할 때 seedSystemEventTypes가 직접 시드하므로 원래 중복 단계였습니다.

로그인 화면이 원인을 가리던 문제

/api/auth/bootstrap/status 호출 실패를 전부 needsBootstrap: false로 흡수해서, "관리자가 이미 있다"와 "서버에 못 닿는다"가 같은 화면으로 보였습니다. 이제 구분해서 안내와 재시도 버튼을 띄웁니다. 첫 부팅에 마이그레이션이 도는 동안 접속해도 마찬가지입니다.

시드의 기본 관리자 계정 제거

시드 CLI가 ADMIN_PASSWORD 없이도 admin@example.com / changeme123 관리자를 만들었습니다. 비밀번호가 공개 저장소에 그대로 있고, 시드가 한 번이라도 돌면 user.count()가 1이 되어 로그인 화면의 최초 관리자 생성 분기가 영영 열리지 않습니다.

이제 ADMIN_PASSWORD를 명시한 경우에만 관리자를 만듭니다. Docker 배포에서는 위 오류로 시드가 실행된 적이 없지만, 로컬에서 npm run seed를 돌린 적이 있다면 확인하십시오 — docs/deploy.md §6.2.

업그레이드

update

즉시 조치가 필요하면 컨테이너 안에서:

cd /opt/kibble
sed -i 's| && npx prisma db seed --config apps/api/prisma.config.ts||' docker-compose.prod.yml
docker compose -f docker-compose.prod.yml up -d

문서

  • .env.example · docs/deploy.mdADMIN_* 환경변수 문서화 (기존에는 문서에 없는 조용한 기본값이었습니다)
  • docs/deploy.md §6.1 · §6.2 — 기존 설치 대응 절차
  • apps/api/prisma.config.ts — seed 경로가 cwd 기준이라는 주석

Full Changelog: v0.2.0...v0.2.1