Skip to content

1Panel部署

INFO

(2025年7月)现阶段1Panel产品成熟度有待提高,暂不推荐

1Panel

1Panel 是一款现代化、开源的 Linux 服务器运维管理面板,它基于 Golang 语言编写,具有轻量、高效的特点。可实现主机监控、文件管理、容器管理等功能。

安装

安装:选择中文,其它默认

sh
curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh

如果遇到 Docker 安装失败等问题,可以尝试运行以下脚本:默认安装。

sh
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
# 再次运行1Panel安装
curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh

安装成功后,记录登录地址、用户和密码信息。

参考资料:

登录

浏览器打开1Panel的登录地址,输入用户和密码。如果您使用的是云服务器,请在防火墙中放行相应端口。

image-20250703145010270

镜像加速

登录1Panel——容器——配置——镜像加速——设置,填写下面信息

sh
https://docker.1ms.run
https://docker.xuanyuan.me
https://docker.m.daocloud.io
https://dislabaiot.xyz

image-20250703152802801

安装MySQL

安装

登录1Panel——应用商店——MySQL——安装

  • 版本:8.0.42
  • Root 密码:(自行设定)
  • 端口外部访问:勾选
  • 其它:默认或按需修改

image-20250703151821002

创建数据库

登录1Panel——MySQL——创建数据库

  • 名称:mars-mgn
  • 用户名:mars-mgn
  • 密码:(上一步设置的root密码)

image-20250703153307546

查看连接信息

  • 登录1Panel——MySQL——连接信息,可以查看连接信息
  • 此时,可以通过DBeaver等工具连接数据库

安装Redis

登录1Panel——应用商店——Redis——安装

  • 版本:6.2.18
  • 密码:(自行设定或留空)
  • 端口外部访问:勾选
  • 其它:默认或按需修改

image-20250703154544261

安装Python

上传后端文件

上传准备工作:《运维手册——后端项目打包》

上传方式一:

登录1Panel——系统——文件,进入/opt目录下,上传——上传文件夹,选择整个mars-mgn项目后端目录。

image-20250703162934902

上传方式二:

可以将自己开发的代码上传到Gitee或Gitlab等私人仓库,再从私人代码仓库中下载代码。登录宝塔面板——终端,执行下面命令

sh
cd /opt
git clone https://gitee.com/zhulj993/mars-mgn.git  # 替换为您的私人仓库地址
# git clone -b develop https://gitee.com/zhulj993/mars-mgn.git # 替换为您的私人仓库地址(克隆指定分支)

# 如果有代码更新,运行 git pull 拉取新代码

检查配置文件

检查Django项目配置文件:/opt/mars-mgn/mysite/mysite/settings.py

  • 关闭DEBUG:DEBUG = False
  • 检查MySQL数据库地址、端口、名称、密码:IP填写容器IP
  • 检查Redis数据库地址、端口、名称、密码:IP填写容器IP
  • 检查NGINX_BASE_URL配置:填写OpenResty 的IP或域名

image-20250715163525688

创建Python运行环境

登录1Panel——网站——运行环境——Python——创建运行环境

  • 名称:mars-mgn
  • Python:3.11.10
  • 运行目录:/opt/mars-mgn
  • 启动命令:tail -f /dev/null
  • 应用端口:8000 和 5555

image-20250710085719388

TIP

tail -f /dev/null并不是真正的启动命令。它的是作用是让容器环境运行起来,然后我们可以进入容器安装依赖、初始化数据和启动后端。

安装依赖与初始化数据

登录1Panel——容器,找到Python容器——终端——连接

image-20250705150306411

运行命令

sh
# 安装依赖与初始化数据
bash startup.sh init

当看到下面结果,表示正常

image-20250715163711245

启动Django

继续在上面打开的Python容器终端中,执行命令

sh
# 启动
bash startup.sh run

如果看到下面类似结果,表示正常

image-20250715164957804

注意

如果1Panel 是 v1.x 版本,对Python运行环境执行停止或重启操作,都会导致Python容器销毁重建。

这时,需要重新运行bash startup.sh initbash startup.sh run命令。

但是,重新运行bash startup.sh init命令,会导入初始化数据,污染生产数据!

image-20250709153018133

排错

错误信息

sh
  File "/usr/local/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
    super().__init__(*args, **kwargs2)
django.db.utils.OperationalError: (2002, "Can't connect to server on '127.0.0.1' (115)")

解决方法

  • 查看项目配置文件settings.py,检查数据库相关配置
  • 检查数据库配置中的IP地址DATABASE_HOST:填写容器IP地址

image-20250705151900543

  • 检查数据库名称NAMEmars-mgn
python
### 数据库配置
DATABASE_HOST = "172.18.0.2"  # 数据库地址
DATABASE_PORT = "3306"  # 数据库端口
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "mars-mgn",
        "USER": "root",
        "PASSWORD": "123456",
        "HOST": DATABASE_HOST,
        "PORT": DATABASE_PORT,
        "OPTIONS": {"init_command": "SET time_zone='+08:00'"},
    }
}
  • 再次手动执行命令,检查MySQL状态命令
sh
cd /app/mysite
python manage.py check --database default

# 返回“python manage.py check --database default”,表示连接正常。
  • 再次手动执行命令,检查Redis状态命令
sh
cd /app/mysite
python manage.py check_redis

安装 OpenResty

OpenResty 是基于 NGINX 和 LuaJIT 的 Web 平台。

安装OpenResty

登录1Panel——网站——网站——去应用商店安装OpenResty 。参数默认

image-20250703161736470

创建站点

登录1Panel——网站——网站,点击创建

  • 类型:静态网站
  • 主域名:按需填写外网域名或服务器IP,格式域名:端口
  • 其它域名:按需填写,格式域名:端口
  • 代号:mars-mgn-vue

image-20250705102025179

上传前端文件

登录1Panel——网站——网站,点击上一步创建的网站目录。

image-20250705102327029

在打开的文件管理界面,上传打包后的前端项目文件。建议先压缩后上传,步骤如下:

  • 进入前端打包生成的dist-prod目录,然后全选压缩。
  • 上传压缩包后,点击解压

上传后效果

image-20250705103027576

TIP

前端项目生产环境打包步骤:《运维手册——前端项目打包》

修改OpenResty配置

登录1Panel——网站——网站,点击上一步创建的网站——配置——配置文件。点击查看最新配置文件

image-20250705111313337

映射Django静态文件和媒体文件

容器——找到OpenResty容器——更多——编辑,添加挂载

本地目录容器目录
/opt/mars-mgn/mysite/media/media
/opt/mars-mgn/mysite/static/static

image-20250717170242450

重启OpenResty容器后,登录OpenResty容器终端,能看到Django静态文件和媒体文件

image-20250717170355358

小结

服务器目录结构

分类服务器目录容器容器目录
后端/opt/mars-mgnPython
后端静态文件/opt/mars-mgn/mysite/staticOpenResty/static/
后端媒体文件/opt/mars-mgn/mysite/mediaOpenResty/media/
前端/opt/1panel/apps/openresty/openresty/www/sites/mars-mgn-vue/indexOpenResty
前端日志/opt/1panel/apps/openresty/openresty/www/sites/mars-mgn-vue/logOpenResty
前端证书/opt/1panel/apps/openresty/openresty/www/sites/mars-mgn-vue/sslOpenResty

测试

参考:《生产测试》