Includes FastAPI+Jinja2+HTMX+SQLite implementation with seed categories, plus deployment templates. Co-authored-by: Cursor <cursoragent@cursor.com>
2.0 KiB
2.0 KiB
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.netA 레코드가 서버 공인 IP를 가리키도록 설정
1.2 방화벽
- TCP 80, 443 오픈
1.3 Docker 설치
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) 배포
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=publicCADDY_EMAIL: 인증서 발급용 이메일
실행:
docker compose up -d --build
docker compose ps
확인:
https://prompt.ncue.net/api/healthhttps://prompt.ncue.net/entitieshttps://prompt.ncue.net/prompts
3) 초기 스키마/시드(필요할 때만 1회)
원격 DB에 테이블이 없다면 실행.
docker compose --profile init run --rm db_init
docker compose --profile init run --rm db_seed
4) 운영 팁
로그
docker compose logs -f --tail=200 web
docker compose logs -f --tail=200 caddy
업데이트
git pull
docker compose up -d --build
인증서/설정 데이터
- Caddy 데이터는 도커 볼륨(
caddy_data,caddy_config)에 유지됨