飞牛OS部署ExerciseDiary:搭建个人运动训练记录服务

前言

开始健身并不难,难的是几周以后还能记得自己上次练了什么、用了多少重量、做了多少次,以及体重到底有没有变化。刚开始这些信息还能靠记忆,训练记录一多,很快就会散落在备忘录、表格或者聊天记录里。

ExerciseDiary提供了一种更集中的记录方式。它可以部署在自己管理的服务器或NAS中,通过Web页面创建训练项目,并持续记录训练参数和身体数据。

本文会在飞牛OS中通过Docker Compose部署ExerciseDiary,从GitHub拉取项目源码并构建容器,再通过8851端口打开Web页面,实际测试训练项目创建、默认重量与次数设置、体重记录和基础信息修改。

这篇文章主要验证的是ExerciseDiary作为运动训练日志的使用方式,并不把它扩展成所有类型的习惯管理工具。至于数据具体采用什么方式保存、是否具备用户认证以及容器重建后的数据持久化情况,还应以当前项目版本和实际配置为准。

最后还会通过cpolar为8851端口创建公网入口,让飞牛NAS和ExerciseDiary保持在线时,也可以从其他网络环境打开自己的训练记录页面。

1.什么是ExerciseDiary?

ExerciseDiary是一个轻量级、开源的个人习惯追踪与每日打卡系统,其核心目标是:用极简的设计 + 可视化的反馈,帮助用户建立并坚持健康的生活习惯(尤其是运动)。

它灵感来源于GitHub的贡献热力图------通过颜色深浅直观展示你每天是否完成了目标(比如"今天是否锻炼"),将抽象的"自律"转化为具体、可回溯的数据图像。久而久之,你会看到属于自己的"成就地图",形成正向激励。

核心特点:

  • 专注运动/习惯打卡:默认以"是否完成当日锻炼"为记录单位,也可轻松扩展至阅读、冥想、编程等任何日常习惯。
  • 本地优先 / 隐私友好:数据可完全存储在本地(如浏览器 localStorage 或本地数据库),无需注册账号,不上传隐私。
  • 可视化日历视图:采用类似 GitHub 的热力图布局,一目了然看到连续打卡天数与长期坚持轨迹。
  • 技术透明、易于部署:通常基于常见 Web 技术栈(如 HTML/CSS/JavaScript + Python/Node.js + SQLite 等),代码简洁,适合开发者自行部署或二次开发。
  • 开源可定制:作为个人项目,鼓励用户根据自身需求修改逻辑、UI 或集成提醒功能。

为什么叫 ExerciseDiary?

  • Exercise:强调身体活动与健康生活,但不仅限于健身;
  • Diary:意为"日记",代表每日记录、持续反思与自我对话。

合起来,ExerciseDiary = 用写日记的方式,记录你每一天为更好自己所付出的行动。

2.安装前提条件

2.1ssh远程连接到飞牛

  • 开启【SSH 服务】
  • 使用终端(Windows PowerShell / Mac Terminal)登录:

在设置--->SSH中开启SSH服务:

2.2验证docker是否开启

使用命令:

shell 复制代码
docker -v 
systemctl status -v

也可以直接在飞牛主页查看(其他机器也是这样的哦~)

3.安装ExerciseDiary

首先创建一下安装的目录并进入到该目录:

shell 复制代码
mkdir -p /docker/exer
cd /docker/exrer

下载源码,克隆官方仓库文件:

shell 复制代码
git clone https://github.com/aceberg/ExerciseDiary.git .

查看文件

shell 复制代码
ls -l Dockerfile docker-compose.yml

启动容器:

shell 复制代码
docker compose up --build -d

部署完成后,在浏览器中输入 http://飞牛IP:8851 就能看到ExerciseDiary的页面啦!

4.使用ExerciseDiary

新建训练模板

点【Add Exercise】创建项目,设置默认重量/次数:

记录体重

修改基本信息

