fix: PocketBase pb_data 권한(user 기본 비활성화)
Made-with: Cursor
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## 현재 버전
|
||||
|
||||
- `v0.0.7`
|
||||
- `v0.0.8`
|
||||
|
||||
NAS에 SSH로 올리는 **전체 순서**는 `docs/nas-deploy-guide.md`에 따로 정리했다.
|
||||
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# 의사결정 이력
|
||||
|
||||
## 2026-04-13 · v0.0.8 — PocketBase `user`와 `pb_data` 권한
|
||||
|
||||
호스트 바인드 `./pb_data`에 **`user: 1000:10`으로 기동**하면, 폴더가 root 소유이거나 비어 있을 때 SQLite가 **오류 14(unable to open database file)** 로 종료되는 경우가 잦다. 기본값에서는 `user`를 두지 않고 기동한 뒤, 필요 시 `chown` 후 `user`를 켜는 절차를 `docker-compose.yaml` 주석과 문서에 정리했다.
|
||||
|
||||
## 2026-04-13 · v0.0.7 — PocketBase Compose를 NAS 운영 패턴에 맞춤
|
||||
|
||||
NAS에서 이미 동작하던 PocketBase 설정(`user: 1000:10`, 호스트 `./pb_data` 바인드, `serve --dir=/pb_data` 명시, `container_name` pocketbase-todo)을 저장소 `docker-compose.yaml`에 반영했다. 기존 named volume `pocketbase_data`는 서비스가 바인드 마운트만 쓰므로 제거해 혼동을 줄였다.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## 현재 버전
|
||||
|
||||
- `v0.0.7`
|
||||
- `v0.0.8`
|
||||
|
||||
| 경로 | 역할 |
|
||||
| ------------------------- | ----------------------------------------- |
|
||||
@@ -15,7 +15,7 @@
|
||||
| `src/composables/useTodos.js` | 목록 로드·추가·완료 토글 |
|
||||
| `vite.config.js` | Vue 플러그인, PWA 매니페스트(`VITE_PUBLIC_APP_URL` 반영) |
|
||||
| `tailwind.config.js` | 테마 색·폰트 |
|
||||
| `docker-compose.yaml` | PocketBase(`pocketbase-todo`, `./pb_data`, `user`) + 웹(`todo-web`), 호스트 포트 42881·42917 |
|
||||
| `docker-compose.yaml` | PocketBase(`pocketbase-todo`, `./pb_data`, 선택 `user`) + 웹(`todo-web`), 호스트 포트 42881·42917 |
|
||||
| `Dockerfile` | Vite 빌드 후 nginx 이미지 |
|
||||
| `nginx.conf` | SPA 폴백 라우팅 |
|
||||
| `docs/nas-deploy-guide.md` | NAS SSH·Git 클론·Compose·PocketBase 설정 순서 |
|
||||
|
||||
@@ -322,6 +322,7 @@ PocketBase 컨테이너는 **기본적으로 HTTPS(TLS)를 제공하지 않는
|
||||
| `fatal: not a git repository` | `apps`가 아니라 **`cd todo`(클론한 폴더)** 안에서 실행했는지 확인한다. |
|
||||
| `git pull`이 안 되거나 안 받아짐 | 10절 순서대로 `git status`·`fetch`·`checkout main`·`pull --ff-only`, 로컬 수정·비공개 저장소 자격 확인 |
|
||||
| `ERR_SSL_VERSION_OR_CIPHER_MISMATCH` (`https://api…`) | 11-1절. 프록시 443·인증서·`proxy_pass`가 PB **HTTP** 포트로 가는지 확인 |
|
||||
| PocketBase `unable to open database file (14)` | `./pb_data` 쓰기 권한. `docker-compose.yaml`에서 `user: "1000:10"`을 켠 상태면 호스트에서 `sudo chown -R 1000:10 pb_data`. 또는 `user` 줄을 주석으로 둔 채 기동해 DB 생성 후 `chown`하고 `user` 재적용. |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## 현재 버전
|
||||
|
||||
- `v0.0.7`
|
||||
- `v0.0.8`
|
||||
|
||||
## 스택
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
Compose에서 **`container_name`** 을 고정해 두었다: `pocketbase-todo`, `todo-web`. NAS에 같은 이름의 컨테이너가 이미 있으면 `docker-compose.yaml`에서 바꾼다.
|
||||
|
||||
PocketBase 데이터는 **호스트 바인드 마운트** `./pb_data:/pb_data`를 쓴다(저장소에는 디렉터리만 두고 내용은 Git에 포함하지 않음). 컨테이너 **`user: "1000:10"`** 은 UGREEN 등 NAS에서 흔한 UID/GID 조합이다. 권한 오류가 나면 호스트의 `pb_data` 소유권을 맞추거나 `user` 값을 환경에 맞게 바꾼다.
|
||||
PocketBase 데이터는 **호스트 바인드 마운트** `./pb_data:/pb_data`를 쓴다(저장소에는 디렉터리만 두고 내용은 Git에 포함하지 않음). 기본 Compose에서는 **`user`를 두지 않아** 이미지 기본 사용자로 기동한다(SQLite가 `pb_data`에 쓸 수 있게). UGREEN 등에서 **`user: "1000:10"`** 으로 고정하려면 `docker-compose.yaml`의 해당 줄 주석을 해제하기 **전에** 호스트에서 `mkdir -p pb_data` 후 `chown -R 1000:10 pb_data`로 소유권을 맞춘다.
|
||||
|
||||
## 버전 정책
|
||||
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# 업데이트 로그
|
||||
|
||||
## v0.0.8
|
||||
|
||||
- ~수정. PocketBase `unable to open database file (14)` 대비: 기본 `user` 비활성화(주석), `pb_data` 권한 안내·13절 표 추가.
|
||||
|
||||
## v0.0.7
|
||||
|
||||
- ~수정. `docker-compose.yaml` PocketBase를 NAS 검증 설정과 정렬(`user`, `./pb_data`, `command`, `container_name` pocketbase-todo). 미사용 named volume 제거.
|
||||
|
||||
Reference in New Issue
Block a user