以下是 CentOS 8 系统部署 Spug 自动化运维平台的完整流程,提供三种主流安装方式(推荐使用 Docker 方式):
🐳 一、Docker 安装(推荐)
1. 安装 Docker
bash
# 卸载旧版本
sudo yum remove docker docker-common docker-selinux docker-engine
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 替换国内镜像源(加速下载)
sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 安装并启动
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker && sudo systemctl enable docker
2. 拉取 Spug 镜像
bash
docker pull registry.aliyuncs.com/openspug/spug
3. 启动容器(持久化存储)
bash
# 创建数据目录
sudo mkdir -p /data/spugdata
# 启动容器(映射 80 端口)
docker run -d --restart=always --name=spug \
-p 80:80 \
-v /data/spugdata:/data \
registry.aliyuncs.com/openspug/spug
📌 关键参数说明
-v /data/spugdata:/data :将容器内数据持久化到宿主机
--restart=always:容器崩溃时自动重启124
4. 初始化管理员账户
bash
docker exec spug init_spug admin your_strong_password # 替换 your_strong_password
docker restart spug
5. 访问控制台
text
地址: http://服务器IP:80
用户名: admin
密码: 上一步设置的密码
🐙 二、docker-compose 安装(多容器管理)
1. 安装 docker-compose
bash
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
2. 创建 docker-compose.yml
yaml
version: "3.3"
services:
spug:
image: registry.aliyuncs.com/openspug/spug
container_name: spug
ports:
- "80:80"
volumes:
- /data/spugdata:/data
restart: always
3. 启动服务
bash
docker-compose up -d
docker exec spug init_spug admin your_password
docker restart spug
⚙️ 三、手动安装(适合定制化需求)
1. 依赖安装
bash
sudo yum install -y python39 git mariadb-server libmysqlclient-dev
sudo systemctl start mariadb && sudo systemctl enable mariadb
2. 克隆代码与编译前端
bash
git clone https://github.com/openspug/spug /data/spug
cd /data/spug/spug_web
# 下载编译好的前端包(示例版本)
wget https://gitee.com/openspug/spug-web/releases/download/v3.0.0/spug_web_3.0.0.tar.gz
tar zxvf spug_web_3.0.0.tar.gz -C /data/spug/spug_web/
3. 配置数据库
sql
MariaDB> CREATE DATABASE spug CHARACTER SET utf8mb4;
MariaDB> CREATE USER 'spug'@'localhost' IDENTIFIED BY 'spug.dev';
MariaDB> GRANT ALL PRIVILEGES ON spug.* TO 'spug'@'localhost';
4. 修改后端配置
编辑 /data/spug/spug_api/spug/overrides.py:
python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'spug',
'USER': 'spug',
'PASSWORD': 'spug.dev',
'HOST': 'localhost',
'OPTIONS': {'charset': 'utf8mb4'}
}
}
5. 初始化服务
bash
cd /data/spug/spug_api
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python manage.py initdb
python manage.py user add -u admin -p your_password -s -n 管理员
6. 配置 Nginx
创建 /etc/nginx/conf.d/spug.conf:
nginx
server {
listen 80;
server_name your_domain;
root /data/spug/spug_web/build;
location /api/ {
proxy_pass http://localhost:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
try_files $uri /index.html;
}
}
⚠️ 四、常见问题解决
- SELinux 阻止访问
bash
sudo setenforce 0 # 临时关闭
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config # 永久关闭
- 端口冲突
修改启动命令的端口映射(如 -p 8080:80),确保宿主机端口未被占用28。 - 初始化失败
- 检查数据库连接配置(手动安装时)
- 确保 /data 目录有写入权限(Docker 安装时)
- 查看容器日志:docker logs spug10
- 文件上传限制
在 Nginx 配置中添加:
nginx
client_max_body_size 20m; # 调整上传大小限制:cite[3]
🔐 五、安全加固建议
- 修改默认密码
首次登录后立即修改 admin 密码,避免使用初始密码 spug.dev6。 - 启用 HTTPS
使用 Let's Encrypt 或自签名证书加密控制台访问。 - 定期备份
关键备份目录:- Docker 安装:/data/spugdata
- 手动安装:数据库 /var/lib/mysql + 代码 /data/spug9
💡 最佳实践:生产环境建议使用 Docker 或 docker-compose 部署,具备版本隔离与快速回滚能力。更新时直接替换镜像即可完成升级58。
部署完成后,可通过 主机管理 > 添加主机 接入待管理的服务器,利用 批量执行 或 应用发布 功能实现自动化运维任务。