Statistics for Strava完全指南:自建运动数据统计平台的终极部署方案

【免费下载链接】statistics-for-strava Self-hosted statistics generated using Strava data 【免费下载链接】statistics-for-strava 项目地址: https://gitcode.com/gh_mirrors/st/statistics-for-strava

Statistics for Strava是一款强大的自托管运动数据统计平台,能够帮助运动爱好者深度分析Strava数据,打造个性化的运动数据中心。本文将提供从环境准备到高级配置的完整部署方案,让你轻松拥有专业级运动数据分析能力。

为什么选择自建运动数据平台?

在当今数据驱动的时代,运动爱好者越来越重视个人数据的掌控权。Statistics for Strava作为开源自托管解决方案,相比商业平台具有三大核心优势:

  • 数据完全私有:所有运动数据存储在本地服务器,避免隐私泄露风险
  • 高度自定义:从数据展示到分析维度,完全按照个人需求定制
  • 零订阅费用:一次性部署,终身免费使用所有高级功能

Strava数据仪表盘展示

图:Statistics for Strava提供的多维度运动数据仪表盘,支持自定义布局和数据展示方式

前期准备与环境要求

部署Statistics for Strava前,请确保你的系统满足以下要求:

  • Docker和Docker Compose环境
  • 至少2GB RAM和10GB可用存储空间
  • 稳定的网络连接(用于同步Strava数据)
  • Strava开发者账号(创建API应用获取访问凭证)

获取Strava API凭证

  1. 访问Strava开发者网站,创建新应用
  2. 记录Client IDClient Secret
  3. 设置回调URL为http://localhost:8080/(部署后可修改)

Strava API设置界面

图:在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授权流程:

  1. 点击首页的"Connect with Strava"按钮
  2. 登录你的Strava账号并授权访问
  3. 系统将自动获取并存储刷新令牌

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隐私设置

图:确保Strava隐私设置允许API访问活动数据

仪表盘不显示数据

  1. 确认数据导入命令是否成功执行
  2. 检查存储空间是否充足
  3. 查看日志文件排查问题:
    docker compose logs app
    

API速率限制

Strava API有每日请求限制,若遇到速率限制:

  • 减少numberOfNewActivitiesToProcessPerImport
  • 延长导入任务的时间间隔
  • 避免频繁手动触发导入

总结与进阶

通过本指南,你已掌握Statistics for Strava的完整部署流程。这个强大的自托管平台不仅能帮助你深入分析运动数据,还能保护数据隐私并完全自定义分析维度。

进阶探索方向:

立即开始你的自托管运动数据平台之旅,解锁更多运动数据洞察!

【免费下载链接】statistics-for-strava Self-hosted statistics generated using Strava data 【免费下载链接】statistics-for-strava 项目地址: https://gitcode.com/gh_mirrors/st/statistics-for-strava

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