如图所示保存,即可

将 ExerciseDiary 与 cpolar 结合,不仅能轻松部署私有化习惯打卡服务,更能通过 cpolar 强大的内网穿透能力,实现随时随地安全访问------无论你是在公司、出差还是旅行,只需一条 cpolar 隧道,就能从公网无缝连接家中运行的 ExerciseDiary 实例。无需公网 IP、不用复杂配置,cpolar 让你的自律系统真正"随行随用",既保障数据隐私,又突破网络限制,完美诠释了"自由源于掌控"的理念。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

shell 复制代码
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

shell 复制代码
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:

  • 隧道名称:可自定义,本例使用了:exercise,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8851
  • 域名类型:随机域名
  • 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址

使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是exercise,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结

完成以上配置后,ExerciseDiary已经通过Docker Compose运行在飞牛OS中,并可以通过8851端口打开Web页面。

本文实际测试了训练项目创建、默认重量和次数设置、体重记录以及基础信息修改等功能,用来把原本分散的运动数据集中保存到同一个训练日志中。

对于这类需要长期积累的数据,实际使用前还应确认ExerciseDiary当前版本的数据存储目录是否已经正确持久化,并为重要训练记录保留独立备份。容器能够正常运行,并不代表删除和重建容器以后历史数据一定能够自动恢复。

通过cpolar为8851端口创建公网隧道后,还可以从其他网络环境访问ExerciseDiary。由于页面中可能包含体重、训练频率和个人资料等信息,公网使用前应确认应用本身是否具备身份认证,并优先采用HTTPS入口;如果应用没有登录保护,则不建议把页面作为无认证服务长期公开。

如果需要长期使用同一个访问入口,还可以根据实际套餐配置固定二级子域名,在账号和隧道配置保持有效期间使用固定地址。

从Docker部署、训练数据记录,到远程访问,本文完成了一套基于飞牛OS的ExerciseDiary个人运动日志搭建流程。

相关推荐
cpolar技术支持2 天前
第三方平台回调总说收不到?把本机 Webhook 收单页跑通,用 cpolar 固定二级子域名给对面看实时请求
node.js·内网穿透·webhook·cpolar·回调对接
Xxtaoaooo3 天前
NocoDB在线表格数据库:fnOS部署、MySQL可视化与远程协作实操
数据库·mysql·docker·cpolar·nocodb
承渊政道3 天前
CentOS 7单机部署Elasticsearch 7.17.29:从启动报错、CRUD验证到固定公网地址的完整过程
linux·elasticsearch·centos·内网穿透·cpolar·单机部署
承渊政道6 天前
自建服务越来越多怎么管理?Docker部署Flare,搭一个自己的数字入口
运维·docker·容器·内网穿透·cpolar·nas·flare
cpolar技术支持6 天前
喜欢的直播总要蹲点?用 bililive-go 在 NAS 后台自动录制直播并远程管理,再用 cpolar 让外地也能看回放
内网穿透·cpolar·nas·远程访问·自托管
cpolar技术支持9 天前
外网测试机的异常传不回内网?自托管 Sentry,用 cpolar 打通错误上报链路
python·nginx·docker·cpolar·sentry
cpolar技术支持9 天前
Spring Boot 接口本地正常,异地前端却报跨域?用 cpolar 跑通 CORS 预检与白名单
java·springboot·cpolar·前后端分离·cors
cpolar技术支持12 天前
本地数据库客户端只能自己用?用 cpolar 安全访问 NAS 上的 PostgreSQL 管理台
postgresql·内网穿透·cpolar·nas·pgadmin
cpolar技术支持18 天前
服务器上的 Nginx 只想改配置却不敢动?把 Nginx-UI 跑起来,用 MCP 让 AI 助手帮你安全改配置,再用 cpolar 把面板短时开给自己
nginx·ai·cpolar·mcp·nginx-ui
cpolar技术支持1 个月前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright