
如果你也曾在行情软件、交易所、Excel、备忘录和 AI 对话之间来回切换,L¥NX 想解决的就是这个问题:把个人投资过程中的资产、持仓、交易、策略 Agent、操盘计划、行情、资讯与提醒放到一个本地化系统里,让“看盘、记账、生成计划、执行、复盘”真正形成闭环。
免责声明:L¥NX 不是自动交易系统,不会托管交易账户,也不构成投资建议。系统中的策略、信号、AI 生成内容和资讯摘要仅供参考,所有投资决策需由使用者自行判断并承担风险。
1. 为什么需要 L¥NX?
很多个人投资系统只解决了其中一个问题:
- 记账工具能记录交易,但很难形成策略闭环;
- 行情软件能看价格,但无法关联自己的持仓和计划;
- AI 工具能给建议,但缺少你的持仓、历史交易、计划执行上下文;
- 表格能自由记录,但长期维护成本高、复盘困难。
L¥NX 想解决的是一个更完整的问题:
个人投资者如何在一个私有、可控、可复盘的系统里,持续记录资产状态、市场变化、策略计划和执行结果?
它更像一个“个人资产驾驶舱”,不是替你下单,而是帮你把关键数据组织起来,让每一次判断和执行都有上下文。
2. 项目整体界面
桌面端
| 登录页 | 仪表盘 |
|---|---|
![]() |
![]() |
| 行情中心 | 操盘计划 |
|---|---|
![]() |
![]() |
| 策略管理 | 策略 Agent |
|---|---|
![]() |
![]() |
| 操盘历史 | 系统设置 |
|---|---|
![]() |
![]() |
移动端
| 仪表盘 | 行情中心 | 操盘计划 | 策略 Agent |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
3. L¥NX 能做什么?
L¥NX 的核心不是“多做几个页面”,而是把个人投资过程拆成几个可以持续追踪的环节。
| 模块 | 解决的问题 | 关键能力 |
|---|---|---|
| 资产与持仓 | 我现在持有什么、赚亏多少 | 资产档案、持仓汇总、成本、市值、盈亏、组合权重 |
| 交易与历史 | 每一次买卖为什么发生 | 买入/卖出记录、手续费、时间、资产过滤、计划归因 |
| 行情中心 | 价格和趋势是否可用 | 多行情源、本地缓存、失败回退、手工补录、趋势图 |
| 策略 Agent | AI 是否理解我的真实上下文 | 读取持仓、交易、行情、资讯后生成策略草稿和计划 |
| 操盘计划 | 策略如何变成可执行动作 | 买入/卖出/止盈/止损计划、触发状态、部分执行、执行归因 |
| 资讯与提醒 | 信息和风险如何进入系统 | RSS 资讯、分类筛选、正文缓存、AI 翻译、Webhook 推送 |
简单说,L¥NX 希望让你回答三个问题:
- 我现在处在什么状态? 资产、持仓、成本、盈亏和风险是否清楚。
- 我接下来准备怎么做? 策略和计划是否具体到触发条件和执行动作。
- 我之后如何复盘? 每笔交易是否能追溯到策略、计划和当时的市场背景。
4. 技术架构概览
┌──────────────────────────────────────────────┐
│ Vue 3 前端 │
│ Dashboard / Assets / Plans / Market / News │
└──────────────────────┬───────────────────────┘
│ REST / SSE
┌──────────────────────▼───────────────────────┐
│ Node.js + Express │
│ Auth / Assets / History / Agent / News / Push │
└──────────────────────┬───────────────────────┘
│ better-sqlite3
┌──────────────────────▼───────────────────────┐
│ SQLite │
│ assets / holdings / trades / plans / settings │
└──────────────────────────────────────────────┘
技术选型:
| 层级 | 技术 | 说明 |
|---|---|---|
| 前端 | Vue 3、Vite、Pinia、Vue Router、Vue I18n、PWA | 单页应用,支持桌面和移动端 |
| 后端 | Node.js、Express | REST API 与 SSE Agent 流式输出 |
| 数据库 | SQLite、better-sqlite3、WAL | 本地文件数据库,便于个人部署和备份 |
| AI | Chat Completions 兼容接口 | 支持自定义 AI API、模型和搜索 API |
| 部署 | Docker / Docker Compose / 本地 Node | 支持容器化和本地开发 |
5. 部署教程
下面给出三种部署方式:Docker Compose、Docker 命令、源码本地运行。
5.1 Docker Compose 部署(推荐)
适合大多数自托管用户。
5.1.1 准备目录
mkdir -p ~/lynx/data
cd ~/lynx
5.1.2 创建 docker-compose.yml
services:
lynx:
image: fooololo/lynx:latest
container_name: lynx
restart: unless-stopped
ports:
- "3003:3456"
environment:
NODE_ENV: production
PORT: "3456"
DB_PATH: /app/data/lynx.db
TZ: Asia/Shanghai
LANG: C.UTF-8
LC_ALL: C.UTF-8
NODE_OPTIONS: "--max-old-space-size=512"
JWT_SECRET: "请替换为足够长的随机字符串"
AUTH_USERNAME: "admin"
AUTH_PASSWORD: "请替换为强密码"
volumes:
- ./data:/app/data:rw
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:3456/api/health"]
interval: 30s
timeout: 3s
start_period: 10s
retries: 3
如果你直接使用项目内置的
docker/docker-compose.yml,请务必修改默认JWT_SECRET、AUTH_USERNAME、AUTH_PASSWORD。
5.1.3 启动
docker compose up -d
访问:
http://服务器IP:3003
5.1.4 查看日志
docker compose logs -f lynx
5.1.5 停止服务
docker compose down
5.2 Docker 单命令部署
mkdir -p ~/lynx/data
docker run -d \
--name lynx \
--restart unless-stopped \
-p 3003:3456 \
-e NODE_ENV=production \
-e PORT=3456 \
-e DB_PATH=/app/data/lynx.db \
-e TZ=Asia/Shanghai \
-e JWT_SECRET="请替换为足够长的随机字符串" \
-e AUTH_USERNAME="admin" \
-e AUTH_PASSWORD="请替换为强密码" \
-v ~/lynx/data:/app/data:rw \
fooololo/lynx:latest
访问:
http://服务器IP:3003
5.3 从源码本地运行
适合开发、二次修改和调试。
5.3.1 环境要求
- Node.js 24+
- npm 10+
- macOS / Linux / Windows WSL 均可
5.3.2 克隆代码
git clone https://github.com/huluohu/lynx.git
cd lynx
5.3.3 安装依赖
npm ci
cd client && npm ci
cd ../server && npm ci
cd ..
5.3.4 开发模式启动
npm run dev
默认地址:
前端:http://localhost:5173
后端:http://localhost:3456
也可以使用一键脚本:
bash start.sh
5.3.5 本地生产模式
cd client && npm run build
cd ..
node server/index.js
构建完成后,后端会托管 client/dist,通过后端端口统一访问:
http://localhost:3456
6. 首次登录与安全配置
默认登录信息:
用户名:admin
密码:admin123
首次部署后必须修改:
AUTH_USERNAMEAUTH_PASSWORDJWT_SECRET
建议生成随机密钥:
openssl rand -base64 48
然后写入 Docker 环境变量:
environment:
JWT_SECRET: "上一步生成的随机字符串"
AUTH_USERNAME: "你的管理员账号"
AUTH_PASSWORD: "你的强密码"
7. 常用运行配置
| 配置 | 默认值 | 说明 |
|---|---|---|
PORT |
3456 |
后端监听端口 |
DB_PATH |
data/lynx.db / /app/data/lynx.db |
SQLite 数据库路径 |
JWT_SECRET |
开发默认值 | 登录 token 签名密钥,生产环境必须替换 |
AUTH_USERNAME |
admin |
管理员登录账号 |
AUTH_PASSWORD |
admin123 |
管理员登录密码,生产环境必须替换 |
AI_API_URL |
空 | Chat Completions 兼容 API 地址 |
AI_API_KEY |
空 | AI API Key |
AI_MODEL |
gpt-4o-mini |
默认模型名 |
AGENT_SEARCH_API_URL |
空 | Agent 可选外部搜索 API |
AGENT_SEARCH_API_KEY |
空 | Agent 搜索 API Key |
TZ |
Asia/Shanghai |
运行时区 |
大部分配置也可以在系统设置页中保存到数据库,不一定都要写环境变量。
8. AI Agent 与推送配置建议
如果你希望使用策略 Agent,需要配置兼容 OpenAI Chat Completions 的接口。
在系统设置页填写:
- AI API URL
- AI API Key
- AI 模型
- Agent 分析模型
- Agent LLM 重试次数
- 可选搜索 API URL / Key
常见 API URL 形式:
https://api.example.com/v1
系统会自动请求:
/v1/chat/completions
如果你使用的是本地或反向代理模型服务,也可以填写内网地址。
提醒推送同样在设置页配置。L¥NX 支持 Webhook 推送,例如:
- 企业微信机器人;
- Server 酱;
- PushPlus;
- Bark;
- 自定义 Webhook。
配置位置:
设置 → 推送渠道
企业微信机器人建议使用群机器人 Webhook。系统会以兼容性更好的 text 消息发送,避免微信端出现“不支持的消息类型”。
9. 备份与升级
9.1 数据位置
Docker Compose 推荐挂载:
./data:/app/data
默认数据库文件:
data/lynx.db
SQLite 开启 WAL 模式,运行时可能还会有:
lynx.db-wal
lynx.db-shm
9.2 备份建议
最稳妥方式:停止容器后复制整个 data/ 目录。
docker compose down
cp -a data data-backup-$(date +%Y%m%d-%H%M%S)
docker compose up -d
如果不能停机,建议使用 SQLite 在线备份方式,而不是只复制主库文件。
9.3 升级镜像
docker compose pull
docker compose up -d
后端启动时会自动执行尚未应用的数据库迁移。
10. 反向代理示例
如果你希望通过域名访问,可以使用 Nginx 反向代理。
server {
listen 80;
server_name lynx.example.com;
location / {
proxy_pass http://127.0.0.1:3003;
proxy_http_version 1.1;
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 $scheme;
}
}
生产环境建议配置 HTTPS,并把服务放在可信网络、VPN、零信任网关或反向代理认证之后。
11. 适合谁使用?
L¥NX 更适合:
- 希望本地保存投资数据的个人用户;
- 需要长期复盘交易和策略的人;
- 想把 AI 分析放进自己的持仓上下文里的人;
- 同时关注行情、资讯、计划、提醒的人;
- 有一定自托管经验,愿意维护 Docker 或 Node.js 服务的人。
不适合:
- 想要自动下单交易的人;
- 想把系统直接当作投资建议来源的人;
- 不愿意管理服务器、数据库和备份的人;
- 需要多人企业协作、复杂权限审批和合规审计的机构场景。
最后再强调一次:L¥NX 的重点不是替你预测市场,而是帮你把资产、交易、行情、资讯、策略和计划组织成一个可追踪、可复盘、可持续迭代的个人投资系统。

原创文章,作者:诺多,如若转载,请注明出处:https://www.huluohu.com/posts/2060/












微信扫一扫
支付宝扫一扫