Includes FastAPI+Jinja2+HTMX+SQLite implementation with seed categories, plus deployment templates. Co-authored-by: Cursor <cursoragent@cursor.com>
95 lines
2.0 KiB
Markdown
95 lines
2.0 KiB
Markdown
# 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`)에 유지됨
|
|
|