Scert/deploy/README.md

73 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Scert Linux 部署
## 安装包目录
Linux 安装包应将以下文件放在同一部署目录中:
```text
deploy/
├── install-linux.sh
├── scert
├── scert-admin
└── systemd/
├── Scert.service
├── Scert-admin.service
├── Scert服务管理说明.md
└── Scert-admin服务管理说明.md
```
二进制文件应针对目标平台构建为 Linux amd64,并且具有可执行权限。
## 安装命令
```bash
chmod +x install-linux.sh scert scert-admin
sudo ./install-linux.sh --source-dir .
```
也可以显式指定产物目录:
```bash
sudo ./install-linux.sh --source-dir /tmp/scert-linux-amd64
```
## 安装器行为
安装器会:
1. 检查 Linux、root 权限、`systemctl` 和安装产物。
2. 创建 `Scert` 系统用户和同名系统用户组,禁止交互式登录。
3. 创建 `/scert`、`/scert/conf`、`/scert/data`、`/scert/log`、`/scert/backups`、`/scert/docs` 和证书目录。
4. 安装 `scert`、`scert-admin` 以及两个 systemd unit。
5. 设置安装目录、服务目录和配置目录权限,防止 `Scert` 运行用户替换 root 所有的程序文件。
6. 为证书根目录生成 systemd drop-in,并执行一次 `systemctl daemon-reload`。
安装器不会:
- 执行 `systemctl enable Scert-admin`。
- 启动或重启 `Scert-admin`。
- 创建公网防火墙规则。
- 删除已有配置、数据库、证书和备份。
## 安装后流程
安装完成后先运行初始化流程,填写超级管理员、邮件、DNS API、端口和证书路径配置。初始化流程负责 DNS API 验证、Web 证书申请、部署校验和主服务端口防火墙处理。
`Scert-admin` 默认保持停止状态。确有密码重置需求时,仅使用:
```bash
systemctl start Scert-admin
systemctl stop Scert-admin
```
该服务只允许回环监听,不应为其创建公网或局域网入站规则。云安全组仍需由管理员根据初始化提示手动放行主服务端口。
## 参数说明
- `--source-dir`:包含两个 Linux 可执行文件的目录,默认是安装器所在目录。
- `--certificate-dir`:证书根目录参数,默认 `/ssl`。安装器会创建该目录,写入 `/scert/conf/installation.json`,并生成对应的 `Scert.service.d/10-certificate-path.conf`。首次初始化会读取该记录作为证书目录默认值。
Linux 安装目录当前固定为 `/scert`。自定义证书根目录必须是规范化的安全绝对路径,只允许字母、数字、点、下划线、连字符和斜杠,不允许空格、`..` 路径片段、符号链接、受保护系统目录或 `/scert` 下的路径;`/var` 下仅允许 `/var/lib/scert` 专用目录。
安装器是文件部署阶段,不负责替代首次初始化向导,也不代替真实 ACME 申请和远程部署验收。