Files
AutonetSellCar/PRODUCTION_VALUES.md
AutonetSellCar Deploy b1afea79d9 Add SOLD OUT badge and improve deployment docs
- Add SOLD OUT overlay on car detail page image
- Add SOLD OUT badge next to car name
- Add Sold Out status in Admin Cars detail view
- Add soldout field to Car TypeScript interface
- Create PRODUCTION_VALUES.md for deployment reference
- Update CLAUDE.md with CRITICAL deployment section
- Update TROUBLESHOOTING.md with recurring errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-03 09:05:16 +09:00

180 lines
4.7 KiB
Markdown

# AutonetSellCar Production Values (Single Source of Truth)
**이 파일의 값들은 절대 변경하지 마세요!**
**DO NOT MODIFY THESE VALUES!**
---
## Server Information
| 서버 | IP | 역할 |
|------|-----|------|
| Server1 | 192.168.0.201 | PostgreSQL Primary |
| Server2 | 192.168.0.202 | Production (Frontend + Backend) |
| Server3 | 192.168.0.203 | Grantech.kr |
| Server4 | 192.168.0.204 | Development |
---
## Database Configuration
| 항목 | 값 | 비고 |
|------|-----|------|
| **DB_NAME** | `autonet` | ~~mongolcar~~ 절대 아님! |
| **DB_USER** | `admin` | |
| **DB_PASSWORD** | `roskfl@1122` | `@` 포함, URL 인코딩 필요 |
| **DB_HOST** | `192.168.0.201` | Server1 |
| **DB_PORT** | `5432` | PostgreSQL 기본 포트 |
### Database URL Format
```
postgresql://admin:roskfl%401122@192.168.0.201:5432/autonet
^^^^^^^^
@가 %40으로 인코딩됨
```
### config.py에서 quote_plus() 필수
```python
from urllib.parse import quote_plus
encoded_password = quote_plus(self.DB_PASSWORD) # roskfl@1122 → roskfl%401122
```
---
## Docker Container Configuration
### Backend Container
```bash
docker run -d \
--name autonet-backend \
--restart unless-stopped \
-p 8000:8000 \
-e USE_SQLITE=False \
-e DB_HOST=192.168.0.201 \
-e DB_PORT=5432 \
-e DB_NAME=autonet \
-e DB_USER=admin \
-e "DB_PASSWORD=roskfl@1122" \
-v /opt/autonet/production/backend/uploads:/app/uploads \
production-backend
```
**주의사항:**
- `DB_NAME=autonet` (절대 mongolcar 아님!)
- `-v /opt/autonet/production/backend/uploads:/app/uploads` (절대 `/home/damon/mongolcar/...` 아님!)
- `DB_PASSWORD``@` 포함됨 - 따옴표로 감싸기
### Frontend Container
```bash
# 빌드 전 .env.production 확인!
echo 'NEXT_PUBLIC_API_URL=https://autonetsellcar.com' > /opt/autonet/production/frontend/.env.production
# 빌드 (반드시 --no-cache)
docker build --no-cache -t production-frontend .
# 실행
docker run -d \
--name autonet-frontend \
--restart unless-stopped \
-p 3000:3000 \
production-frontend
```
**주의사항:**
- `NEXT_PUBLIC_API_URL=https://autonetsellcar.com` (절대 `http://192.168.0.202:8000` 아님!)
- HTTPS 필수 (Mixed Content 방지)
---
## File Paths
| 용도 | 올바른 경로 | 잘못된 경로 |
|------|-------------|-------------|
| **Uploads** | `/opt/autonet/production/backend/uploads` | `/home/damon/mongolcar/data/uploads` |
| **Backend 소스** | `/opt/autonet/production/backend` | - |
| **Frontend 소스** | `/opt/autonet/production/frontend` | - |
---
## Environment Variables
### Backend (.env)
```env
USE_SQLITE=False
DB_HOST=192.168.0.201
DB_PORT=5432
DB_NAME=autonet
DB_USER=admin
DB_PASSWORD=roskfl@1122
```
### Frontend (.env.production)
```env
NEXT_PUBLIC_API_URL=https://autonetsellcar.com
```
---
## Verification Commands
### 1. DB 연결 확인
```bash
ssh server2 "docker exec autonet-backend python -c \"from app.config import get_settings; print('DB_NAME:', get_settings().DB_NAME)\""
# 예상 출력: DB_NAME: autonet
```
### 2. API 데이터 확인
```bash
curl -s https://autonetsellcar.com/api/hero-banners/ | jq 'length'
# 예상 출력: 8 이상 (0이면 문제!)
```
### 3. 이미지 확인
```bash
curl -I https://autonetsellcar.com/uploads/cars/1/image_0.jpg
# 예상 출력: HTTP/2 200
```
### 4. Frontend API URL 확인
```bash
ssh server2 "docker exec autonet-frontend grep -o 'autonetsellcar.com' /app/.next/static/chunks/app/**/*.js | head -1"
# 예상 출력: autonetsellcar.com (localhost나 192.168.0.202가 아님!)
```
---
## Quick Reference Card
```
┌─────────────────────────────────────────────────────────────┐
│ PRODUCTION VALUES │
├─────────────────────────────────────────────────────────────┤
│ DB_NAME: autonet (NOT mongolcar!) │
│ DB_PASSWORD: roskfl@1122 (@ needs URL encoding) │
│ API_URL: https://autonetsellcar.com (NOT http://...) │
│ UPLOADS: /opt/autonet/production/backend/uploads │
└─────────────────────────────────────────────────────────────┘
```
---
## Change History
| 날짜 | 변경 내용 |
|------|----------|
| 2026-01-02 | 문서 최초 생성 (반복 배포 오류 방지 목적) |
---
**이 문서의 값과 다르면 무조건 틀린 것입니다!**