开始使用

安装与服务管理

本页解决如何安装、校验下载、离线部署和管理服务。第一次使用可跟随快速开始继续登录、建站与验证。 适用 Linux amd64/arm64。安装脚本用于新主机;已有安装请走升级与迁移。

1. 默认安装:系统服务与 80/443/8080

curl -fsSL https://www.tiyisec.com/install.sh | bash && sudo tiyi install --now

需要 curl、tar、sha256sum;默认安装到 /usr/local/bin 需要 root 或 sudo,服务方式需要 systemd。 脚本下载二进制并检查环境;tiyi install --now 创建非 root 服务账号、启动服务并设为开机自启。 首次管理员密码显示在执行安装命令的终端。若 sudo 的 PATH 不含 /usr/local/bin,用完整路径执行。 已是 root 且没有 sudo 时省略 sudo。无 systemd 或无 root 的环境见前台运行。

默认入口 用途 安装后要做什么
0.0.0.0:8080 控制台与管理 API 浏览器访问 http://服务器IP:8080,向管理网络放行 8080
:80 网站 HTTP / ACME HTTP-01 添加站点和源站;按域名访问
:443 网站 HTTPS 配置 TLS 站点和覆盖域名的证书后提供 HTTPS

安装器不会修改防火墙、云安全组或 DNS,也不会接管已有 Nginx/Apache 的端口。 没有 TLS 站点时 443 可能尚未监听;打开控制台不代表业务已受保护。

2. 手动分步骤与自定义安装

curl -fsSL https://www.tiyisec.com/install.sh -o /tmp/tiyi-install.sh
less /tmp/tiyi-install.sh
bash /tmp/tiyi-install.sh
/usr/local/bin/tiyi --version
sudo /usr/local/bin/tiyi doctor
sudo /usr/local/bin/tiyi install --now

less 按 q 退出,也可用 cat 阅读。希望修改端口时先停在最后一步之前,按DIY 安装写入 YAML 再启动。 sudo tiyi install 不带 --now 只创建 unit,不启动也不设为开机启动;首次启动仍执行 install --now,让密码显示在当前终端。

镜像、指定版本与安装目录

中国大陆可使用 Gitee:

curl -fsSL https://gitee.com/tiyisec/tiyi/raw/main/install.sh -o /tmp/tiyi-install.sh
TIYI_MIRROR=gitee bash /tmp/tiyi-install.sh
sudo /usr/local/bin/tiyi install --now

默认下载先尝试 GitHub,失败或过慢时回退到 Gitee。同一脚本也在 GitHub 分发仓库的 install.sh。 要固定版本或装到用户目录,先下载脚本,再运行下面的替代命令;将版本换为选定的已发布标签:

mkdir -p "$HOME/.local/bin"
TIYI_VERSION=vX.Y.Z TIYI_PREFIX="$HOME/.local/bin" bash /tmp/tiyi-install.sh
export PATH="$HOME/.local/bin:$PATH"

用户目录适合前台试用。systemd 服务启用了 ProtectHome,正式服务使用 /usr/local/bin/tiyi。

安装器变量 默认值 用途
TIYI_MIRROR auto auto、github 或 gitee
TIYI_VERSION 最新稳定版 选择已发布发行标签
TIYI_PREFIX /usr/local/bin 二进制安装目录,先确保目录存在
TIYI_REPO zzmzm/tiyi GitHub 分发仓库
TIYI_GITEE_REPO tiyisec/tiyi Gitee 分发仓库

安装器必做 SHA-256 校验;具备支持 pkeyutl -rawin 的 OpenSSL、xxd 和签名文件时还会验证 Ed25519。 缺少签名验证条件会明确提示跳过,不能把 SHA-256 通过当作签名验证通过。要求完整核验时使用下方流程。

3. 离线安装:下载、核验、安装、启动

在联网电脑准备文件

从 GitHub Releases 或 Gitee Releases 选择已发布且计划安装的版本。在目标离线主机执行 uname -m 确认架构:x86_64 用 amd64,aarch64 用 arm64。 下面在联网电脑下载;先替换 vX.Y.Z 和架构:

# 先替换为已发布版本,并选择离线目标主机的架构
TIYI_RELEASE='vX.Y.Z'
TIYI_ARCH='amd64'  # x86_64 用 amd64;aarch64 用 arm64
TIYI_ARCHIVE="tiyi_${TIYI_RELEASE#v}_linux_${TIYI_ARCH}.tar.gz"
mkdir -p tiyi-offline
cd tiyi-offline
TIYI_RELEASE_URL="https://github.com/zzmzm/tiyi/releases/download/${TIYI_RELEASE}"
curl -fL "$TIYI_RELEASE_URL/$TIYI_ARCHIVE" -o "$TIYI_ARCHIVE"
curl -fL "$TIYI_RELEASE_URL/SHA256SUMS" -o SHA256SUMS
curl -fL "$TIYI_RELEASE_URL/SHA256SUMS.sig" -o SHA256SUMS.sig
curl -fsSL https://raw.githubusercontent.com/zzmzm/tiyi/main/release-key.pub -o release-key.pub

也可在发行页面手动下载这四个文件。Gitee 下载前缀为 https://gitee.com/tiyisec/tiyi/releases/download/所选标签,公钥在分发仓库根目录。 把整个目录通过可信介质复制到离线主机;包、清单、签名必须来自同一版本。 目标机预先准备 tar、sha256sum、base64、xxd 和支持 Ed25519 / pkeyutl -rawin 的 OpenSSL,可通过发行版的离线软件包安装。

在离线主机核验并安装二进制

进入刚复制的目录,将压缩包名称替换为实际文件名后执行整段。先验证官方公钥与清单签名,再检查该压缩包的 SHA-256;任一步失败都停止安装。 此流程也适用于联网环境的手工下载校验。

# 替换为复制到本机的准确压缩包文件名
TIYI_ARCHIVE='tiyi_X.Y.Z_linux_amd64.tar.gz'
(
  set -eu
  # 核对官方 Ed25519 公钥,不接受压缩包附带的其他公钥
  test "$(tr -d '\r\n' < release-key.pub)" = 'RIH4Xm2V8NjU4byn/xq+36xQG38dWQ9eQB39Bk+Aze4='
  { printf '302a300506032b6570032100'; base64 -d release-key.pub | xxd -p -c 256; } \
    | xxd -r -p | base64 > release-key.der.b64
  { echo '-----BEGIN PUBLIC KEY-----'; cat release-key.der.b64; echo '-----END PUBLIC KEY-----'; } \
    > release-key.pem
  base64 -d SHA256SUMS.sig > SHA256SUMS.sig.bin
  openssl pkeyutl -verify -pubin -inkey release-key.pem -rawin \
    -in SHA256SUMS -sigfile SHA256SUMS.sig.bin
  # 校验清单必须恰好包含一个目标压缩包条目
  awk -v file="$TIYI_ARCHIVE" '$2 == file || $2 == "*" file' SHA256SUMS > selected.sha256
  test "$(wc -l < selected.sha256)" -eq 1
  sha256sum --check selected.sha256
  mkdir -p tiyi-release
  tar -xzf "$TIYI_ARCHIVE" -C tiyi-release tiyi
  sudo install -m 0755 tiyi-release/tiyi /usr/local/bin/tiyi
)

预期看到 Signature Verified Successfully 和目标压缩包的 OK,且整段命令成功退出。 若公钥不匹配、签名失败、文件缺失或校验和不符,重新核对下载版本与官方文件,不继续执行服务安装。

配置离线运行并启动

核验安装成功后,在新主机创建服务但先不启动:

sudo tiyi install
sudo install -d -m 0750 -o root -g tiyi /etc/tiyi
sudo tee /etc/tiyi/tiyi.yaml >/dev/null <<'YAML'
server:
  addr: "0.0.0.0:8080"
geo:
  auto_update: false
YAML
sudo chown root:tiyi /etc/tiyi/tiyi.yaml
sudo chmod 0640 /etc/tiyi/tiyi.yaml
sudo tiyi install --now
sudo tiyi system health

需要其他端口时,在启动前加上代理端口配置。浏览器访问 http://服务器IP:8080 登录,使用离线主机在当前网络可达的 IP。 内置 CRS 和本地源站无需联网。HTTPS 使用上传证书;需要国家/ASN 数据时从系统设置上传 MMDB。 ACME、外部 IP 订阅、通知和 AI 仍需各自的外部连接;按实际网络配置这些功能。 继续快速开始的源站与建站步骤,完成正常请求和拦截验证。

4. 前台或无 root 试用

先将二进制安装在自己的可写目录。状态用持久磁盘目录;控制台使用 8080,本机网站测试使用高端口:

mkdir -p "$HOME/.local/share/tiyi-demo"
"$HOME/.local/bin/tiyi" run --addr 0.0.0.0:8080 \
  --state-db "$HOME/.local/share/tiyi-demo/state.db" \
  --admin-socket "$HOME/.local/share/tiyi-demo/admin.sock" \
  --caddy-admin-socket "$HOME/.local/share/tiyi-demo/caddy.sock" \
  --proxy-http-addr 127.0.0.1:8180 \
  --proxy-https-addr 127.0.0.1:18443

