Skip to content

Commit 90dfd3f

Browse files
committed
Add troubleshooting guide, deployment scripts, monitoring tools, and setup scripts for VisionFlow
- Created TROUBLESHOOTING.md for common issues and solutions in VisionFlow. - Added deploy.sh for managing deployment across different environments. - Introduced monitor.sh for service health checks, log collection, and system metrics. - Implemented setup-dev.sh for local development environment setup, including Python virtual environment and service dependencies. - Configured sonar-project.properties for SonarCloud integration and code quality analysis.
1 parent 9d9581c commit 90dfd3f

18 files changed

Lines changed: 3468 additions & 4 deletions

.env.dev

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# VisionFlow 環境變數範本 - 開發環境
2+
3+
# ==========================================
4+
# 應用程式基本設定
5+
# ==========================================
6+
FLASK_ENV=development
7+
FLASK_DEBUG=true
8+
SECRET_KEY=dev-secret-key-change-in-production
9+
10+
# ==========================================
11+
# 資料庫設定 - PostgreSQL
12+
# ==========================================
13+
POSTGRES_HOST=localhost
14+
POSTGRES_PORT=5432
15+
POSTGRES_DB=visionflow_dev
16+
POSTGRES_USER=dev_user
17+
POSTGRES_PASSWORD=dev_password
18+
19+
# 資料庫連線 URL
20+
DATABASE_URL=postgresql://dev_user:dev_password@localhost:5432/visionflow_dev
21+
22+
# ==========================================
23+
# Redis 設定
24+
# ==========================================
25+
REDIS_HOST=localhost
26+
REDIS_PORT=6379
27+
REDIS_PASSWORD=
28+
REDIS_DB=0
29+
30+
# Redis 連線 URL
31+
REDIS_URL=redis://localhost:6379/0
32+
33+
# ==========================================
34+
# API 服務配置
35+
# ==========================================
36+
API_SERVICE_URL=http://localhost:5000
37+
CAMERA_SERVICE_URL=http://localhost:5001
38+
OBJECT_RECOGNITION_SERVICE_URL=http://localhost:5002
39+
API_TIMEOUT=30
40+
41+
# ==========================================
42+
# 物件辨識服務配置
43+
# ==========================================
44+
# 模型配置
45+
MODEL_PATH_BASE=/app/models
46+
DEFAULT_MODEL_CONFIDENCE=0.5
47+
GPU_ENABLED=false
48+
BATCH_SIZE=1
49+
50+
# 模型啟用設定
51+
MODEL1_ENABLED=true
52+
MODEL2_ENABLED=false
53+
MODEL3_ENABLED=false
54+
55+
# 模型信心度閾值
56+
MODEL1_CONF=0.5
57+
MODEL1_CONF_PERSON=0.7
58+
MODEL1_CONF_BICYCLE=0.6
59+
MODEL1_CONF_CAR=0.6
60+
61+
# ==========================================
62+
# 相機控制器服務配置
63+
# ==========================================
64+
CAMERA_DEFAULT_WIDTH=640
65+
CAMERA_DEFAULT_HEIGHT=480
66+
CAMERA_DEFAULT_FPS=30
67+
RTSP_TIMEOUT=10
68+
69+
# ==========================================
70+
# 日誌配置
71+
# ==========================================
72+
LOG_LEVEL=DEBUG
73+
LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s
74+
ENABLE_FILE_LOGGING=true
75+
LOG_FILE_PATH=logs/app.log
76+
LOG_FILE_MAX_BYTES=10485760
77+
LOG_FILE_BACKUP_COUNT=5
78+
79+
# ==========================================
80+
# 開發工具配置
81+
# ==========================================
82+
# 熱重載
83+
FLASK_AUTO_RELOAD=true
84+
85+
# 調試模式
86+
DEBUG_MODE=true
87+
88+
# 開發伺服器配置
89+
DEV_SERVER_HOST=0.0.0.0
90+
DEV_SERVER_PORT=5000
91+
92+
# ==========================================
93+
# 測試配置
94+
# ==========================================
95+
TESTING=false
96+
TEST_DATABASE_URL=postgresql://dev_user:dev_password@localhost:5432/visionflow_test

