Initial commit: add FastAPI MVP (모프) and existing web app
Includes FastAPI+Jinja2+HTMX+SQLite implementation with seed categories, plus deployment templates. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
94
docs/deploy-ubuntu-docker.md
Normal file
94
docs/deploy-ubuntu-docker.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Ubuntu 22.04 + Docker로 운영 배포 (prompt.ncue.net)
|
||||
|
||||
목표: `https://prompt.ncue.net` → Caddy(자동 HTTPS) → `web`(Next.js) → PostgreSQL(`ncue.net/all_prompt`)
|
||||
|
||||
## 1) 서버 사전 준비
|
||||
|
||||
### 1.1 DNS
|
||||
|
||||
- `prompt.ncue.net` A 레코드가 서버 공인 IP를 가리키도록 설정
|
||||
|
||||
### 1.2 방화벽
|
||||
|
||||
- TCP 80, 443 오픈
|
||||
|
||||
### 1.3 Docker 설치
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ca-certificates curl gnupg
|
||||
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||||
$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
## 2) 배포
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /opt/all-prompt
|
||||
sudo chown -R $USER:$USER /opt/all-prompt
|
||||
|
||||
cd /opt/all-prompt
|
||||
git clone <YOUR_REPO_URL> .
|
||||
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
`.env` 필수:
|
||||
|
||||
- `DATABASE_URL`: `postgresql://ncue:<PASSWORD>@ncue.net:5432/all_prompt?schema=public`
|
||||
- `CADDY_EMAIL`: 인증서 발급용 이메일
|
||||
|
||||
실행:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
확인:
|
||||
|
||||
- `https://prompt.ncue.net/api/health`
|
||||
- `https://prompt.ncue.net/entities`
|
||||
- `https://prompt.ncue.net/prompts`
|
||||
|
||||
## 3) 초기 스키마/시드(필요할 때만 1회)
|
||||
|
||||
> 원격 DB에 테이블이 없다면 실행.
|
||||
|
||||
```bash
|
||||
docker compose --profile init run --rm db_init
|
||||
docker compose --profile init run --rm db_seed
|
||||
```
|
||||
|
||||
## 4) 운영 팁
|
||||
|
||||
### 로그
|
||||
|
||||
```bash
|
||||
docker compose logs -f --tail=200 web
|
||||
docker compose logs -f --tail=200 caddy
|
||||
```
|
||||
|
||||
### 업데이트
|
||||
|
||||
```bash
|
||||
git pull
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
### 인증서/설정 데이터
|
||||
|
||||
- Caddy 데이터는 도커 볼륨(`caddy_data`, `caddy_config`)에 유지됨
|
||||
|
||||
Reference in New Issue
Block a user