06470512f6
### 严重修复 1. 跨服务器无法登录 - 新增SESSION_COOKIE_DOMAIN/SECURE/NAME配置 2. SOCKS5用户密码明文存储→bcrypt哈希(兼容自动迁移) 3. 仪表盘审计日志不显示→替换为空循环为真实API加载 4. 管理员登录防爆破未生效→auth.py集成check_fail2ban ### 中等问题修复 5. 流量趋势图表无数据→新增record_traffic_snapshot后台线程 6. 网络流量累计值跳变→新增基线差值机制 7. asyncio连接计数非线程安全→加锁保护 ### 优化改进 8. API密钥页面截断文本修复 9. 新增gunicorn/bcrypt依赖 10. 更新README环境变量文档和生产建议 11. 登录密码常量时间对比防时序攻击 12. 仪表盘图表添加animation:false防卡顿
40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
"""SOCKS Manager — 启动入口。"""
|
|
import os
|
|
import sys
|
|
from app import create_app
|
|
|
|
app = create_app()
|
|
|
|
if __name__ == "__main__":
|
|
port = int(os.environ.get("SM_PORT", 5000))
|
|
host = os.environ.get("SM_HOST", "0.0.0.0")
|
|
debug = os.environ.get("SM_DEBUG", "false").lower() == "true"
|
|
|
|
# 启动时同步实例
|
|
app.instance_manager.sync_instances()
|
|
|
|
# 记录流量快照
|
|
from services.stats_service import record_traffic_snapshot
|
|
import threading
|
|
def _snapshot_loop():
|
|
import time
|
|
while True:
|
|
try:
|
|
record_traffic_snapshot()
|
|
except Exception:
|
|
pass
|
|
time.sleep(3600) # 每小时记录一次
|
|
t = threading.Thread(target=_snapshot_loop, daemon=True, name="traffic-snapshot")
|
|
t.start()
|
|
|
|
print(f"\n ╔══════════════════════════════════════════╗")
|
|
print(f" ║ SOCKS Manager — 代理管理平台 ║")
|
|
print(f" ║ 面板: http://{host}:{port} ║")
|
|
print(f" ║ 用户: admin ║")
|
|
pwd = os.environ.get("SM_ADMIN_PASSWORD", "")
|
|
print(f" ║ 密码: {'*' * len(pwd) if pwd else '未设置(请先设 SM_ADMIN_PASSWORD)'}{' '*(20-len(pwd) if pwd else 22)}║")
|
|
print(f" ╚══════════════════════════════════════════╝\n")
|
|
|
|
app.run(host=host, port=port, debug=debug, use_reloader=False)
|