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

4.7 KiB

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() 필수

from urllib.parse import quote_plus
encoded_password = quote_plus(self.DB_PASSWORD)  # roskfl@1122 → roskfl%401122

Docker Container Configuration

Backend Container

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

# 빌드 전 .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)

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)

NEXT_PUBLIC_API_URL=https://autonetsellcar.com

Verification Commands

1. DB 연결 확인

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 데이터 확인

curl -s https://autonetsellcar.com/api/hero-banners/ | jq 'length'
# 예상 출력: 8 이상 (0이면 문제!)

3. 이미지 확인

curl -I https://autonetsellcar.com/uploads/cars/1/image_0.jpg
# 예상 출력: HTTP/2 200

4. Frontend API URL 확인

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 문서 최초 생성 (반복 배포 오류 방지 목적)

이 문서의 값과 다르면 무조건 틀린 것입니다!