定期检查和下载软件的最新版 UpdateFetch 的安装步骤

UpdateFetch 的功能介绍和使用说明,请前往 GitHub 项目主页查看。

项目地址: AhFeil/UpdateFetch: 定期检查和下载软件的最新版,方便在特殊网络环境中分享、下载软件 (github.com)

可以前往演示网页体验: UpdateFetch Web (vfly2.com)

适用系统:Debian 系发行版,包括 Ubuntu 和 Armbian,其他发行版按流程稍改命令一般也可。

走通预计时间:25 分钟

原生安装 UpdateFetch

需要先安装 MinIO Server 和它的客户端 mc,因为当前在程序下载后,需要使用 mc 将文件上传到 MinIO 。UpdateFetch 和 mc 要在一台机器上,MinIO Server 可以在任何机器安装。

MinIO Server 和 mc 的安装和使用: 自建 对象存储 – 构建高效可靠的数据存储系统 – 技焉洲 (vfly2.com) ,另外,安装好后,

  1. MinIO Server 创建一个桶,比如名称为 updatefetch,简单起见 Access Policy 就设置为 Public
  2. mc 添加好服务端,这里别名就使用 uf:mc alias set uf http://127.0.0.1:9000 vfly2 pass_vfly2_word

前置准备

推荐使用普通用户,这里假设用户名为 vfly2,并在家目录下的 pythonServe 放置工作目录。

创建目录 /home/vfly2/pythonServe :

mkdir -p ~/pythonServe/ && cd ~/pythonServe/

拉取仓库(并创建备份和保存目录,这是必需的):

git clone https://github.com/AhFeil/UpdateFetch.git && \
cd UpdateFetch && mkdir temp_download config_and_data_files # 创建配置目录和临时下载目录

安装环境和依赖( Python versions 3.8+ )

sudo apt update && sudo apt install python3 python3-pip python3-venv

安装

创建虚拟环境

python3 -m venv .env

激活虚拟环境

source .env/bin/activate

安装依赖的库

pip install -r requirements.txt

配置

根据注释自定义下面的配置文件,然后复制一键即可保存到机器上

cat > config_and_data_files/config.yaml << EOF
---

is_production: true
curl_path: curl         # curl 二进制程序的路径
minio_server: 185.47.128.73:9000   # minio 服务端的 API 地址,必须是这种形式,可以用域名,但不能带 http
minio_client_path: mc   # mc 二进制程序的路径
minio_host_alias: uf    # mc 添加主机时的 ALIAS
bucket: updatefetch     # mc 上传时,要放到哪个 bucket

# 与 UpdateFetchWeb 相关的,若还未安装 UpdateFetchWeb,删除下面所有的,不影响本程序自身功能
web_domain: http://185.149.146.103:7699/   # 最后必须带 /
web_Token: Token b8xxxxxxxxxxxxxxxxxxxxxxxxx40f142
category_default_title: Uncategorized   # 这个必须填
## 下面是默认图片和项目主页,可删除
default_image: https://ib.ahfei.blog:443/imagesbed/undefined_image_url_200-24-01-05.webp
default_website: https://github.com/AhFeil/updatefetchWeb

EOF

使用

编写下载项配置文件

vim config_and_data_files/items.yaml

完整说明前往项目的 GitHub 主页查看。(第一次可以直接复制,先走通再编写自己的)

xray_binary:
  name: xray
  category_title: Server
  image: https://ib.ahfei.blog/imagesbed/xray_logo_cpd-24-01-03.webp
  website: github
  project_name: XTLS/Xray-core
  sample_url: ~/${tag}/Xray-${system}-${ARCHITECTURE}${suffix_name}
  system:
    windows: [windows, .zip]
    linux: [linux, .zip]
  architecture:
    arm64: arm64-v8a
    amd64: '64'

先运行一下,测试是否正常工作

python update_fetch.py

运行完成后,可以前往 MinIO 后台,查看是否成功下载。

这些文件的下载链接,可以在 config_and_data_files/latest_link.json 看到。当然,这样子根本谈不上使用体验,需要配合前端 UpdateFetchWeb 才具有真正的使用价值。

使用 Systemd 守护进程

本项目使用 schedule 库来每天 02:30 执行一次,这段定时运行代码在 run_as_scheduled.py 中。

sudo vim /lib/systemd/system/updatefetch.service

根据实际情况,修改 WorkingDirectory、User、Group、ExecStart 这四个就可以了。

[Unit]
Description=updatefetch App
After=network.target

[Service]
WorkingDirectory=/home/vfly2/pythonServe/updatefetch   # 修改为实际目录
User=vfly2   # 修改
Group=vfly2   # 修改
Type=simple
ExecStart=/home/vfly2/pythonServe/updatefetch/.env/bin/python /home/vfly2/pythonServe/updatefetch/run_as_scheduled.py      # 修改
ExecStop=/bin/kill -s HUP $MAINPID
Environment=PYTHONUNBUFFERED=1
RestartSec=15
Restart=on-failure

[Install]
WantedBy=default.target
sudo systemctl daemon-reload
sudo systemctl enable --now updatefetch
sudo systemctl status updatefetch
sudo systemctl stop updatefetch
sudo systemctl start updatefetch

迁移

在新机器走完上面的安装流程后,只需要转移 config_and_data_files 目录,就与旧机器一致了

更新

先停止运行

sudo systemctl stop updatefetch && cd ~/pythonServe/updatefetch

在工作目录下,用 Git 拉取最新版本:

git pull

然后重启(如果报错,可能添加了依赖库,或者更改了下载项配置格式,前往主页查看修改)

sudo systemctl start updatefetch
sleep 3
sudo systemctl status updatefetch

原文链接: https://yanh.tech/2024/02/deployment-process-of-updatefetch/

版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech)

保持更新 ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ 清晰恒益的实用技能,欢迎使用 RSS 订阅,或在支持 ActivityPub 的平台关注 @vfly2tech@yanh.tech 接收新文章的推送,如果能留言互动就更好了。

可在 Telegram 群组 https://t.me/vfly2 交流依文章步骤遇到的问题。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