3.8 KiB
3.8 KiB
⚡ EV 충전기 AS 관리 시스템
아키텍처 구성
인터넷
↓
cs.byunc.com (DNS)
↓
5825u 서버 ── Nginx 리버스 프록시 + Certbot SSL (HTTPS 443)
↓ 내부 포워딩 (127.0.0.1:5700)
Docker Compose (HTTP :5700)
├── ev_nginx :5700 → 컨테이너 내부 :80
├── ev_backend :8000 (내부)
└── ev_db :5432 (내부)
🚀 최초 설치 및 실행
1. .env 환경변수 수정 (필수)
cd /home/byun/ev-charger-as
nano .env
아래 두 가지 반드시 변경:
POSTGRES_PASSWORD=원하는_비밀번호
SECRET_KEY=아래_명령어로_생성한_값
SECRET_KEY 생성:
openssl rand -hex 32
DATABASE_URL 도 POSTGRES_PASSWORD 와 맞게 수정:
DATABASE_URL=postgresql://evuser:변경한_비밀번호@db:5432/evcharger
2. 빌드 및 실행
docker compose up -d --build
3. 동작 확인
docker compose ps
curl http://localhost:5700/api/health
# {"status":"ok"} 확인
🔑 초기 로그인
| 항목 | 값 |
|---|---|
| URL | https://cs.byunc.com/pages/login.html |
| 아이디 | admin |
| 비밀번호 | admin1234 |
⚠️ 로그인 후 즉시 비밀번호 변경 (설정 → 비밀번호 변경)
♻️ DB 초기화가 필요할 때 (재설치 시)
이미 한 번 실행했던 서버에서 init_db.sql 변경사항을 반영하려면 볼륨을 삭제하고 다시 올려야 합니다.
# 컨테이너 + 볼륨 완전 삭제 (DB 데이터 초기화됨 — 주의)
docker compose down -v
# 다시 빌드 및 실행
docker compose up -d --build
# 확인
docker compose logs db
docker compose logs backend
🌐 5825u Nginx 설정
기존 nginx 설정에 아래 파일 추가:
sudo nano /etc/nginx/sites-available/ev-charger
server {
listen 80;
server_name cs.byunc.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name cs.byunc.com;
ssl_certificate /etc/letsencrypt/live/cs.byunc.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cs.byunc.com/privkey.pem;
client_max_body_size 20M;
location / {
proxy_pass http://127.0.0.1:5700;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_read_timeout 60s;
}
}
sudo ln -s /etc/nginx/sites-available/ev-charger /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
🗄️ DB 백업 / 복원
# 백업
docker exec ev_db pg_dump -U evuser evcharger > backup_$(date +%Y%m%d).sql
# 복원
docker exec -i ev_db psql -U evuser evcharger < backup_20240101.sql
# 업로드 파일 백업
tar -czf uploads_$(date +%Y%m%d).tar.gz uploads/
자동 백업 크론:
crontab -e
# 매일 새벽 3시
0 3 * * * cd ~/ev-charger-as && docker exec ev_db pg_dump -U evuser evcharger > ~/backups/db_$(date +\%Y\%m\%d).sql
🔄 코드 수정 후 재배포
# 백엔드 코드만 수정한 경우
docker compose build backend
docker compose up -d --no-deps backend
# 전체 재빌드
docker compose up -d --build
🛠 유용한 명령어
# 상태 확인
docker compose ps
# 로그 확인
docker compose logs -f backend
docker compose logs -f nginx
# DB 직접 접속
docker exec -it ev_db psql -U evuser evcharger
# 전체 재시작
docker compose restart
# 전체 중지 (데이터 보존)
docker compose down
🔒 보안 체크리스트
- .env POSTGRES_PASSWORD, SECRET_KEY 변경
- 초기 admin 비밀번호 변경
- 방화벽: 5432(DB) 포트 외부 노출 차단
- 정기 DB 백업 크론 설정