.env.prod

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
# VisionFlow 環境變數範本 - 生產環境
2+
3+
# ==========================================
4+
# 應用程式基本設定
5+
# ==========================================
6+
FLASK_ENV=production
7+
FLASK_DEBUG=false
8+
SECRET_KEY=CHANGE_THIS_TO_A_STRONG_SECRET_KEY_IN_PRODUCTION
9+
10+
# ==========================================
11+
# 資料庫設定 - PostgreSQL
12+
# ==========================================
13+
POSTGRES_HOST=db
14+
POSTGRES_PORT=5432
15+
POSTGRES_DB=visionflow_prod
16+
POSTGRES_USER=prod_user
17+
POSTGRES_PASSWORD=CHANGE_THIS_TO_A_STRONG_PASSWORD
18+
19+
# 資料庫連線 URL
20+
DATABASE_URL=postgresql://prod_user:CHANGE_THIS_TO_A_STRONG_PASSWORD@db:5432/visionflow_prod
21+
22+
# ==========================================
23+
# Redis 設定
24+
# ==========================================
25+
REDIS_HOST=redis
26+
REDIS_PORT=6379
27+
REDIS_PASSWORD=CHANGE_THIS_TO_A_STRONG_REDIS_PASSWORD
28+
REDIS_DB=0
29+
30+
# Redis 連線 URL
31+
REDIS_URL=redis://:CHANGE_THIS_TO_A_STRONG_REDIS_PASSWORD@redis:6379/0
32+
33+
# ==========================================
34+
# API 服務配置
35+
# ==========================================
36+
API_SERVICE_URL=http://backend:5000
37+
CAMERA_SERVICE_URL=http://camera_ctrl:5000
38+
OBJECT_RECOGNITION_SERVICE_URL=http://object_recognition:5000
39+
API_TIMEOUT=90
40+
41+
# ==========================================
42+
# 物件辨識服務配置
43+
# ==========================================
44+
# 模型配置
45+
MODEL_PATH_BASE=/app/models
46+
DEFAULT_MODEL_CONFIDENCE=0.7
47+
GPU_ENABLED=true
48+
BATCH_SIZE=4
49+
50+
# 模型啟用設定
51+
MODEL1_ENABLED=true
52+
MODEL2_ENABLED=true
53+
MODEL3_ENABLED=true
54+
55+
# 模型信心度閾值
56+
MODEL1_CONF=0.7
57+
MODEL1_CONF_PERSON=0.85
58+
MODEL1_CONF_BICYCLE=0.8
59+
MODEL1_CONF_CAR=0.8
60+
61+
MODEL2_CONF=0.7
62+
MODEL2_CONF_CAT=0.85
63+
MODEL2_CONF_LAPTOP=0.8
64+
65+
MODEL3_CONF=0.7
66+
MODEL3_CONF_BOTTLE=0.8
67+
MODEL3_CONF_CUP=0.8
68+
69+
# ==========================================
70+
# 相機控制器服務配置
71+
# ==========================================
72+
CAMERA_DEFAULT_WIDTH=1920
73+
CAMERA_DEFAULT_HEIGHT=1080
74+
CAMERA_DEFAULT_FPS=30
75+
RTSP_TIMEOUT=20
76+
77+
# ==========================================
78+
# 日誌配置
79+
# ==========================================
80+
LOG_LEVEL=WARNING
81+
LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s - [%(filename)s:%(lineno)d]
82+
ENABLE_FILE_LOGGING=true
83+
LOG_FILE_PATH=logs/app.log
84+
LOG_FILE_MAX_BYTES=104857600
85+
LOG_FILE_BACKUP_COUNT=20
86+
87+
# ==========================================
88+
# 監控和指標
89+
# ==========================================
90+
METRICS_ENABLED=true
91+
HEALTH_CHECK_INTERVAL=60
92+
PROMETHEUS_PORT=9090
93+
GRAFANA_ENABLED=true
94+
95+
# ==========================================
96+
# 安全設定
97+
# ==========================================
98+
CORS_ENABLED=true
99+
CORS_ORIGINS=https://visionflow.com,https://www.visionflow.com
100+
RATE_LIMITING_ENABLED=true
101+
MAX_REQUESTS_PER_MINUTE=60
102+
103+
# SSL/TLS 設定
104+
SSL_ENABLED=true
105+
SSL_CERT_PATH=/etc/ssl/certs/visionflow.crt
106+
SSL_KEY_PATH=/etc/ssl/private/visionflow.key
107+
108+
# 安全標頭
109+
SECURITY_HEADERS_ENABLED=true
110+
HSTS_ENABLED=true
111+
CSP_ENABLED=true
112+
113+
# ==========================================
114+
# 效能調優
115+
# ==========================================
116+
WORKER_PROCESSES=4
117+
WORKER_THREADS=8
118+
MAX_CONNECTIONS=500
119+
CONNECTION_TIMEOUT=60
120+
121+
# 快取設定
122+
CACHE_ENABLED=true
123+
CACHE_TTL=3600
124+
CACHE_MAX_ENTRIES=10000
125+
126+
# ==========================================
127+
# 備份設定
128+
# ==========================================
129+
BACKUP_ENABLED=true
130+
BACKUP_SCHEDULE="0 2 * * *"
131+
BACKUP_RETENTION_DAYS=30
132+
BACKUP_ENCRYPTION_ENABLED=true
133+
134+
# ==========================================
135+
# 通知設定
136+
# ==========================================
137+
EMAIL_ENABLED=true
138+
SMTP_HOST=smtp.gmail.com
139+
SMTP_PORT=587
140+
SMTP_USERNAME=your-email@gmail.com
141+
SMTP_PASSWORD=your-app-password
142+
143+
# Slack 通知
144+
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK
145+
146+
# ==========================================
147+
# 擴展設定
148+
# ==========================================
149+
AUTOSCALING_ENABLED=true
150+
MIN_REPLICAS=2
151+
MAX_REPLICAS=10
152+
CPU_THRESHOLD=70
153+
MEMORY_THRESHOLD=80
154+
155+
# ==========================================
156+
# 資料保留政策
157+
# ==========================================
158+
IMAGE_RETENTION_DAYS=30
159+
LOG_RETENTION_DAYS=90
160+
METRICS_RETENTION_DAYS=180
161+
BACKUP_RETENTION_DAYS=90

0 commit comments

Comments
 (0)