我把我的paper hot部署到了阿里云轻量服务器,网址是http://paper-hot.seis-jun.xyz,欢迎测试。

我的服务器系统是ubuntu,以下是部署步骤,项目目录是 /opt/paper-hot

准备项目

sudo apt update
sudo apt install -y python3 python3-pip python3-venv git nginx

cd /opt
sudo git clone https://github.com/junxie01/paper-hot.git
cd /opt/paper-hot

python3 -m venv venv
./venv/bin/pip install --upgrade pip setuptools wheel
./venv/bin/pip install -r requirements.txt

如果项目已经存在,只需要更新:

cd /opt/paper-hot
sudo git pull
./venv/bin/pip install -r requirements.txt

创建运行用户

sudo useradd --system --home-dir /opt/paper-hot --shell /usr/sbin/nologin paperhot || true
sudo chown -R paperhot:paperhot /opt/paper-hot

安装 systemd 服务

sudo cp /opt/paper-hot/deploy/paper-hot.service /etc/systemd/system/paper-hot.service
sudo systemctl daemon-reload
sudo systemctl enable paper-hot
sudo systemctl start paper-hot

检查服务状态:

sudo systemctl status paper-hot

看运行日志:

sudo journalctl -u paper-hot -f

安装 Nginx 配置

sudo cp /opt/paper-hot/deploy/nginx-paper-hot.conf /etc/nginx/sites-available/paper-hot
sudo ln -sf /etc/nginx/sites-available/paper-hot /etc/nginx/sites-enabled/paper-hot
sudo nginx -t
sudo systemctl reload nginx

阿里云控制台设置

在域名解析里添加:

记录类型:A
主机记录:paper-hot
记录值:轻量服务器公网 IP

在轻量服务器防火墙里放行:

TCP 80
TCP 443

如果只先测试 HTTP,放行 80 即可。

验证

curl -I http://127.0.0.1:8000/paper-hot
curl -I http://paper-hot.seis-jun.xyz

浏览器访问:

http://paper-hot.seis-jun.xyz

常用操作

重启:

sudo systemctl restart paper-hot

停止:

sudo systemctl stop paper-hot

更新代码后重启:

cd /opt/paper-hot
sudo git pull
sudo chown -R paperhot:paperhot /opt/paper-hot
sudo systemctl restart paper-hot