官方指导

Windows环境

代码下载,我用git拉不下来,直接下载源码之后解压

环境搭建跟着一步步下来,其中&&在wondows中不可用,需要一行一行执行

pip3 install -r requirements.txt
npm install -g corepack && corepack enable && pnpm install

同步数据

我使用的KEEP,需要先在KEEP的个人中心设置手机号和密码,之后通过命令获取数据

python run_page/keep_sync.py 你的手机号 你的密码

之后生成运动轨迹,在powershell上运行原始命令报错,所以根据提示在{}前加了`

python run_page/gen_svg.py --from-db --title "$`{`{ env.TITLE `}`}" --type github --athlete "$`{`{ env.ATHLETE `}`}" --special-distance 10 --special-distance2 20 --special-color yellow --special-color2 red --output assets/github.svg --use-localtime --min-distance 0.5

生成年度轨迹

python run_page/gen_svg.py --from-db --type circular --use-localtime 

最后 p npm develop 即可启动项目

CentOS环境

代码部署

首先安装git: sudo yum install -y git

拉取代码 git clone https://github.com/yihong0618/running_page.git

如果拉不下来,取消代理再试一次 git config --global --unset http.proxy git config --global --unset https.proxy

安装pip3: yum install -y python3-pip

安装需要的包 pip3 install -r requirements.txt (这里遇到个问题,死活安装不上garth嘉明运动,由于只用keep所以在requirements文件里面把他删掉了

安装npm:https://blog.csdn.net/m0_72803988/article/details/136560877,这里安装的是node14但是要求>=16,所以需要升级https://blog.csdn.net/weixin_42871919/article/details/136657205

安装pnpm: npm install -g pnpm ,如果出现No package.json found in /root/glibc-2.28/build 则执行 npm init -f

至此需要的依赖都已装好,可以根据官方文档提示修改隐私或者网站样式之类的

生成轨迹

python3 run_page/gen_svg.py --from-db --title "$TITLE" --type github --athlete "$ATHLETE" --special-distance 10 --special-distance2 20 --special-color yellow --special-color2 red --output assets/github.svg --use-localtime --min-distance 0.5

最后运行 pnpm develop 就可以看到效果了

Docker部署

如果使用docker的话则运行 docker build -t running_page:latest . --build-arg app=Keep --build-arg keep_phone_number="xxx" --build-arg keep_password="xxx" 构建(由于我是centos所以构建可能出现 Err:1 http://deb.debian.org/debian bullseye InRelease 之类的问题,将Dockerfile中8到11行apt相关内容删除即可

此时可能出现语法问题,需要升级python版本或pip版本,或者在build的时候有可能出错提示无法使用yarn,将dockerfile中yarn替换为pnpm即可

最后启动 docker run -itd -p 5173:80 running_page:latest 就完成docker的运行了,在阿里云实例界面安全组放开5173端口,外网就可以通过ip:5173访问页面了,如果需要二级域名访问则在域名控制台新增二级域名,并且在nginxmanager中配置即可