如何在 Debian 12 上安装 Cachet 状态页面系统
在此页面上
- 先决条件
- 安装 Docker 引擎
- 使用 Docker 和 PostgreSQL 数据库运行 Cachet
- 设置 Nginx 作为反向代理
- 设置 UFW(简单防火墙)
- 使用 HTTPS 保护 Cachet
- 安装标记
- 结论
Cachet 是一个用 PHP 编写的开源状态页面系统。它允许您监控基础设施上的停机时间和系统故障。 Cachet 提供 JSO API,甚至提供报告、指标、多种通知方法和双因素身份验证。
在下面的教程中,我们将向您展示如何在 Debian 12 服务器上安装 Cachet 状态页面。您将使用 PostgreSQL 数据库和 Nginx Web 服务器将 Cachet 作为 Docker 容器运行。
先决条件
在继续之前,请确保您具备以下条件:
- Debian 12 服务器。
- 具有 sudo 权限的非 root 用户。
- UFW 已安装并配置。
- 域名指向服务器IP地址。
安装 Docker 引擎
在此示例中,您将通过 Docker 将 Cachet 安装为容器。所以你需要将 Docker 引擎安装到你的 Debian 系统上。在此示例中,您将使用官方 Docker 引擎包。
首先,运行以下命令来安装包curl和ca-certificates。
sudo apt install ca-certificates curl -y
现在,通过执行以下命令为 Docker 存储库添加 GPG 密钥。
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
接下来,使用以下命令为 Debian 系统添加 Docker 引擎存储库。
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
添加 Docker 存储库后,使用以下命令更新并刷新您的包索引。
sudo apt update
现在使用以下命令将 Docker Engine 安装到您的系统中。键入 Y 确认安装。
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完成后,Docker 服务应该会自动运行。使用以下命令检查 Docker 服务状态。
sudo systemctl status docker
您将看到如下所示的输出:
为了确保您的用户可以执行并运行容器,您必须使用以下命令将其添加到 docker 组。
sudo usermod -aG sudo alice
最后,以您的用户身份登录并执行下面的 docker 命令来运行容器 hello-world。
su - alice
docker run hello-world
如果配置成功,您应该得到如下输出“Hello Docker”:
使用 Docker 和 PostgreSQL 数据库运行 Cachet
安装 Docker 后,您需要下载 Cachet 项目并配置安装。在这种情况下,您将以非 root 用户身份使用 Docker 容器安装并运行 Cachet。
将Cachet项目下载到cachet-docker目录并进入。
git clone https://github.com/cachethq/Docker.git cachet-docker
cd cachet-docker
使用以下 nano 编辑器命令打开 docker-compose.yml 文件。
nano docker-compose.yml
将默认主机端口更改为 8000,如下所示。您还可以使用您的信息自定义数据库详细信息,并将默认的 Cachet 版本保留为目前的 2.4。
ports:
- 8000:8000
保存文件并退出。
现在运行以下 docker 命令来构建缓存映像并为 Cachet 和 PostgreSQL 运行容器。
docker compose build
docker compose up
下面,您可以看到为 Cachet 构建 Docker 镜像时的屏幕截图。
下面是为 Cachet 和 PostgreSQL 运行容器/服务时的屏幕截图。
在 Cachet 容器的详细日志中,您会发现有关 APP_KEY 配置的错误。复制生成的APP_KEY并按Ctrl+c终止容器。
接下来,使用 nano 编辑器重新打开 docker-compose.yml 文件。
nano docker-compose.yml
更改默认的 APP_KEY 参数,如下所示。确保包含 base64 字符串。
APP_KEY=base64:WfKUhY0wAOyr5hkxoctZUSWPGdXbBUWFvNLCoI7kTU8=
保存文件并退出。
现在运行下面的 docker 命令来终止 Cachet 和 PostgreSQL 的容器,然后再次启动它。
docker compose down
docker compose up -d
容器启动后,使用以下命令验证正在运行的容器的列表。
docker compose ps
如下所示,Cachet 和 PostgreSQL 容器都在运行。 Cachet 容器正在端口 8000 上运行。
设置 Nginx 作为反向代理
现在 Cachet 作为容器在端口 8000 上运行,您将安装并配置 Nginx 作为 Cachet 的反向代理。
使用以下命令将 Nginx 安装到您的 Debian 服务器。
sudo apt install nginx -y
安装完成后,使用下面的 nano 编辑器命令创建一个新的 Nginx 服务器块配置 /etc/nginx/sites-available/cachet。
sudo nano /etc/nginx/sites-available/cachet
插入下面的配置并确保将 server_name 参数更改为您的域名。
server {
listen 80;
server_name status.howtoforge.local;
location / {
proxy_pass http://127.0.0.1:8000;
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;
}
}
保存文件并退出编辑器。
接下来,运行下面的 Nginx 命令来激活 Cachet 服务器块并检查您的 Nginx 语法。如果您的语法正确,您应该得到一个输出“syntax is ok”。
sudo ln -s /etc/nginx/sites-available/cachet /etc/nginx/sites-enabled/
sudo nginx -t
最后,重新启动 Nginx Web 服务器以应用 Cachet 服务器块配置并验证 Nginx 服务以确保其正在运行。
sudo systemctl restart nginx
sudo systemctl status nginx
如果 Nginx 正在运行,您应该得到一个输出 active(running)。
设置 UFW(简单防火墙)
在访问Cachet之前,您必须确保HTTP和HTTPS端口都被允许。在 Ubuntu 上,您将允许通过 UFW(简单防火墙)传输 HTTP 和 HTTPS 流量。
确保 UFW 已启用,现在运行以下命令以在 UFW 上启用“Nginx Full”配置文件。这将允许 HTTP 和 HTTPS 协议的流量到达您的 Nginx Web 服务器。
sudo ufw allow 'Nginx Full'
现在使用以下命令验证 UFW 中启用的规则列表。
sudo ufw status
您将看到 UFW 上启用了“Nginx Full”配置文件。
使用 HTTPS 保护 Cachet
此时,您的 Cachet 应该可以通过 Nginx 访问。为了保护您的安装,您将通过 Letsencrypt 的 SSL 为 Cachet 启用 HTTPS。
因此,运行以下命令来安装 Certbot 和 Certbot Nginx 插件。输入 Y 确认安装。
sudo apt install certbot python3-nginx-certbot
安装完成后,执行下面的 certbot 命令为您的 Cachet 安装生成 SSL/TLS 证书。请务必使用您的信息更改详细域名和电子邮件地址。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d status.howtoforge.local
一切完成后,您的 SSL/TLS 证书应存储在 /etc/lestencrypt/live/status.howtoforge.local 目录中。此外,您的 Cachet 应通过 HTTPS 进行保护。
安装标记
启动您首选的 Web 浏览器并访问您的 Cachet 安装 https://status.howtoforge.local/。如果安装成功,您应该会看到以下页面。
选择数据库的默认缓存驱动程序、队列驱动程序和会话驱动程序。然后,输入您的邮件服务器的详细信息。
单击下一步继续。
现在设置状态页面名称、默认时区和默认语言。然后再次单击下一步。
现在,输入您的用户名、电子邮件和密码,为 Cachet 创建一个新的管理员用户。然后,点击完成设置进行确认。
完成后,您将看到以下内容 - 单击转到仪表板。
使用您的用户名和密码登录 Cache,然后点击登录。
如果安装成功,您应该获得如下所示的 Cachet 仪表板:
结论
恭喜!您现在已经使用 Docker 在 Debian 12 服务器上安装了 Cachet 状态页面。您的 Cachet 安装正在使用 PostgreSQL 数据库和 Nginx Web 服务器运行。您现在可以使用 Cachet 监控您的站点。