updatefetchWeb 的安装步骤

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

项目地址: AhFeil/updatefetchWeb: 在网页上展示 UpdateFetch 下载的内容,方便使用。(github.com)

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

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

走通预计时间:25 分钟

原生安装 updatefetchWeb

前置准备

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

创建目录 /home/vfly2/pythonServe :

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

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

git clone https://git.ahfei.blog/ahfei/updatefetchWeb.git && \
cd updatefetchWeb && mkdir temp static # 创建临时目录和静态文件目录

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

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

确保开启端口

sudo ufw allow 7699 comment "updatefetchWeb"

安装

创建虚拟环境

python3 -m venv .env

激活虚拟环境

source .env/bin/activate

安装依赖的库

pip install -r requirements.txt

配置

vim updatefetchWeb/local_settings.py

根据注释自定义下面的配置文件

import os
from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

DEBUG = True   # 简单起见,这里开启 debug 模式。实际生产中,避免
# 添加自己的 ip 或域名,否则不能使用
ALLOWED_HOSTS = ['updatefetch.vfly2.com', 'localhost', '127.0.0.1', '185.47.128.73']

# 默认图片和版本名
undefined_image_url = 'https://ib.ahfei.blog:443/imagesbed/undefined_image_url_200-24-01-05.webp'
undefined_version = 'undefined version'

LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static'

# 网页暂存区还不完善,下面的内容保留不管即可
from upload.uploader import MinioUploader
upload_temporary_dir = "temp/"
up_app = "mc"
# 优先使用环境变量定义的值
minio_bucket_path = os.environ.get('MINIO_BUCKET_PATH', "your_minio_alias/upload")
minio_server = os.environ.get('MINIO_SERVER', "your_minio_ip:9000")
minio_uploader = MinioUploader(up_app, minio_bucket_path, minio_server)

初始化

创建数据库

python manage.py makemigrations homepage upload && python manage.py migrate

创建用户,请自行修改 username 和 email,运行命令后还需要输入密码

python manage.py createsuperuser \
--username vfly2updatefetch \
--email updatefetch@vfly2.com

运行(访问 ip:7699 查看是否正常)

gunicorn --bind 0.0.0.0:7699  updatefetchWeb.wsgi

水平有限,目前还需要去后台执行几个操作。

  1. 访问 ip:7699/admin
  2. 增加 Category,Title 填入 Uncategorized 即可,在 UpdateFetch 下载项配置里,未指定分类时,会放在这里。
  3. 增加 Category,手动创建其他的分类,比如 Server、Client,只有创建的分类才能在 UpdateFetch 下载项配置中使用。
  4. 增加 Token,否则 UpdateFetch 无权限上传信息,token 样式为 12719f3e356d96c47ed031645d411c23f4b219e1

然后在 UpdateFetch 的配置文件中,设置好 web 的 ip 和端口,以及 token 即可在下载后,更新 web 的信息

使用 Systemd 守护进程

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

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

[Unit]
Description=UpdateFetchWeb Django App
After=network.target

[Service]
WorkingDirectory=/home/vfly2/pythonServe/updatefetchWeb   # 修改为实际目录
User=vfly2   # 修改
Group=vfly2   # 修改
Type=simple
ExecStart=/home/vfly2/pythonServe/updatefetchWeb/.env/bin/gunicorn --bind 0.0.0.0:7699  updatefetchWeb.wsgi      # 修改
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 updatefetchWeb
sudo systemctl status updatefetchWeb
sudo systemctl stop updatefetchWeb
sudo systemctl start updatefetchWeb

迁移

暂无

更新

先停止运行

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

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

git pull

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

sudo systemctl start updatefetchWeb
sleep 3
sudo systemctl status updatefetchWeb

Nginx 反代

在项目目录下,收集静态文件

.env/bin/python manage.py collectstatic

编辑 Nginx 配置文件

sudo vim /etc/nginx/sites-available/updatefetch
server {
    listen 80;
    server_name updatefetch.vfly2.com;   # 更改为你的y域名

    location / {
        proxy_pass http://127.0.0.1:7699; # Gunicorn 服务地址和端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /static {
        alias /home/vfly2/pythonServe/updatefetchWeb/static; # 设置静态文件目录
    }

}

启用这个配置文件

sudo ln -s /etc/nginx/sites-available/updatefetch /etc/nginx/sites-enabled/updatefetch

检查配置

sudo nginx -t

重启生效

sudo systemctl reload nginx

原文链接: https://yanh.tech/2024/03/deployment-process-of-updatefetchWeb/

版权声明:本博客所有文章除特別声明外,均为 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
小恐龙
花!
上一篇
下一篇