保持终端运行;首次密码在这里显示。Ctrl+C 停止进程,数据仍保留;重新运行同一命令恢复。 另开终端执行 CLI 时传入实际 socket:

"$HOME/.local/bin/tiyi" --admin-socket "$HOME/.local/share/tiyi-demo/admin.sock" system health

浏览器访问 http://服务器IP:8080,使用太一主机的实际 IP。网站测试在太一主机执行,请求 http://127.0.0.1:8180/。 无 systemd 的正式部署可由已有进程管理器管理 tiyi run,自行配置运行账号、开机启动和重启策略。

5. 日常服务管理与文件位置

要做什么 命令
查看开机启动与进程 sudo systemctl is-enabled tiyi · sudo systemctl status tiyi --no-pager
查看最近启动错误 sudo journalctl -u tiyi -n 100 --no-pager
暂停 / 恢复已有服务 sudo systemctl stop tiyi · sudo systemctl start tiyi
修改启动配置后重启 sudo systemctl restart tiyi
查看应用健康 sudo tiyi system health
移除服务,保留数据 sudo tiyi uninstall

停止单节点服务会中断该节点承载的业务;先安排切流或维护窗口。站点、策略等 UI/CLI/API 变更通常直接发布,无需重启。

路径 内容 / 备份要求
/usr/local/bin/tiyi 二进制;备份时记录版本,保留匹配的旧二进制
/etc/tiyi/tiyi.yaml 可选启动配置;未创建时使用内置默认值
/etc/tiyi/tiyi.env 可选 systemd 环境变量和秘密;限制读取并纳入备份
/var/lib/tiyi/ 完整持久状态、证书、默认 KEK 和数据;一致备份整个目录
/run/tiyi/ 运行时 socket;进程启动时重建,不作为恢复数据

tiyi update 只替换二进制,不重启服务或转换不兼容状态。升级与迁移包含备份与恢复步骤。 uninstall --purge 会删除状态和配置;它不是日常重启、升级或找回密码的方法。

6. 运行时环境变量

持久化服务配置优先写入 tiyi.yaml。只有当 service manager、容器运行时或 密钥管理器需要在运行时注入配置时,才使用环境变量。环境变量名与配置键一一对应: 加 TIYI_ 前缀,转为大写,并把点替换为下划线。例如 auth.jwt_secret 对应 TIYI_AUTH_JWT_SECRET。

文件配置请从完整注释版 tiyi.yaml 模板开始;其中包含 当前全部进程配置键、安全文件说明,以及配套的安装/校验步骤。

常用配置覆盖:

变量 配置键 适用场景
TIYI_SERVER_ADDR server.addr 把 API / 控制台绑定到不同地址。
TIYI_STORE_STATE_DB store.state_db 移动 SQLite 状态数据库。
TIYI_LOG_LEVEL log.level 临时调整进程日志级别。
TIYI_PROXY_HTTP_ADDR proxy.http_addr 修改 HTTP 数据面监听地址。
TIYI_PROXY_HTTPS_ADDR proxy.https_addr 修改 HTTPS 数据面监听地址。
TIYI_PROXY_CADDY_ADMIN_SOCKET proxy.caddy_admin_socket 移动内嵌 Caddy admin socket。
TIYI_CRYPTO_KEK_FILE crypto.kek_file 为生产环境固定静态加密 KEK 路径。
TIYI_AUTH_JWT_SECRET auth.jwt_secret 为生产环境设置稳定 JWT 签名密钥。
TIYI_AUTH_BOOTSTRAP_ADMIN_USERNAME auth.bootstrap_admin_username 指定首个管理员用户名。
TIYI_AUTH_BOOTSTRAP_ADMIN_PASSWORD auth.bootstrap_admin_password 为自动化指定首个管理员密码。
TIYI_LICENSE_KEY_PATH license.key_path 启动时加载签名 license 文件。
TIYI_UPDATE_REPO update.repo 覆盖更新检查使用的 GitHub release 仓库。
TIYI_UPDATE_CHANNEL update.channel 为 tiyi update 使用 stable 或 prerelease。
TIYI_UPDATE_MIRROR update.mirror 更新检查/下载使用 auto、github 或 gitee。

较少使用的配置键也遵循同一规则。LDAP/RADIUS、token 生命周期、cookie 设置与 认证后端细项优先写 YAML,除非部署平台必须通过环境变量注入。