From 31f4e900b3b3cb680cf32d0ae57b00abe6ccb72e Mon Sep 17 00:00:00 2001 From: Neru_Han Date: Fri, 21 Aug 2026 18:48:50 +0900 Subject: [PATCH] docs: generalize deployment instructions in README for public repository audience --- .cline-context.md | 4 ++-- README.md | 20 ++++++++------------ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.cline-context.md b/.cline-context.md index 8fc4c81..4e0e0c4 100644 --- a/.cline-context.md +++ b/.cline-context.md @@ -26,9 +26,9 @@ - Added localized i18n strings for Export across English, Korean, and Japanese. - Configured production multi-stage `Dockerfile` with standalone Next.js runner, Prisma CLI migrations support, and automated `docker-entrypoint.sh` startup script. - Added `.dockerignore` for minimal context transfer and fast build times. - - Refined `docker-compose.yml` and `.env.example` to support standalone 2-file deployment (`docker-compose.yml` + `.env`) without cloning source code, prebuilt registry images (`CHECKFLOW_IMAGE`), Watchtower auto-updating labels, and automated database migrations. + - Refined `docker-compose.yml` and `.env.example` to support standalone 2-file deployment (`docker-compose.yml` + `.env`) without cloning source code, public registry images (`CHECKFLOW_IMAGE`), Watchtower auto-updating labels, and automated database migrations. - Automated Gitea Actions CI workflow (`.gitea/workflows/docker-build.yaml`) for building & pushing container images to Gitea Container Registry with lowercase repository name normalization (`env.REPO`) and OCI source labels (`org.opencontainers.image.source`) for automatic repository package linkage. - - Completely revamped `README.md` to reflect standalone 2-file Docker deployment (with curl/wget commands), Watchtower auto-update, architecture, and open-standard CalDAV sync guidelines. + - Completely revamped `README.md` to reflect universal 2-file Docker deployment for general users, Watchtower auto-update, architecture, and open-standard CalDAV sync guidelines. - Validated that `npm run lint` and `npm run build` execute with 0 errors and 0 warnings. - **Next Steps (Todo):** diff --git a/README.md b/README.md index 67cdc09..aa2e188 100644 --- a/README.md +++ b/README.md @@ -108,27 +108,23 @@ PORT=3000 CHECKFLOW_IMAGE=git.nrh.kr/neru_han/checkflow:latest ``` -### 3. 컨테이너 이미지 풀(Pull) 및 실행 -Gitea 패키지 레지스트리가 비공개인 경우 먼저 도커 로그인을 수행합니다 (공개 레지스트리인 경우 생략 가능): +### 3. 서비스 실행 및 자동 마이그레이션 +최신 패키지 이미지를 다운로드하고 서비스를 실행합니다: ```bash -# (비공개 레지스트리인 경우 1회 로그인) -docker login git.nrh.kr - -# 최신 배포 이미지 다운로드 +# 최신 공개 이미지 다운로드 docker compose pull # 백그라운드 서비스 시작 docker compose up -d ``` -> 💡 **자동 DB 마이그레이션**: 컨테이너가 시작될 때 PostgreSQL 데이터베이스 준비 상태를 확인한 후 `prisma migrate deploy`를 자동 수행하므로 별도의 수동 DB 설정이 전혀 필요하지 않습니다. +> 💡 **자동 DB 마이그레이션**: 컨테이너 구동 시 `docker-entrypoint.sh`가 PostgreSQL 데이터베이스 연결을 확인한 후 `prisma migrate deploy`를 자동 실행하므로 수동 DB 마이그레이션 작업이 필요하지 않습니다. -### 🔄 Watchtower 기반 무중단 자동 갱신 -`docker-compose.yml`에는 `com.centurylinklabs.watchtower.enable=true` 라벨이 기본 적용되어 있습니다. -Gitea Actions CI 파이프라인을 통해 새 이미지가 레지스트리에 푸시되면, Watchtower가 이를 감지하여 컨테이너를 자동으로 최신 상태로 갱신합니다: +### 🔄 Watchtower 기반 자동 업데이트 (선택 사항) +`docker-compose.yml`에는 `com.centurylinklabs.watchtower.enable=true` 라벨이 구성되어 있습니다. +Watchtower를 사용하면 새로운 릴리즈 이미지가 배포되었을 때 컨테이너를 자동으로 감지하여 최신 버전으로 갱신할 수 있습니다: ```bash -# Watchtower가 실행 중인 경우 CheckFlow 컨테이너 자동 감지 & 갱신 docker run -d \ --name watchtower \ --restart unless-stopped \ @@ -136,7 +132,7 @@ docker run -d \ containrrr/watchtower --interval 300 --cleanup --label-enable ``` -브라우저에서 설정한 도메인(`https://todo.yourdomain.com` 또는 `http://서버IP:3000`)에 접속하여 첫 관리자 계정을 생성하고 바로 사용을 시작하세요. +브라우저에서 설정한 주소(`https://todo.yourdomain.com` 또는 `http://서버IP:3000`)에 접속하여 첫 계정(관리자)을 등록하고 바로 사용을 시작하세요. ---