Statistics for Strava完全指南:自建运动数据统计平台的终极部署方案
Statistics for Strava是一款强大的自托管运动数据统计平台,能够帮助运动爱好者深度分析Strava数据,打造个性化的运动数据中心。本文将提供从环境准备到高级配置的完整部署方案,让你轻松拥有专业级运动数据分析能力。## 为什么选择自建运动数据平台?在当今数据驱动的时代,运动爱好者越来越重视个人数据的掌控权。Statistics for Strava作为开源自托管解决方案,相
Statistics for Strava完全指南:自建运动数据统计平台的终极部署方案
Statistics for Strava是一款强大的自托管运动数据统计平台,能够帮助运动爱好者深度分析Strava数据,打造个性化的运动数据中心。本文将提供从环境准备到高级配置的完整部署方案,让你轻松拥有专业级运动数据分析能力。
为什么选择自建运动数据平台?
在当今数据驱动的时代,运动爱好者越来越重视个人数据的掌控权。Statistics for Strava作为开源自托管解决方案,相比商业平台具有三大核心优势:
- 数据完全私有:所有运动数据存储在本地服务器,避免隐私泄露风险
- 高度自定义:从数据展示到分析维度,完全按照个人需求定制
- 零订阅费用:一次性部署,终身免费使用所有高级功能
图:Statistics for Strava提供的多维度运动数据仪表盘,支持自定义布局和数据展示方式
前期准备与环境要求
部署Statistics for Strava前,请确保你的系统满足以下要求:
- Docker和Docker Compose环境
- 至少2GB RAM和10GB可用存储空间
- 稳定的网络连接(用于同步Strava数据)
- Strava开发者账号(创建API应用获取访问凭证)
获取Strava API凭证
- 访问Strava开发者网站,创建新应用
- 记录Client ID和Client Secret
- 设置回调URL为
http://localhost:8080/(部署后可修改)
图:在Strava开发者控制台获取API凭证的界面
快速部署步骤
1. 克隆项目仓库
# 创建项目目录
mkdir statistics-for-strava
cd statistics-for-strava
# 克隆代码仓库
git clone https://gitcode.com/gh_mirrors/st/statistics-for-strava .
2. 配置核心文件
创建并配置三个关键文件:
docker-compose.yml - 定义服务容器配置
services:
app:
image: robiningelbrecht/strava-statistics:latest
container_name: statistics-for-strava
restart: unless-stopped
volumes:
- ./config:/var/www/config/app
- ./build:/var/www/build
- ./storage/database:/var/www/storage/database
- ./storage/files:/var/www/storage/files
env_file: ./.env
ports:
- 8080:8080
networks:
- statistics-for-strava-network
daemon:
image: robiningelbrecht/strava-statistics:latest
container_name: statistics-for-strava-daemon
restart: unless-stopped
volumes:
- ./config:/var/www/config/app
- ./build:/var/www/build
- ./storage/database:/var/www/storage/database
- ./storage/files:/var/www/storage/files
env_file: ./.env
entrypoint: ['bin/console', 'app:daemon:run']
networks:
- statistics-for-strava-network
networks:
statistics-for-strava-network:
.env - 环境变量配置
STRAVA_CLIENT_ID=YOUR_CLIENT_ID
STRAVA_CLIENT_SECRET=YOUR_CLIENT_SECRET
STRAVA_REFRESH_TOKEN=YOUR_REFRESH_TOKEN_OBTAINED_AFTER_AUTH_FLOW
TZ=Asia/Shanghai
config/config.yaml - 应用配置文件
general:
appUrl: 'http://localhost:8080/'
athlete:
birthday: '1990-01-01'
maxHeartRateFormula: 'fox'
weightHistory:
"2024-01-01": 75
appearance:
locale: 'zh_CN'
unitSystem: 'metric'
import:
sportTypesToImport: ["Ride", "Run", "Swim"]
numberOfNewActivitiesToProcessPerImport: 250
3. 启动服务
docker compose up -d
服务启动后,访问http://localhost:8080即可打开Statistics for Strava平台。
Strava授权与数据同步
首次访问平台时,需要完成Strava授权流程:
- 点击首页的"Connect with Strava"按钮
- 登录你的Strava账号并授权访问
- 系统将自动获取并存储刷新令牌
图:Strava OAuth授权流程界面
授权完成后,执行以下命令手动同步数据:
# 导入Strava数据
docker compose exec app bin/console app:strava:import-data
# 构建统计页面
docker compose exec app bin/console app:strava:build-files
高级配置指南
数据导入策略
通过config/config.yaml文件可以精细控制数据导入行为:
import:
# 指定要导入的运动类型
sportTypesToImport: ["Ride", "Run", "TrailRun", "VirtualRide"]
# 设置导入起始日期
skipActivitiesRecordedBefore: "2023-01-01"
# 排除特定活动ID
activitiesToSkipDuringImport: ["123456789", "987654321"]
个性化仪表盘布局
自定义仪表盘 widgets 布局,创建专属数据视图:
appearance:
dashboard:
layout:
- [mostRecentActivities, weeklyStats]
- [monthlyStats, heartRateZones]
- [ftpHistory, eddington]
图:可高度定制的月度统计仪表盘widget
心率区间与FTP设置
精确配置个人心率区间和FTP历史,获得更准确的训练负荷分析:
general:
athlete:
heartRateZones:
mode: relative
default:
zone1: {from: 50, to: 60}
zone2: {from: 61, to: 70}
zone3: {from: 71, to: 80}
zone4: {from: 81, to: 90}
zone5: {from: 91, to: null}
ftpHistory:
cycling:
"2023-01-01": 250
"2023-06-01": 265
图:基于个人心率区间的训练分析图表
自动化数据同步
配置后台任务自动同步数据,无需手动操作:
daemon:
cron:
- action: 'importDataAndBuildApp'
expression: '0 6 * * *' # 每天早上6点执行
enabled: true
- action: 'gearMaintenanceNotification'
expression: '0 12 * * 0' # 每周日中午12点检查装备维护
enabled: true
故障排除与常见问题
数据导入失败
若遇到导入错误,首先检查Strava API权限设置:
图:确保Strava隐私设置允许API访问活动数据
仪表盘不显示数据
- 确认数据导入命令是否成功执行
- 检查存储空间是否充足
- 查看日志文件排查问题:
docker compose logs app
API速率限制
Strava API有每日请求限制,若遇到速率限制:
- 减少
numberOfNewActivitiesToProcessPerImport值 - 延长导入任务的时间间隔
- 避免频繁手动触发导入
总结与进阶
通过本指南,你已掌握Statistics for Strava的完整部署流程。这个强大的自托管平台不仅能帮助你深入分析运动数据,还能保护数据隐私并完全自定义分析维度。
进阶探索方向:
立即开始你的自托管运动数据平台之旅,解锁更多运动数据洞察!
更多推荐







所有评论(0)