fix: 修复登录500错误和移除明文密码提示

- 修复 deps.py 中 get_vn_service 的引用错误 (vn_service.vn_service -> vn_service)
- 移除登录页面上的明文密码提示
- 改进前端错误处理,避免数据加载失败导致登录显示错误
This commit is contained in:
2026-07-02 12:23:55 +08:00
parent 3fbe6c9be5
commit 918bbed0fc
63 changed files with 16699 additions and 10 deletions
+262
View File
@@ -0,0 +1,262 @@
version: '3.8'
# Sanguo VeighNa Docker 编排配置
# 用于 NAS 部署和开发环境
# 支持环境变量配置和绑定挂载
# 加载环境变量
# 使用前请复制 .env.example 为 .env 并修改配置
services:
# ============================================
# VeighNa 核心服务
# ============================================
vnpy:
build:
context: ..
dockerfile: docker/Dockerfile
container_name: sanguo-vnpy
restart: unless-stopped
# 容器名称
hostname: vnpy-server
# 环境变量
environment:
# Python 配置
- PYTHONUNBUFFERED=1
- PYTHONDONTWRITEBYTECODE=1
- TZ=${TZ:-Asia/Shanghai}
# VeighNa 配置
- VNPY_LOG_LEVEL=${VNPY_LOG_LEVEL:-INFO}
- VNPY_LOG_FILE=${VNPY_LOG_FILE:-/app/logs/vnpy.log}
# 数据库配置
- DB_TYPE=${DB_TYPE:-sqlite}
- DB_PATH=${DB_PATH:-/app/data/vnpy.db}
# Web 服务配置
- WEB_HOST=${WEB_HOST:-0.0.0.0}
- WEB_PORT=${WEB_PORT:-8000}
- WEB_WORKERS=${WEB_WORKERS:-2}
# 安全配置
- JWT_SECRET_KEY=${JWT_SECRET_KEY:-change-this-to-a-random-secret-key}
- SESSION_TIMEOUT=${SESSION_TIMEOUT:-3600}
# Redis 配置
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
# PostgreSQL 配置
- POSTGRES_DB=${POSTGRES_DB:-vnpy}
- POSTGRES_USER=${POSTGRES_USER:-vnpy}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-vnpy_password_change_me}
- POSTGRES_HOST=${POSTGRES_HOST:-postgres}
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
# 开发选项
- SKIP_REDIS_CHECK=${SKIP_REDIS_CHECK:-0}
- USE_POSTGRES=${USE_POSTGRES:-0}
- DEBUG=${DEBUG:-0}
# 端口映射
ports:
- "${HTTP_PORT:-8000}:8000" # HTTP API
- "${WS_PORT:-8080}:8080" # WebSocket
# 数据卷 - 使用绑定挂载到 NAS stock 目录
volumes:
# 数据持久化目录 - 挂载到 NAS stock 目录
- ${DATA_DIR}/data:/app/data
- ${DATA_DIR}/logs:/app/logs
- ${DATA_DIR}/config:/app/config
- ${DATA_DIR}/temp:/app/temp
# 配置文件(只读)- 如果有外部配置
- ../config:/app/config:ro
# 网络
networks:
- vnpy-network
# 依赖项
depends_on:
- redis
# 资源限制
deploy:
resources:
limits:
cpus: '${VNPY_CPU_LIMIT:-2.0}'
memory: ${VNPY_MEMORY_LIMIT:-2G}
reservations:
cpus: '${VNPY_CPU_RESERVATION:-0.5}'
memory: ${VNPY_MEMORY_RESERVATION:-512M}
# ============================================
# Redis 服务(缓存和消息队列)
# ============================================
redis:
image: redis:7-alpine
container_name: sanguo-redis
restart: unless-stopped
# 命令参数
command: >
sh -c '
if [ -n "${REDIS_PASSWORD}" ]; then
redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}
else
redis-server --appendonly yes
fi
'
# 环境变量
environment:
- TZ=${TZ:-Asia/Shanghai}
# 数据卷 - 挂载到 NAS stock 目录
volumes:
- ${DATA_DIR}/redis:/data
# 网络
networks:
- vnpy-network
# 资源限制
deploy:
resources:
limits:
cpus: '${REDIS_CPU_LIMIT:-0.5}'
memory: ${REDIS_MEMORY_LIMIT:-256M}
# ============================================
# Nginx 反向代理(可选)
# ============================================
nginx:
image: nginx:alpine
container_name: sanguo-nginx
restart: unless-stopped
profiles:
- nginx
- ${ENABLE_NGINX:+nginx}
# 环境变量
environment:
- TZ=${TZ:-Asia/Shanghai}
# 端口映射
ports:
- "${NGINX_HTTP_PORT:-80}:80"
- "${NGINX_HTTPS_PORT:-443}:443"
# 配置文件
volumes:
- ../docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ${DATA_DIR}/nginx/ssl:/etc/nginx/ssl:ro
- ${DATA_DIR}/nginx/cache:/var/cache/nginx
- ${DATA_DIR}/logs/nginx:/var/log/nginx
# 依赖项
depends_on:
- vnpy
# 网络
networks:
- vnpy-network
# 资源限制
deploy:
resources:
limits:
cpus: '${NGINX_CPU_LIMIT:-0.5}'
memory: ${NGINX_MEMORY_LIMIT:-256M}
# ============================================
# PostgreSQL 数据库(可选,升级用)
# ============================================
postgres:
image: postgres:15-alpine
container_name: sanguo-postgres
restart: unless-stopped
profiles:
- postgres
- ${USE_POSTGRES:+postgres}
# 环境变量
environment:
- POSTGRES_DB=${POSTGRES_DB:-vnpy}
- POSTGRES_USER=${POSTGRES_USER:-vnpy}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-vnpy_password_change_me}
- TZ=${TZ:-Asia/Shanghai}
- PGDATA=/var/lib/postgresql/data/pgdata
# 数据卷 - 挂载到 NAS stock 目录
volumes:
- ${DATA_DIR}/postgres:/var/lib/postgresql/data
# 网络
networks:
- vnpy-network
# 资源限制
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
# ============================================
# 网络定义
# ============================================
networks:
vnpy-network:
name: sanguo_vnpy_network
driver: bridge
# ============================================
# 使用说明
# ============================================
#
# 基本使用:
#
# 1. 首次使用前,配置环境变量:
# cp .env.example .env
# vi .env # 修改 DATA_DIR 等配置
#
# 2. 创建数据目录:
# mkdir -p ${DATA_DIR}/{data,logs,config,temp,redis,nginx}
#
# 3. 启动核心服务:
# docker-compose up -d
#
# 4. 启动所有服务(含 Nginx):
# docker-compose --profile nginx up -d
#
# 5. 启动所有服务(含 PostgreSQL:
# docker-compose --profile postgres up -d
#
# 管理命令:
#
# 查看日志:
# docker-compose logs -f vnpy
#
# 停止服务:
# docker-compose down
#
# 重启服务:
# docker-compose restart vnpy
#
# 进入容器:
# docker-compose exec vnpy bash
#
# 更新并重启:
# docker-compose up -d --build
#
# 数据备份:
# tar czf vnpy_backup_$(date +%Y%m%d).tar.gz ${DATA_DIR}
#
# ============================================