用户需求
一个想法,分享你的跑步页面
在数字化时代,拥有一个展示自己技能、成就和个人品牌的在线平台变得越来越重要。
今天,我们将深度解析一款名为 running_page
的开源项目
它是一个简单易用的个人主页生成器
让你无需深入了解前端开发即可创建个性化主页
running_page
是由开发者 @yihong0618 开发的开源项目,
旨在帮助用户将个人跑步数据可视化,
并生成一个美观的静态网页,以展示自己的运动历程
Create a personal running home page
演示地址:
https://github.com/yihong0618/running_page
https://yihong.run/
https://w.ben29.xyz/
https://grun.vercel.app/

特点:
多平台数据支持:支持从多个运动平台导入数据,便于整合管理。
- 自动化部署:利用 GitHub Actions 实现数据的自动同步和网页的自动生成。
- 地图展示:通过 Mapbox 展示跑步轨迹地图,直观展示跑步路线
- 个性化定制:用户可以根据个人喜好定制网页的样式和内容。
- 隐私保护:支持模糊处理跑步轨迹,保护用户隐私
项目架构分析:

✅ 最新版本(v2.x)使用的技术框架:
🔧 后端(数据同步 + 数据库):
- Python 3.9+
- 数据存储:SQLite3
- 同步逻辑:
keep_sync.py
, strava_sync.py
, garmin_sync.py
,
- 数据更新方式:手动或 GitHub Actions
💻 前端(网页展示):
✅ 2024年更新版本(v2.0 起)已经不再使用 Gatsby,改为 Vite 构建。
部署方式
部署方式 |
后端框架 |
前端框架 |
同步方式 |
备注 |
本地部署 |
Python 3.9+ |
React + Vite |
手动运行 Python 脚本 |
适合开发或调试 |
Vercel + GitHub |
GitHub Actions |
React + Vite |
自动同步(CI/CD) |
推荐方式,易于托管 + 自动更新 |
本地部署:window云主机2c2g源码安装
✅ 步骤一:克隆项目
1
2
3
|
git clone https://github.com/yihong0618/running_page.git
cd running_page
|
✅ 步骤二:安装依赖
安装 Node.js 和 Python 依赖:
Node.js® 是一个免费、开源、跨平台的 JavaScript 运行时环境,
它让开发人员能够创建服务器 Web 应用、命令行工具和脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
https://github.com/wangcy6/running_page/blob/master/Dockerfile
#确保你的电脑已经安装了Node.js
npm config set prefix "E:\package\nodejs\node_global"
npm config set cache "E:\package\nodejs\node_cache"
npm config ls
- 变量名:`NODE_PATH`
- 变量值:`E:\package\nodejs\node_global\node_modules`
# 安装前端依赖
npm install
# 安装 Python 依赖
Miniconda 是一个轻量级的Python环境管理工具,
仅包括conda、Python及其所需的基本依赖库。因此,它的安装包大小较小,
只有几十兆,相比于Anaconda更加灵活
E:\miniconda3
添加miniconda下的三个路径:\mini_conda; \mini_conda\Library\bin; \mini_conda\Scripts
[注意顺序]
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
pip国内的一些镜像:
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
|
python:最大问题 依赖报错
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
ERROR: Could not find a version that satisfies the requirement sqlalchemy (from versions: none)
ERROR: No matching distribution found for sqlalchemy
# 1. 清除 pip 缓存
pip cache purge
# 2. 升级 pip 和构建工具
pip install --upgrade pip setuptools wheel -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 3. 重新安装 timezonefinder
pip install timezonefinder
eviltransform 是一个 Python 模块,用于在中国使用的坐标系(如 GCJ-02)与国际 GPS 坐标(WGS-84)之间相互转换。
很多国产运动平台(如 Keep、咕咚)上传的跑步轨迹使用 GCJ-02,需要转换成 GPS 坐标来正确显示在地图上。
pip install eviltransform gpxpy polyline Crypto -i https://pypi.tuna.tsinghua.edu.cn/simple/
Traceback (most recent call last):
File "D:\other\running_page\run_page\keep_sync.py", line 15, in <module>
from Crypto.Cipher import AES
ModuleNotFoundError: No module named 'Crypto'
pip install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple/
|
说明:window 环境下 不cmd 命令 不用powershell
✅ 步骤三:准备你的跑步数据
- 官方提供数据:https://show.gotokeep.com/sportpc-page/home
1
2
3
4
5
6
|
https://github.com/yihong0618/running_page
python3 run_page/keep_sync.py ${keep_phone_number} ${keep_password};\
--with-gpx
|
✅ 步骤四:启动本地开发
1
2
3
4
5
6
|
npm config set prefix "E:\package\nodejs\node_global"
npm config set cache "E:\package\nodejs\node_cache"
npm install
npm run dev
http://localhost:5173
|
✅ 第 6 步(可选):构建产物并部署到 Vercel / 静态服务器
npm run build
构建结果会在 dist/ 目录里,
适合部署到 Vercel、Netlify、Cloudflare Pages 或任何静态网站服务
定制开发
相关资料:https://walkerdu.com/2025/01/15/running-page/
链接我
正在挑战365天认知马拉松:
✍️ 晨间写作(6:30-7:30)
🏃 夜间健行(20:00-21:00)

如果您觉得阅读本文对您有帮助,
请点一下“点赞,转发” 按钮
您的“点赞,转发” 将是我最大的写作动力!