Skip to content

Commit 1c41b82

Browse files
SOIVclaude
andcommitted
docs: 배포 전략 재정립 및 가계부 설계 문서 정비
- 배포 우선순위 재정립: Docker AIO > PM2 > Cloudflare(준지원) > Native(비공식) - 00-overview.md: 지원 수준 표 및 개발 우선순위 업데이트 - 01-installation.md: Docker AIO(SQLite/PostgreSQL), PM2, Cloudflare Tunnel, Native 섹션 구조 전면 정리 - 00-default-modules.md: amount 필드 설명 수정(양수+type), API 엔드포인트 목록 완성 - 01-development-plan.md: 카테고리·결제수단 관리 UI 완료 체크, 로드맵 항목 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 8152b38 commit 1c41b82

4 files changed

Lines changed: 175 additions & 375 deletions

File tree

docs/v2_FINANCIAL-LEDGER/deployment/00-overview.md

Lines changed: 46 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -2,180 +2,88 @@
22

33
## 개요
44
Fieldstack는 **셀프호스트 가능한 SaaS형 플랫폼**을 목표로 한다.
5-
홈서버, 클라우드, 서버(VPS/NAS)**어디서 실행되든 동일한 사용자 경험(GUI 중심)**을 제공하며,
5+
홈서버, 클라우드, NAS 등 **어디서 실행되든 동일한 사용자 경험(GUI 중심)**을 제공하며,
66
실행 환경 차이는 *배포/운영 방식*으로만 흡수한다.
77

8-
본 문서는 Fieldstack의 **공식 실행 모델(배포 버전)**과 각 버전의 역할, 공통 원칙을 정리한다.
9-
108
---
119

1210
## 핵심 설계 원칙
1311

14-
1. **Core 단일화**
15-
- 모든 버전은 동일한 Fieldstack Core를 사용한다.
16-
- 기능 분기 없음, 코드베이스 1개 유지.
17-
18-
2. **GUI(Web) 우선 정책**
19-
- 모든 버전은 웹 GUI를 통한 설정 및 사용을 기본으로 한다.
20-
- 사용자는 CLI 없이도 모든 일반 기능을 사용할 수 있어야 한다.
21-
22-
3. **CLI는 예외적 도구**
23-
- CLI는 운영/복구/자동화를 위한 도구이며, 필수 사용 요소가 아니다.
24-
- OS 버전에서만 추가적으로 강화 제공한다.
25-
26-
4. **배포 방식 분리, 경험 통일**
27-
- Docker / Cloudflare / OS 환경은 다르지만,
28-
- 사용자 경험과 기능 접근 방식은 동일하게 유지한다.
12+
1. **Core 단일화** — 모든 버전은 동일한 Fieldstack Core를 사용한다. 기능 분기 없음.
13+
2. **GUI(Web) 우선** — 모든 설정과 사용은 웹 GUI를 기본으로 한다. CLI는 예외적 복구 도구.
14+
3. **배포 방식 분리, 경험 통일** — 환경이 달라도 사용자 경험은 동일하게 유지한다.
2915

3016
---
3117

32-
## 실행 / 배포 버전 구성
18+
## 공식 지원 실행 모델
3319

34-
Fieldstack는 **4가지 공식 실행 모델**을 제공합니다.
20+
### ⭐ 1순위 — Docker AIO (All-In-One)
21+
**표준 권장 실행 모델**
3522

36-
### 0. Native(CLI) 버전
37-
**Docker 미사용 환경 모델**
23+
Nextcloud AIO와 동일한 방식. 단일 Docker 이미지로 앱·DB를 모두 포함하여 제공한다.
24+
홈서버, NAS(TrueNAS SCALE, Synology), VPS, Railway 등 Docker가 지원되는 모든 환경에서 동작한다.
3825

39-
- PM2와 같은 프로그램을 두고 24/7로 상시 구동할 수 있도록 제공
40-
- Docker 미설치 환경 → PM2 상시 구동 가능
41-
- systemd로도 24/7 상시 구동 가능 (단일 프로세스 기준)
42-
- 단, OS Native 버전 사용을 권장
26+
```bash
27+
docker-compose up -d
28+
# → http://localhost:3000 접속 → 설치 마법사 시작
29+
```
4330

44-
---
45-
46-
### 1. Docker 버전
47-
**Fieldstack의 표준 실행 모델**
31+
- SQLite: 컨테이너 하나로 완결 (별도 DB 불필요)
32+
- PostgreSQL: docker-compose에 postgres 서비스가 자동으로 함께 구성됨
4833

49-
- Docker / Docker Compose 기반
50-
- 홈서버, NAS, VPS, 개발 환경 공용
51-
52-
**특징**
53-
- 표준 포트 구성 (3000)
54-
- All-in-one 이미지
55-
- 모든 문서의 기준점
34+
Cloudflare Tunnel 연동은 Docker 버전의 확장 옵션으로 제공한다 (`cloudflared` 서비스 추가).
5635

5736
---
5837

59-
### 2. Cloudflare 버전
60-
**외부 접속 프리셋**
38+
### 2순위 — PM2
39+
**Docker 불가 환경용**
6140

62-
- Docker 기반 + Cloudflare 설정
63-
- Tunnel / HTTPS 자동화
64-
- 네트워크 지식 불필요
41+
Docker를 설치할 수 없거나 사용하지 않는 환경(공유 호스팅, 저사양 기기 등)을 위한 옵션.
42+
AIO 이미지 대신 소스 빌드 후 PM2로 실행한다.
6543

66-
**특징**
67-
- 포트포워딩 불필요
68-
- IP 노출 없음
69-
- 무료 SSL/TLS
44+
```bash
45+
pnpm build
46+
pm2 start apps/api/dist/index.js --name fieldstack
47+
```
7048

71-
---
72-
73-
### 3. OS Native 버전
74-
**서버 운영자용**
75-
76-
- Ubuntu / Debian 커널 기반
77-
- systemd 서비스
78-
- Docker 없이 실행
79-
80-
**특징**
81-
- 네이티브 성능
82-
- 서버 소프트웨어 수준 통합
83-
- 강화된 CLI 제공
84-
85-
**제공 방식 예시**
86-
- TrueNAS
87-
- Proxmox
49+
DB는 SQLite(기본) 또는 사용자가 직접 설치한 PostgreSQL에 연결한다.
8850

8951
---
9052

91-
## 관리 구조
92-
93-
| 구분 | Native/CLI | Docker | Cloudflare | OS Native |
94-
|------|-----------|--------|------------|-----------|
95-
| Core | ✅ 공통 | ✅ 공통 | ✅ 공통 | ✅ 공통 |
96-
| GUI | ✅ 웹 | ✅ 웹 | ✅ 웹 | ✅ 웹 |
97-
| Runtime | PM2 | Docker | Docker + Tunnel | systemd |
98-
| CLI | 기본 | 기본 | 기본 | 강화 |
99-
| 권장도 | ⚠️ 임시 | ⭐⭐⭐ | ⭐⭐ ||
100-
101-
---
53+
### 참고 — Native / systemd (비공식)
54+
**공식 지원 아님 — 고급 사용자용**
10255

103-
## 사실상 관리되는 4가지 축
56+
`git clone` 후 직접 빌드하여 사용할 수 있으나 공식적으로 지원하지 않는다.
57+
Docker AIO 이미지를 제공받지 못하며, 업데이트 편의성이 낮다.
58+
systemd 서비스 등록은 문서에 힌트만 제공하며, 안정성은 보장하지 않는다.
10459

