Beautiful & simple service statuses. The open source status page system, for everyone.
优势用途
Beautifully crafted
页面美观至少我感觉挺不错的哈哈JSON API
API接口功能相当强大Scheduled maintenance
维护计划(但是2.4-dev版本存在严重bug,镜像做了调整😁)
主要就是如上优势。基于此可以完美构建自己的服务状态页。
部署
通过容器化部署,一步solo。docker-compose.yaml
如下
version: "3"
services:
postgres:
image: postgres
container_name: postgres
volumes:
- /var/lib/postgresql/data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=xpostgres
- POSTGRES_PASSWORD=xpostgres
network_mode: host
restart: always
cachet:
image: ysicing/cachet
container_name: cachet
environment:
- APP_ENV=production
- DB_DRIVER=pgsql
- DB_HOST=127.0.0.1
- DB_PORT=5432
- DB_DATABASE=postgres
- DB_USERNAME=xpostgres
- DB_PASSWORD=xpostgres
- DB_PREFIX=chq_
- APP_KEY=base64:ZryHTRjgA6CEZLJymTiM2F4O9pyCBEe75UFAQe54nmY=
- APP_LOG=errorlog
- APP_DEBUG=false
- APP_URL=https://status.godu.dev
network_mode: host
restart: on-failure
其中需要注意APP_KEY
需要替换为自己定义的值,如果不指定这个值,会默认生成一个。
docker-compose pull
docker-compose up -d
因为某些原因,我强制所有请求为https了。具体参考dockerfile源码ysicing/dockerfiles
web服务部署
- 通过宙斯负载均衡https(有时间会详细讲下)
- 通过nginx部署可以参考官方文档
- 通过caddy部署
status.godu.dev {
gzip
prometheus
log / /var/log/caddy/cdn.tc.log "{remote} {when} {method} {uri} {proto} {status} {size} {>User-Agent} {latency}" {
rotate_size 50
rotate_age 90
rotate_keep 20
rotate_compress
}
errors {
* /tmp/404.html
}
tls root@ysicing.net
header / {
Strict-Transport-Security "max-age=31536000;includeSubDomains;preload"
-Server
}
proxy / http://127.0.0.1:8000 {
websocket
transparent
}
}
最后
效果如:status
抽空明天写下如何对接zabbix
Update
已经移除默认https,否则访问有些问题,特殊场景特殊对待。
版权属于:ysicing
本文链接:https://godu.dev/posts/cachet-docker/
转载时须注明出处及本声明