UPSIPP is a SIP endpoint monitor and status page powered entirely by GitHub Actions, Issues, and Pages — inspired by Upptime, with probes executed by gossipper instead of HTTP pings.
This repository is a GitHub template. To monitor your SIP infrastructure, click Use this template above and create your own repository.
- Use this template → create a new repository under your account or org.
- Follow GETTING_STARTED.md — enable Actions (required), optionally enable GitHub Pages for the status site, run Setup CI, edit
upsipp.yml. - Replace the example endpoint with your SIP target; SIP Check CI runs hourly by default (configurable in
upsipp.yml).
After Setup CI runs in your generated repository, this README section is updated automatically:
| Endpoint | Status | History | Response time | Uptime |
|---|---|---|---|---|
| Run Setup CI in your repo to populate this table. |
| Layer | Upptime | UPSIPP |
|---|---|---|
| Config | .upptimerc.yml |
upsipp.yml → generates .upptimerc.yml |
| Probe | HTTP curl |
gossipper SIP scenario (OPTIONS default) |
| History / graphs / site | upptime/uptime-monitor |
Same (compatible history/*.yml) |
| Incidents | GitHub Issues | Same |
| Status page | GitHub Pages | Same |
| Workflow | Schedule | Purpose |
|---|---|---|
| Setup CI | On upsipp.yml change / manual |
Auto-configure owner/repo, workflow schedules, labels, README, site |
| SIP Check CI | Hourly (default) | gossipper probes, history, incidents |
| Response Time CI | Daily | Response time samples |
| Summary CI | Daily | README status table |
| Graphs CI | Daily | Response-time graphs |
| Static Site CI | Daily + config change | GitHub Pages deploy |
All user configuration lives in upsipp.yml. The template includes commented examples for every supported feature — enable them with enabled: true and set your SIP targets.
workflowSchedule:
uptime: "0 * * * *" # SIP Check CI — every hour (default)
# uptime: "*/5 * * * *" # every 5 minutes (GitHub Actions minimum)Setup CI applies workflowSchedule to the workflow files. GitHub cron minimum is 5 minutes.
| Feature | Config keys |
|---|---|
| OPTIONS health check | scenario: options (default, enabled) |
| Built-in INVITE | scenario: uac |
| Custom XML scenario | scenario: scenarios/example_uac.xml |
| Digest auth | auth.user_secret / auth.pass_secret → GitHub Secrets |
| TLS signaling | transport: l1, tls_skip_verify: true |
| Health gates | health.min_success_ratio, max_failed_calls, max_timeouts |
| Per-endpoint assignees | assignees: [username] |
| Disable without deleting | enabled: false |
owner: YOUR_GITHUB_USERNAME # auto-filled by Setup CI
repo: YOUR_REPO_NAME
endpoints:
- name: Example Trunk — OPTIONS
enabled: true
remote: sip.example.com:5060
scenario: optionsSee GETTING_STARTED.md for the full setup guide and TEMPLATE.md if you maintain this template source.
Clone your generated repository, not the template source:
./scripts/validate.sh
./scripts/install-gossipper.sh
./scripts/check.sh updateMaintainers of this template run ./scripts/validate-template.sh before publishing changes.
- Inspired by Upptime (MIT)
- Status page via upptime/uptime-monitor and upptime/status-page
- SIP probing via gossipper (AGPL-3.0, downloaded at runtime)
MIT — see LICENSE.