Vic-Nas/statuspage
GitHub: Vic-Nas/statuspage
一个轻量级 Django 状态页工具,解决服务可用性监控与事件跟踪的展示问题。
Stars: 0 | Forks: 0
# 应用
一个轻量级的 Django 状态页面,具备实时轮询、图表和事件跟踪功能。
## 安装说明
```
pip install -r requirements.txt
# 设置环境变量(或导出它们)
export FREQUENCY=60 # seconds between polls
export SECRET_KEY="your-secret"
export DEBUG=false
export ALLOWED_HOSTS="yourdomain.com"
python manage.py makemigrations app
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
```
## 环境变量
| 变量 | 默认值 | 说明 |
| --- | --- | --- |
| `FREQUENCY` | `60` | 轮询间隔(秒) |
| `SECRET_KEY` | dev default | Django 密钥 |
| `DEBUG` | `true` | 生产环境请设为 `false` |
| `ALLOWED_HOSTS` | `*` | 允许的主机列表(逗号分隔) |
| `DB_DIR` | 项目根目录 | 存储 `db.sqlite3` 的目录 |
| `SITE_TITLE` | `System Status` | 页面标题(页眉显示) |
| `MAX_BARS` | `15` | 在“上下”图表中启动渐变压缩前的最大柱状条数 |
## 功能特性
- **公共页面**(`/`):按域名显示上下线状态与响应时间图表,支持可自定义时间窗口(1小时 / 24小时 / 48小时 / 7天),并具备实时刷新
- **管理后台**(`/admin`):添加或编辑 `Domain` 与 `Incident` 对象,并标记事件为已解决
- **自动轮询**:APScheduler 在启动时按 `FREQUENCY` 秒间隔对所有活跃域名进行探测
- **每日清理**:24 小时前已解决的事件会在 UTC 时间 3 点自动删除
## 注意事项
- 通过管理页面(`/admin`)添加需要监控的域名。
- `CheckResult` 表记录会持续累积——建议配置定时任务进行清理(例如保留最近 7 天的数据)。
- 生产环境建议使用 gunicorn:`gunicorn app.wsgi`(调度器会在 `apps.py` 的 ready 钩子中启动)。
标签:Admin后台, APScheduler, CSV输出, Django, Gunicorn, LangChain, Live Refresh, Python, SEO状态页, SQLite, Uptime监控, 事件追踪, 公开页面, 响应时间图表, 实时轮询, 数据库迁移, 无后门, 状态页, 环境变量配置, 自动巡检, 自定义域名, 自托管, 轻量级, 运维监控, 逆向工具