Files
todo.sori.studio/docs/deploy.md
2026-04-13 13:56:24 +09:00

1.9 KiB

배포 가이드

현재 버전

  • v0.0.2

NAS에 SSH로 올리는 전체 순서docs/nas-deploy-guide.md에 따로 정리했다.

로컬 개발

  1. cp .env.example .envVITE_POCKETBASE_URL을 실제 PocketBase 주소로 맞춘다.
  2. npm install
  3. npm run dev

PocketBase는 Docker로 띄우려면 docker compose up pocketbase만 실행해도 된다(기본 8090).

Docker Compose(웹 + PocketBase)

프로젝트 루트에서:

export VITE_POCKETBASE_URL="http://<이_기기_IP>:8090"
docker compose up -d --build
  • 웹: http://<이_기기_IP>:8080
  • PocketBase 관리자: http://<이_기기_IP>:8090/_/

중요: VITE_POCKETBASE_URL컨테이너가 아니라 브라우저에서 접근한다. 같은 PC에서만 쓸 때는 http://127.0.0.1:8090이 가능하지만, 휴대폰 등 다른 기기에서 접속할 때는 NAS/PC의 LAN IP 또는 공인 도메인을 사용해야 한다.

PocketBase 초기 설정 요약

  1. 관리자 UI에서 컬렉션 todos 생성(title text, done bool).
  2. API 규칙을 배포 방식에 맞게 설정(인증 사용 시 로그인 사용자만 생성·수정 가능 등).
  3. CORS 허용 출처에 웹 앱 출처(예: http://<IP>:8080)를 추가한다.

선택: 관리자 자동 생성

docker-compose.ymlpocketbase 서비스에 PB_ADMIN_EMAIL, PB_ADMIN_PASSWORD 환경 변수를 추가할 수 있다. 값은 저장소에 넣지 말고 NAS 비밀 관리 방식으로 주입한다.

단일 이미지(웹만)

Dockerfile은 정적 빌드 결과를 nginx로 제공한다. 빌드 시점에 VITE_POCKETBASE_URL이 번들에 포함된다.

docker build --build-arg VITE_POCKETBASE_URL="https://pb.example.com" -t todo-web .

PWA·HTTPS

홈 화면 추가·서비스 워커 동작은 브라우저마다 다르며, HTTPS를 쓰는 것이 안정적이다. NAS 리버스 프록시에서 TLS를 종료하는 구성을 권장한다.