{"id":50686958,"url":"https://github.com/grafana-cold-storage/oncall","last_synced_at":"2026-06-09T04:00:54.805Z","repository":{"id":37036428,"uuid":"498761556","full_name":"grafana-cold-storage/oncall","owner":"grafana-cold-storage","description":"Developer-friendly incident response with brilliant Slack integration","archived":true,"fork":false,"pushed_at":"2026-03-24T11:14:56.000Z","size":142082,"stargazers_count":3884,"open_issues_count":502,"forks_count":409,"subscribers_count":143,"default_branch":"dev","last_synced_at":"2026-06-05T09:07:03.487Z","etag":null,"topics":["alert","alerting","grafana","oncall","oncall-schedule","slack","telegram"],"latest_commit_sha":null,"homepage":"https://grafana-cold-storage.github.io/oncall/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grafana-cold-storage.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-01T14:05:22.000Z","updated_at":"2026-06-05T06:32:07.000Z","dependencies_parsed_at":"2023-10-11T17:35:21.544Z","dependency_job_id":"20f9f8f9-b9c0-4e50-a19d-6193fb279ca8","html_url":"https://github.com/grafana-cold-storage/oncall","commit_stats":{"total_commits":3599,"total_committers":140,"mean_commits":"25.707142857142856","dds":0.8763545429285913,"last_synced_commit":"51ff0e0b9ea54fe2b6deecdca3279bbb4af632c8"},"previous_names":["grafana-cold-storage/oncall"],"tags_count":643,"template":false,"template_full_name":null,"purl":"pkg:github/grafana-cold-storage/oncall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana-cold-storage%2Foncall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana-cold-storage%2Foncall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana-cold-storage%2Foncall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana-cold-storage%2Foncall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grafana-cold-storage","download_url":"https://codeload.github.com/grafana-cold-storage/oncall/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grafana-cold-storage%2Foncall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34090751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alert","alerting","grafana","oncall","oncall-schedule","slack","telegram"],"created_at":"2026-06-09T00:00:24.243Z","updated_at":"2026-06-09T04:00:54.799Z","avatar_url":"https://github.com/grafana-cold-storage.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# 🚨 Archived: Grafana OnCall OSS 🚨\n\nOn 2025-03-11 Grafana OnCall (OSS) entered maintenance mode and was archived on 2026-03-24.\n\nFor users seeking a fully supported and actively maintained alternative,\n**Grafana Cloud IRM** offers a modern approach to incident response and on-call management.\n\n- [Grafana Cloud IRM documentation](https://grafana.com/docs/grafana-cloud/alerting-and-irm/irm/)\n\n## Grafana OnCall\n\n\u003cimg width=\"400px\" src=\"docs/img/logo.png\"\u003e\n\n[![Latest Release](https://img.shields.io/github/v/release/grafana/oncall?display_name=tag\u0026sort=semver)](https://github.com/grafana/oncall/releases)\n[![License](https://img.shields.io/github/license/grafana/oncall)](https://github.com/grafana/oncall/blob/dev/LICENSE)\n[![Docker Pulls](https://img.shields.io/docker/pulls/grafana/oncall)](https://hub.docker.com/r/grafana/oncall/tags)\n[![Slack](https://img.shields.io/badge/join%20slack-%23grafana-%2Doncall-brightgreen.svg)](https://slack.grafana.com/)\n[![Build Status](https://github.com/grafana/oncall/actions/workflows/on-commits-to-dev.yml/badge.svg)](https://github.com/grafana/oncall/actions/workflows/on-commits-to-dev.yml)\n\nDeveloper-friendly incident response with brilliant Slack integration.\n\n\u003c!-- markdownlint-disable MD013 MD033 --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n    \u003ctd width=\"75%\"\u003e\u003cimg src=\"docs/img/screenshot.png\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cdiv align=\"center\"\u003e\u003ca href=\"https://grafana.com/docs/oncall/latest/mobile-app/\"\u003eAndroid \u0026 iOS\u003c/a\u003e:\u003cbr\u003e\u003cimg src=\"docs/img/screenshot_mobile.png\"\u003e\u003c/div\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- markdownlint-enable MD013 MD033 --\u003e\n\n- Collect and analyze alerts from multiple monitoring systems\n- On-call rotations based on schedules\n- Automatic escalations\n- Phone calls, SMS, Slack, Telegram notifications\n\n## Getting Started\n\n\u003e [!IMPORTANT]  \n\u003e These instructions are for using Grafana 11 or newer. You must enable the feature toggle for\n\u003e `externalServiceAccounts`. This is already done for the docker files and helm charts.  If you are running Grafana\n\u003e separately see the Grafana documentation on how to enable this.\n\nWe prepared multiple environments:\n\n- [production](https://grafana.com/docs/oncall/latest/open-source/#production-environment)\n- [developer](./dev/README.md)\n- hobby (described in the following steps)\n\n1. Download [`docker-compose.yml`](docker-compose.yml):\n\n   ```bash\n   curl -fsSL https://raw.githubusercontent.com/grafana/oncall/dev/docker-compose.yml -o docker-compose.yml\n   ```\n\n2. Set variables:\n\n   ```bash\n   echo \"DOMAIN=http://localhost:8080\n   # Remove 'with_grafana' below if you want to use existing grafana\n   # Add 'with_prometheus' below to optionally enable a local prometheus for oncall metrics\n   # e.g. COMPOSE_PROFILES=with_grafana,with_prometheus\n   COMPOSE_PROFILES=with_grafana\n   # to setup an auth token for prometheus exporter metrics:\n   # PROMETHEUS_EXPORTER_SECRET=my_random_prometheus_secret\n   # also, make sure to enable the /metrics endpoint:\n   # FEATURE_PROMETHEUS_EXPORTER_ENABLED=True\n   SECRET_KEY=my_random_secret_must_be_more_than_32_characters_long\" \u003e .env\n   ```\n\n3. (Optional) If you want to enable/setup the prometheus metrics exporter\n(besides the changes above), create a `prometheus.yml` file (replacing\n`my_random_prometheus_secret` accordingly), next to your `docker-compose.yml`:\n\n   ```bash\n   echo \"global:\n     scrape_interval:     15s\n     evaluation_interval: 15s\n\n   scrape_configs:\n     - job_name: prometheus\n       metrics_path: /metrics/\n       authorization:\n         credentials: my_random_prometheus_secret\n       static_configs:\n         - targets: [\\\"host.docker.internal:8080\\\"]\" \u003e prometheus.yml\n   ```\n\n   NOTE: you will need to setup a Prometheus datasource using `http://prometheus:9090`\n   as the URL in the Grafana UI.\n\n4. Launch services:\n\n   ```bash\n   docker-compose pull \u0026\u0026 docker-compose up -d\n   ```\n\n5. Provision the plugin (If you run Grafana outside the included docker files install the plugin before these steps):\n\n   If you are using the included docker compose file use `admin`/`admin` credentials and `localhost:3000` to\n   perform this task.  If you have configured Grafana differently adjust your credentials and hostnames accordingly.\n\n   ```bash\n   # Note: onCallApiUrl 'engine' and grafanaUrl 'grafana' use the name from the docker compose file.  If you are \n   # running your grafana or oncall engine instance with another hostname adjust accordingly. \n   curl -X POST 'http://admin:admin@localhost:3000/api/plugins/grafana-oncall-app/settings' -H \"Content-Type: application/json\" -d '{\"enabled\":true, \"jsonData\":{\"stackId\":5, \"orgId\":100, \"onCallApiUrl\":\"http://engine:8080\", \"grafanaUrl\":\"http://grafana:3000\"}}'\n   curl -X POST 'http://admin:admin@localhost:3000/api/plugins/grafana-oncall-app/resources/plugin/install'\n   ```\n\n6. Start using OnCall, log in to Grafana with credentials\n   as defined above: `admin`/`admin`\n\n7. Enjoy! Check our [OSS docs](https://grafana.com/docs/oncall/latest/open-source/) if you want to set up\n   Slack, Telegram, Twilio or SMS/calls through Grafana Cloud.\n\n## Troubleshooting\n\nHere are some API calls that can be made to help if you are having difficulty connecting Grafana and OnCall.\n(Modify parameters to match your credentials and environment)\n\n   ```bash\n   # Use this to get more information about the connection between Grafana and OnCall\n   curl -X GET 'http://admin:admin@localhost:3000/api/plugins/grafana-oncall-app/resources/plugin/status'\n   ```\n\n   ```bash\n   # If you added a user or changed permissions and don't see it show up in OnCall you can manually trigger sync.\n   # Note: This is called automatically when the app is loaded (page load/refresh) but there is a 5 min timeout so \n   # that it does not generate unnecessary activity.\n   curl -X POST 'http://admin:admin@localhost:3000/api/plugins/grafana-oncall-app/resources/plugin/sync'\n   ```\n\n## Update version\n\nTo update your Grafana OnCall hobby environment:\n\n```shell\n# Update Docker image\ndocker-compose pull engine\n\n# Re-deploy\ndocker-compose up -d\n```\n\nAfter updating the engine, you'll also need to click the \"Update\" button on the [plugin version page](http://localhost:3000/plugins/grafana-oncall-app?page=version-history).\nSee [Grafana docs](https://grafana.com/docs/grafana/latest/administration/plugin-management/#update-a-plugin) for more\ninfo on updating Grafana plugins.\n\n## Join community\n\n[\u003cimg width=\"200px\" src=\"docs/img/slack.png\"\u003e](https://slack.grafana.com/)\n[\u003cimg width=\"200px\" src=\"docs/img/GH_discussions.png\"\u003e](https://community.grafana.com/)\n\nHave a question, comment or feedback? Don't be afraid to [open an issue](https://github.com/grafana/oncall/issues/new/choose)!\n\n## Stargazers over time\n\n[![Stargazers over time](https://starchart.cc/grafana/oncall.svg)](https://starchart.cc/grafana/oncall)\n\n## Further Reading\n\n- _Automated migration from other on-call tools_ - [Migrator](https://github.com/grafana/oncall/tree/dev/tools/migrators)\n- _Documentation_ - [Grafana OnCall](https://grafana.com/docs/oncall/latest/)\n- _Overview Webinar_ - [YouTube](https://www.youtube.com/watch?v=7uSe1pulgs8)\n- _How To Add Integration_ - [How to Add Integration](https://github.com/grafana/oncall/tree/dev/engine/config_integrations/README.md)\n- _Blog Post_ - [Announcing Grafana OnCall, the easiest way to do on-call management](https://grafana.com/blog/2021/11/09/announcing-grafana-oncall/)\n- _Presentation_ - [Deep dive into the Grafana, Prometheus, and Alertmanager stack for alerting and on-call management](https://grafana.com/go/observabilitycon/2021/alerting/?pg=blog)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrafana-cold-storage%2Foncall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrafana-cold-storage%2Foncall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrafana-cold-storage%2Foncall/lists"}