AssetPilot OrangePi 5 Pluse Server-First Commit

This commit is contained in:
Wind
2026-02-10 12:23:22 +09:00
commit bf87175f51
45 changed files with 4060 additions and 0 deletions

View File

@@ -0,0 +1,227 @@
# 🐳 Asset Pilot Docker 빠른 시작
## 1⃣ 파일 전송 (Orange Pi로)
```bash
# Windows PowerShell 또는 Linux/Mac 터미널에서
scp asset_pilot_docker.tar.gz orangepi@192.168.1.100:~/
```
---
## 2⃣ Orange Pi에서 설치
```bash
# SSH 접속
ssh orangepi@192.168.1.100
# 압축 해제
tar -xzf asset_pilot_docker.tar.gz
cd asset_pilot_docker
# 자동 설치 (Docker가 없으면 자동으로 설치함)
bash start.sh
```
**설치 스크립트가 자동으로 처리:**
- ✅ Docker 설치 확인 및 설치
- ✅ 비밀번호 설정
- ✅ 컨테이너 빌드 및 실행
- ✅ 데이터베이스 초기화
---
## 3⃣ 접속
```
http://[Orange_Pi_IP]:8000
```
예: `http://192.168.1.100:8000`
---
## 📦 Docker 컨테이너 구조
```
┌─────────────────────────────────────────┐
│ Orange Pi 5 Plus (Ubuntu) │
│ │
│ ┌──────────────────────────────────┐ │
│ │ Docker Network │ │
│ │ │ │
│ │ ┌────────────┐ ┌────────────┐ │ │
│ │ │ PostgreSQL │ │ App │ │ │
│ │ │ Container │ │ Container │ │ │
│ │ │ │ │ │ │ │
│ │ │ Port 5432 │←→│ FastAPI │ │ │
│ │ │ │ │ Port 8000 │ │ │
│ │ └────────────┘ └────────────┘ │ │
│ │ ↓ ↓ │ │
│ │ [Volume] [Volume] │ │
│ │ postgres_data app_logs │ │
│ └──────────────────────────────────┘ │
│ ↑ │
│ Port 8000 (외부 접근) │
└─────────────────────────────────────────┘
```
---
## 🔧 주요 명령어
### 컨테이너 관리
```bash
# 전체 시작
docker compose up -d
# 전체 중지
docker compose down
# 상태 확인
docker compose ps
# 로그 보기 (실시간)
docker compose logs -f
```
### 특정 컨테이너만 제어
```bash
# 앱만 재시작
docker compose restart app
# DB만 재시작
docker compose restart postgres
# 앱 로그만 보기
docker compose logs -f app
```
---
## 💾 Windows 데이터 가져오기
기존 `user_assets.csv` 파일이 있다면:
```bash
# 1. CSV 파일을 컨테이너로 복사
docker cp user_assets.csv asset_pilot_app:/app/
# 2. 가져오기 실행
docker compose exec app python import_csv.py user_assets.csv
```
---
## 🔄 백업 및 복원
### 백업 생성
```bash
# 데이터베이스 백업
docker compose exec postgres pg_dump -U asset_user asset_pilot > backup_$(date +%Y%m%d).sql
```
### 백업 복원
```bash
# 백업 파일 복원
cat backup_20260210.sql | docker compose exec -T postgres psql -U asset_user -d asset_pilot
```
---
## 🛠️ 문제 해결
### 컨테이너가 시작되지 않음
```bash
# 로그 확인
docker compose logs
# 특정 서비스 로그
docker compose logs app
docker compose logs postgres
```
### Docker가 설치되지 않음
```bash
# Docker 자동 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker # 또는 로그아웃 후 재로그인
```
### 포트가 이미 사용 중
```bash
# docker-compose.yml 파일 편집
nano docker-compose.yml
# ports 섹션 수정
# "8001:8000" # 8000 대신 8001 사용
```
---
## 🗑️ 완전 삭제
```bash
# 컨테이너 + 볼륨 모두 삭제
docker compose down -v
# 이미지도 삭제
docker rmi asset_pilot_docker-app postgres:16-alpine
```
---
## 📱 모바일/태블릿 접속
1. 같은 Wi-Fi에 연결
2. 브라우저에서 `http://[IP]:8000` 접속
3. **홈 화면에 추가** → 앱처럼 사용!
---
## 🔐 보안 팁
```bash
# .env 파일 권한 설정
chmod 600 .env
# 방화벽 설정
sudo ufw allow 8000/tcp
sudo ufw enable
# PostgreSQL 외부 접근 차단 (기본값 유지)
# docker-compose.yml에서 5432 포트를 127.0.0.1:5432:5432로 변경
```
---
## ✅ 설치 확인 체크리스트
- [ ] Docker 설치됨 (`docker --version`)
- [ ] 프로젝트 압축 해제됨
- [ ] `.env` 파일 비밀번호 설정됨
- [ ] `docker compose up -d` 실행됨
- [ ] 컨테이너 실행 중 (`docker compose ps`)
- [ ] DB 초기화 완료
- [ ] 웹 접속 가능 (`http://[IP]:8000`)
---
## 🎯 장점 요약
| 기능 | 일반 설치 | Docker 설치 |
|------|----------|------------|
| 설치 복잡도 | 중간 | 매우 쉬움 |
| 환경 격리 | 없음 | 완벽 |
| 백업/복원 | 수동 | 간단 |
| 업데이트 | 복잡 | 쉬움 |
| 이식성 | 낮음 | 높음 |
| 롤백 | 어려움 | 쉬움 |
---
**모든 준비 완료! 투자 모니터링을 시작하세요! 💰**
상세한 내용은 `DOCKER_GUIDE.md` 참조