초기 커밋 - EV AS 관리 시스템
This commit is contained in:
196
README.md
Normal file
196
README.md
Normal file
@@ -0,0 +1,196 @@
|
||||
# ⚡ 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 환경변수 수정 (필수)
|
||||
|
||||
```bash
|
||||
cd /home/byun/ev-charger-as
|
||||
nano .env
|
||||
```
|
||||
|
||||
아래 두 가지 반드시 변경:
|
||||
```
|
||||
POSTGRES_PASSWORD=원하는_비밀번호
|
||||
SECRET_KEY=아래_명령어로_생성한_값
|
||||
```
|
||||
|
||||
SECRET_KEY 생성:
|
||||
```bash
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
DATABASE_URL 도 POSTGRES_PASSWORD 와 맞게 수정:
|
||||
```
|
||||
DATABASE_URL=postgresql://evuser:변경한_비밀번호@db:5432/evcharger
|
||||
```
|
||||
|
||||
### 2. 빌드 및 실행
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
### 3. 동작 확인
|
||||
|
||||
```bash
|
||||
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 변경사항을 반영하려면
|
||||
볼륨을 삭제하고 다시 올려야 합니다.
|
||||
|
||||
```bash
|
||||
# 컨테이너 + 볼륨 완전 삭제 (DB 데이터 초기화됨 — 주의)
|
||||
docker compose down -v
|
||||
|
||||
# 다시 빌드 및 실행
|
||||
docker compose up -d --build
|
||||
|
||||
# 확인
|
||||
docker compose logs db
|
||||
docker compose logs backend
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 5825u Nginx 설정
|
||||
|
||||
기존 nginx 설정에 아래 파일 추가:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/nginx/sites-available/ev-charger
|
||||
```
|
||||
|
||||
```nginx
|
||||
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;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo ln -s /etc/nginx/sites-available/ev-charger /etc/nginx/sites-enabled/
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ DB 백업 / 복원
|
||||
|
||||
```bash
|
||||
# 백업
|
||||
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/
|
||||
```
|
||||
|
||||
자동 백업 크론:
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 코드 수정 후 재배포
|
||||
|
||||
```bash
|
||||
# 백엔드 코드만 수정한 경우
|
||||
docker compose build backend
|
||||
docker compose up -d --no-deps backend
|
||||
|
||||
# 전체 재빌드
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛠 유용한 명령어
|
||||
|
||||
```bash
|
||||
# 상태 확인
|
||||
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 백업 크론 설정
|
||||
Reference in New Issue
Block a user