前言
不知道你有没有这样的困扰:资金分散在不同的平台,股票、场内 ETF、场外基金、数字资产、现金理财各占一处。想要算清楚自己的总资产、今年整体收益率、各大类资产占比,就要来回打开多个 APP,手动摘抄数据;每次调仓之后,还要更新 Excel 表格,费时费力,还很容易算错。
市面上也有不少现成的资产记账工具,但多多少少存在短板:要么部分高级功能需要付费解锁,要么需要授权第三方接口同步持仓,你的全部投资数据交由服务商保管,存在隐私顾虑;还有一些工具对国内标的适配差、广告繁多,使用体验并不理想。
如果你重视数据主权,希望把所有持仓数据存放在自己的设备上,那开源项目 Ghostfolio 会是非常合适的选择。Ghostfolio 是一款面向个人的自托管资产组合追踪系统,支持股票、基金、ETF、贵金属、加密货币、现金等几乎主流资产类型,依托行情源自动获取实时价格,自动计算持仓盈亏、年化收益、最大回撤,同时自带资产配置饼图、历史净值曲线、交易记录台账等可视化看板。它不会强制要求对接券商自动同步,所有交易记录由你自主录入,数据完全由自己掌控。
本篇教程适配 fnOS、群晖、威联通等主流 NAS,采用 Docker Compose 方式部署,提供开箱即用的配置文件。教程里除了基础的安装步骤,还专门整理了部署时高频遇到的报错,比如环境变量缺失、PostgreSQL 容器不健康、数据库密码不匹配等问题,同时包含数据库备份、版本升级、cpolar 内网穿透远程访问等实用内容。跟着步骤操作,就能在自己的 NAS 上搭建一套专属私有资产看板,告别多平台来回切换的麻烦,清晰掌握自己的投资全貌。
1.Ghostfolio是什么?
Ghostfolio 是优先保护隐私的开源个人资产 / 投资组合仪表盘(AGPLv3),GitHub 约 9.5k Star,基于 Angular + NestJS,支持 Docker 一键自托管,用来统一管理多平台投资、查看资产净值与收益,自己掌握全部财务数据GitHub。
✅ 核心功能
- 多品类资产:股票、ETF、债券、加密货币、现金、奢侈品等自定义资产;支持多账户、多币种管理ghostfol.i…
- 收益统计:TWR(时间加权收益率),按日 / 月 / 年 / 5 年等周期统计,资产配置饼图、走势图表
- 组合 X 光分析(X-ray):识别持仓风险、集中度,支持对标基准对比
- 交易记录:手动录入、CSV 批量导入导出,追踪分红、手续费
- PWA 网页应用:手机浏览器直接使用,暗色模式;支持匿名注册,不用邮箱
- 行情源:Yahoo Finance、CoinGecko,高级版有官方专业数据源ghostfol.i…
✅ 和同类工具的区别
- 和 Sharesight、Personal Capital:它们是闭源 SaaS,会收集你的财务数据;Ghostfolio 自托管版本数据完全在你服务器,无追踪、无广告
- 和 Portfolio Performance:后者是桌面软件,移动端只能看;Ghostfolio 是 B/S 架构,浏览器随时随地访问,适合 Docker 部署
- 短板:不支持券商自动同步、原生税务报表较弱,交易需要手动导入或录入
✅ 适合人群
适合喜欢自托管、看重财务隐私,资产分散在多个券商 / 交易所,想要一个统一看板做长期资产配置跟踪的人;可以搭配 cpolar 把内网部署的 Ghostfolio 安全暴露外网,随时随地查看持仓。
✅ 小结
一句话:开源、可自建、隐私优先的投资组合追踪面板,主打资产可视化与收益分析,没有券商自动同步能力,胜在数据主权可控。
2.安装前提条件
2.1ssh远程连接到飞牛
- 开启【SSH服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
在设置—>SSH中开启SSH服务:
2.2验证docker是否开启
使用命令:
docker -v
systemctl status -v
也可以直接在飞牛主页查看(其他机器也是这样的哦~)
3.安装Ghostfolio
首先创建一下安装的目录并进入到该目录:
mkdir -p /docker/Ghostfolio
cd /docker/Ghostfolio
创建并编辑 docker-compose.yml文件:
services:
ghostfolio:
image: ghostfolio/ghostfolio:latest
container_name: ghostfolio
restart: unless-stopped
ports:
- "3333:3333"
environment:
DATABASE_URL: postgresql://ghostfolio:${POSTGRES_PASSWORD}@postgres:5432/ghostfolio
REDIS_HOST: redis
REDIS_PORT: 6379
ACCESS_TOKEN_SALT: ${ACCESS_TOKEN_SALT}
JWT_SECRET_KEY: ${JWT_SECRET_KEY}
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
postgres:
image: postgres:16-alpine
container_name: ghostfolio-db
restart: unless-stopped
environment:
POSTGRES_DB: ghostfolio
POSTGRES_USER: ghostfolio
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ghostfolio"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: ghostfolio-redis
restart: unless-stopped
volumes:
- redis-data:/data
volumes:
postgres-data:
redis-data:
启动容器:
docker compose up -d
验证容器是否启动成功:
docker ps
部署完成后,在浏览器中输入 http://飞牛IP:3333 就能看到Ghostfolio的界面:
4.使用Ghostfolio
点击“立即开始”:
创建账号:
欢迎页:这是 Ghostfolio 部署成功后的中文欢迎首页,左侧是概述、持仓、汇总等功能导航栏,主页面展示三步使用引导:设置账户、记录投资活动、监控分析组合,下方配有「设置帐户」按钮,代表服务已正常运行,可以开始录入自己的投资持仓信息。
持仓页:这是 Ghostfolio 的持仓页面,表格展示资产名称、首笔交易时间、数量、市值、资产占比、涨跌和收益率等信息,当前仅录入一笔美元现金资产,页面提供列表 / 网格视图切换、活跃 / 已关闭资产筛选以及管理活动按钮,在这里可以持续添加股票、基金等各类投资标的,统一查看全部持仓明细。
汇总页:这是 Ghostfolio 的汇总统计页面,会自动汇总展示投资组合的在市时长、买卖金额、投入资本、收益、费用、净绩效、总资产、现金、负债等核心财务指标,当前仅录入现金资产,交易活动为空,后续录入交易后,这里就可以直观查看完整的投资业绩与资产统计数据。
关注列表页:这是 Ghostfolio 的关注列表页面,可以添加想要盯盘的标的,自动展示标的上次历史最高纪录、相对高点的涨跌幅,当前还未添加任何品种,右下角加号按钮用来新增关注标的,适合用来跟踪还没有买入、持续观察的股票或者基金。
市场页:这是 Ghostfolio 的市场页面,用于集中查看各类市场标的信息,表格可展示标的名称、历史高点、相对高点涨跌幅等行情数据,当前暂无添加标的,录入资产后就可以在这里统一浏览行情信息,快速感知市场冷暖。
分析页面:这是 Ghostfolio 投资组合下的分析页面,左侧包含分析、活动、分配、FIRE、X-ray 多个子功能,页面展示总金额、含货币影响的涨跌与表现等核心指标,还支持将组合收益和基准对标,当前暂无交易数据,录入持仓后会自动生成收益曲线,用来评估整个投资组合的长期收益表现。
账户管理页面:这是 Ghostfolio 的账户管理页面,可以新建多个账户区分不同资金来源,表格展示账户名称、所属平台、交易活动数、现金余额与资产价值,还支持账户之间转移现金,图中已经创建了 “我的账户” 和 “生活” 两个账户,方便我们分开管理投资资金与日常资金。
后台管理概述页面:这是 Ghostfolio 的后台管理概述页面,左侧包含概述、设置、市场数据、任务队列、用户等管理菜单,页面展示程序版本、用户数量、交易活动统计,还可以开关用户注册、数据收集功能,支持一键刷新缓存,适合管理员进行系统维护与基础配置。
借助 cpolar 内网穿透,部署在本地 NAS 或服务器上的 Ghostfolio 投资组合管理工具,无需公网 IP、不用配置路由器端口映射,一键生成公网访问地址,随时随地在外网打开链接查看自己的持仓资产、收益分析与账户数据,安全远程管理个人投资台账。
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar可以将你本地电脑中的服务(如SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。
6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:Ghostfolio,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:3333
- 域名类型:随机域名
- 地区:选择China Top
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。
访问成功。
7.保留固定公网地址
使用cpolar为其配置二级子域名(cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站),该地址为固定地址,不会随机变化。
点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是Ghostfolio,大家可以自定义。填写备注信息,点击保留。
登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。
总结
本篇教程完整演示了在 NAS 上使用 Docker 部署开源资产追踪工具 Ghostfolio 的全过程。Ghostfolio 可以统一归集股票、基金等多平台持仓,自动统计资产、生成收益曲线、做资产配置分析,帮你一站式打理个人投资台账;搭配 cpolar 内网穿透,无需公网 IP,就能生成稳定公网链接,随时随地远程访问自己的私有资产面板,数据自留、不依赖第三方记账平台,适合想要自主管理投资组合、注重数据隐私的投资者。
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站



