105-
| 구분 | 설명 |
106-
|--------|---------|
107-
| Core | Fieldstack 핵심 로직 (공통) |
108-
| Web GUI | 설정/사용 인터페이스 (공통, 기본) |
109-
| Runtime | Docker / PM2 / systemd |
110-
| Control | CLI 제공 여부 및 역할 |
111-
112-
> 참고: systemd는 단일 프로세스 상시 구동에 적합하며,
113-
> 멀티코어 활용이 필요하면 PM2(클러스터)나 Node.js 클러스터 방식 고려.
114-
115-
---
116-
117-
## GUI(Web) 정책
118-
119-
모든 버전 공통:
120-
- 초기 설정
121-
- 서비스 설정
122-
- 사용자 관리
123-
- 데이터 관리
124-
- 외부 접속 설정
125-
126-
👉 **전부 웹 GUI에서 처리 가능해야 한다.**
127-
128-
웹 GUI는 Fieldstack의 **주 인터페이스**이며,
129-
CLI는 이를 대체하지 않는다.
60+
> Proxmox, TrueNAS CORE 등 Docker를 지원하지 않는 환경이라면 PM2 방식을 권장한다.
13061
13162
---
13263

133-
## CLI 정책 (OS 버전 중심)
64+
## 지원 수준 요약
13465

135-
### CLI 제공 목적
136-
- 웹 GUI 장애 시 복구
137-
- 초기 설치/재설정
138-
- 상태 점검
139-
- 백업/복구
140-
- Mode 1 계정 복구 (Local CLI reset)
141-
- 무인 환경 자동화
142-
143-
### CLI 역할 제한
144-
- 일반 사용자 기능 제공 ❌
145-
- 일상적 설정 변경 ❌
146-
- 웹 GUI 대체 ❌
147-
148-
### CLI 성격 정의
149-
> CLI는 **운영자의 안전장치**이며,
150-
> 웹 GUI는 **사용자의 기본 인터페이스**다.
66+
| 구분 | Docker AIO | PM2 | Cloudflare | Native/systemd |
67+
|------|:---:|:---:|:---:|:---:|
68+
| 공식 지원 |||| ❌ (참고 문서만) |
69+
| AIO 이미지 제공 |||||
70+
| DB 자동 구성 || ❌ (수동) | ✅ (D1) | ❌ (수동) |
71+
| Cloudflare Tunnel | ✅ (확장 옵션) | 별도 설치 | 해당 없음 | 별도 설치 |
72+
| 업데이트 편의 | ✅ 이미지 pull | 보통 | 느림 (별도 배포) | 낮음 |
73+
| 권장도 | ⭐⭐⭐ | ⭐⭐ || ⚠️ |
15174

15275
---
15376

154-
## 권장 개발 우선순위
155-
156-
1. **Docker (일반 + 비도커 포함)**
157-
- Core 개발 기준
158-
- 문서 및 테스트 기준
159-
160-
2. **Cloudflare 버전**
161-
- Docker 기반 확장
162-
- 외부 접속 프리셋 제공
77+
## 개발 우선순위
16378

164-
3. **OS 버전 (Linux)**
165-
- Docker 구조를 네이티브로 이식
166-
- systemd + CLI 추가
79+
1. **Docker AIO** — 메인 타깃. 모든 문서·테스트의 기준.
80+
2. **PM2** — 보조. Docker AIO와 빌드 결과물 공유.
81+
3. **Cloudflare Workers/Pages** — Docker/PM2 이후. Workers 런타임 별도 대응 필요, 업데이트 배포 주기가 PM2보다 느림. 공식 지원으로 분류되지만 Docker AIO 기준 릴리즈보다 한두 버전 뒤처질 수 있으며, 사실상 준(準)지원에 가깝다.
82+
4. **Native/systemd** — 별도 구현 없음. 참고 문서만 유지.
16783

16884
---
16985

17086
## 한 문장 정의
17187

172-
> **Fieldstack는 Docker, Cloudflare, Linux 환경 어디서든 실행 가능한
173-
> 셀프호스트 SaaS형 플랫폼이며,
88+
> **Fieldstack는 Docker AIO 이미지를 기본으로 제공하는 셀프호스트 플랫폼이며,
17489
> 모든 설정과 사용은 웹 GUI를 기본으로 한다.**
175-
176-
---
177-
178-
## 비고
179-
- 기능 분기는 존재하지 않는다.
180-
- 차이는 오직 **배포 방식과 운영 도구**에만 존재한다.
181-
- 사용자는 환경을 선택할 뿐, 제품을 다시 배울 필요가 없다.

0 commit comments

Comments
 (0)