0 环境
- 使用的系统:mac
- 使用的框架:FastSoyAdmin
- 使用的数据库:PostgreSQL
- 技术:fastapi、vue3、pdm
- 云服务:阿里云轻量服务器
1 docker部署
docker部署比较简单,只要保证docker compose
安装了,然后执行docker-compose.yml
即可,你要后台运行,执行docker-compose up -d
。因为我本人用的是轻量服务器,测了一下用docker有点占我的资源了,为了省点资源,所以麻烦点,换了个普通部署的方式。
2 宝塔部署
我为什么要用它呢,朋友安利我,我就顺便试下效果。安装比较简单,自己在注册一下就搞定了。
1 CentOS 7 专用安装命令
arduino
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh
2 前期准备工作
首先前端打包,我放在云服务器上跑,它扛不住,自动kill它了,只能本地打包放在本地,build
一下,你会看到web/dist
,然后将整个web项目中只保留它,然后和后端项目放一起打个压缩包。将前后端的压缩包上传到宝塔的文件系统里,然后在右键解压包即可,如下图:

3 后端
1 安装python环境
其实用宝塔安装python
还是很方便的。找到网站 --> python项目 --> 安装python --> 选择python版本。然后添加项目,即可。如下图:

不过我更喜欢用命令,不喜欢用命令的人,可以跳过这里了,我个人添加项目,更多是当作一个管理条目的效果,对我来说:只是方便我知道有哪些python的项目。然后我直接ssh登录到云服务上,会发现,还是系统自带的python
版本,需要重新指定一下,宝塔会告诉我们python的位置,所以很方便建立软连接,直接覆盖它即可,当然你若是有很多项目,或者自带的在用,别这么玩,还是用python版本管理工具吧。如下代码:
bash
ln -sf /www/server/pyporject_evn/versions/3.13.2/bin/python3.13 /usr/bin/python3
ln -sf /www/server/pyporject_evn/versions/3.13.2/bin/pip3 /usr/bin/pip3
pip3 install virtualenv
ln -sf /www/server/pyporject_evn/versions/3.13.2/bin/virtualenv /usr/bin/virtualenv
这里输入python3 --version
,如下图就是成功了。

2 pdm安装
之前用pip,后来看了博客,现代Python包管理工具比较,先不说项目的性能什么,单从便捷上来说,进步很多,比如pip之后,啥都不知道,而pdm add后直接在toml里可以看到,真的方便管理,后期项目别人下载了,
install
一下即可,而且pdm方式和pnpm有点像,我就选它了。安装也简单,首先安装pipx,图方便,无需配置啥。pipx ensurepath
就已经将 pipx 到 PATH里了,pipx安装pdm即可。
css
pip3 install --user pipx
pipx ensurepath
pipx install pdm
进入根目录,输入下面的命令即可,直接pdm install
,也可以的。
bash
cd xxxx
pdm init
pdm install
3 pdm运行项目
直接使用默认sqlite
的话,运行没问题。感觉下载慢,换源即可。
arduino
pdm run run.py
当我们nginx配置好后,项目跑起来了,就可以使用nohup pdm run python run.py > app.log 2>&1 &
。面板命令方式就是这样的。如下图:

当然正式环境可以用systemctl
、uwsgi
,也可以试试pm2
这类的。

2 nodejs安装(无须安装,选装)
nodejs的安装也是网站选择node项目,安装即可。要在ssh里用,需要加入软连接覆盖。node -v
查看即可。
bash
sudo ln -sf /www/server/nodejs/v18.14.2/bin/node /usr/local/bin/node
sudo ln -sf /www/server/nodejs/v18.14.2/bin/npm /usr/local/bin/npm
npm install -g pnpm
3 nginx
到软件商城安装nginx。如下图:
安装好后,点进去。然后找到配置修改。如下图:

复制如下代码,粘贴到配置修改里,保存下即可。配置大意就是:监听9527端口,然后将它的请求转成9999后端的路由。这里我有个静态文件,加了个static,本质和api方向代理差不多意思。
bash
server
{
listen 9527;
server_name 127.0.0.1;
# 前端静态资源
location / {
root 你的地址/fast-soy-admin/web/dist;
try_files $uri $uri/ /index.html;
}
# API 反向代理
location ^~ /api/ {
proxy_pass http://127.0.0.1:9999/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 上传文件静态资源(如有)
location ^~ /api/static/ {
proxy_pass http://127.0.0.1:9999/static/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# alias /opt/fast-soy-admin/static;
}
}
4 测试
浏览器输入你的ip:端口,然后回车,搞定收工。