{"id":13493673,"url":"https://github.com/statping/statping","last_synced_at":"2025-05-15T00:00:41.624Z","repository":{"id":37352813,"uuid":"136770331","full_name":"statping/statping","owner":"statping","description":"Status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins. Run on any type of environment.","archived":false,"fork":false,"pushed_at":"2024-07-05T05:43:00.000Z","size":29823,"stargazers_count":7188,"open_issues_count":49,"forks_count":651,"subscribers_count":65,"default_branch":"dev","last_synced_at":"2025-05-07T23:31:42.971Z","etag":null,"topics":["application-monitoring","docker","golang-plugin","monitoring","notifier","prometheus","prometheus-exporter","server-monitor","statping","status-page","statuspage","uptime","website-monitor"],"latest_commit_sha":null,"homepage":"https://demo.statping.com","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/statping.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"hunterlong","patreon":"statping","open_collective":"statping","custom":["https://www.nfoservers.com/donate.pl?force_recipient=1\u0026recipient=info%40socialeck.com","https://www.buymeacoffee.com/hunterlong"]}},"created_at":"2018-06-10T01:30:44.000Z","updated_at":"2025-05-07T12:17:12.000Z","dependencies_parsed_at":"2024-01-06T01:08:55.622Z","dependency_job_id":"78e166d9-8378-4bba-b9e7-0c214cc3c401","html_url":"https://github.com/statping/statping","commit_stats":{"total_commits":1652,"total_committers":34,"mean_commits":"48.588235294117645","dds":"0.24939467312348673","last_synced_commit":"aa515545dba227a97a5e705bb23bfc87d5e312e7"},"previous_names":["hunterlong/statping","hunterlong/statup"],"tags_count":205,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statping%2Fstatping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statping%2Fstatping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statping%2Fstatping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/statping%2Fstatping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/statping","download_url":"https://codeload.github.com/statping/statping/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254249199,"owners_count":22039029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["application-monitoring","docker","golang-plugin","monitoring","notifier","prometheus","prometheus-exporter","server-monitor","statping","status-page","statuspage","uptime","website-monitor"],"created_at":"2024-07-31T19:01:17.728Z","updated_at":"2025-05-15T00:00:41.502Z","avatar_url":"https://github.com/statping.png","language":"Vue","readme":"\u003cp align=\"center\"\u003e\n\u003cimg width=\"60%\" src=\"https://s3-us-west-2.amazonaws.com/gitimgs/statping.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003cb\u003eStatping - Web and App Status Monitoring for Any Type of Project\u003c/b\u003e\u003cbr\u003e\n\u003ca href=\"https://github.com/statping/statping/wiki\"\u003eView Wiki\u003c/a\u003e | \u003ca href=\"https://demo.statping.com\"\u003eDemo\u003c/a\u003e | \u003ca href=\"https://itunes.apple.com/us/app/apple-store/id1445513219\"\u003eiPhone\u003c/a\u003e | \u003ca href=\"https://play.google.com/store/apps/details?id=com.statping\"\u003eAndroid\u003c/a\u003e \u003cbr\u003e \u003ca href=\"http://docs.statping.com\"\u003eAPI\u003c/a\u003e | \u003ca href=\"https://github.com/statping/statping/wiki/Docker\"\u003eDocker\u003c/a\u003e | \u003ca href=\"https://github.com/statping/statping/wiki/AWS-EC2\"\u003eEC2\u003c/a\u003e | \u003ca href=\"https://github.com/statping/statping/wiki/Mac\"\u003eMac\u003c/a\u003e | \u003ca href=\"https://github.com/statping/statping/wiki/Linux\"\u003eLinux\u003c/a\u003e | \u003ca href=\"https://github.com/statping/statping/wiki/Windows\"\u003eWindows\u003c/a\u003e\n\u003c/p\u003e\n\n# Statping - Status Page \u0026 Monitoring Server\nAn easy to use Status Page for your websites and applications. Statping will automatically fetch the application and render a beautiful status page with tons of features for you to build an even better status page. This Status Page generator allows you to use MySQL, Postgres, or SQLite on multiple operating systems.\n\n![Master Release](https://github.com/statping/statping/workflows/Master%20Release/badge.svg?branch=master) [![GoDoc](https://godoc.org/github.com/golang/gddo?status.svg)](https://godoc.org/github.com/statping/statping) [![Slack](https://slack.statping.com/badge.svg)](https://slack.statping.com) [![](https://images.microbadger.com/badges/image/statping/statping.svg)](https://microbadger.com/images/statping/statping) [![Docker Pulls](https://img.shields.io/docker/pulls/statping/statping.svg)](https://hub.docker.com/r/statping/statping/builds/)\n\n\u003cbr\u003e\u003cbr\u003e\n\u003cimg align=\"left\" width=\"320\" height=\"235\" src=\"https://img.cjx.io/statupsiterun.gif\"\u003e\n\u003ch2\u003eA Future-Proof Status Page\u003c/h2\u003e\nStatping strives to remain future-proof and remain intact if a failure is created. Your Statping service should not be running on the same instance you're trying to monitor. If your server crashes your Status Page should still remaining online to notify your users of downtime.\n\n\u003cbr\u003e\u003ca href=\"https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/statping/statping/master/dev/pwd-stack.yml\"\u003e\u003cimg height=25 src=\"https://assets.statping.com/docker-pwd.png\"\u003e\u003c/a\u003e (dashboard login is `admin`, password `admin`)\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003ch2\u003eNo Requirements\u003c/h2\u003e\nStatping is built in Go Language so all you need is the precompile binary based on your operating system. You won't need to install anything extra once you have the Statping binary installed. You can even run Statping on a Raspberry Pi.\n\u003cbr\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/statping/statping/wiki/Linux\"\u003e\u003cimg width=\"5%\" src=\"https://img.cjx.io/linux.png\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://github.com/statping/statping/wiki/Mac\"\u003e\u003cimg width=\"5%\" src=\"https://img.cjx.io/apple.png\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://github.com/statping/statping/wiki/Windows\"\u003e\u003cimg width=\"5%\" src=\"https://img.cjx.io/windows.png\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://play.google.com/store/apps/details?id=com.statping\"\u003e\u003cimg width=\"5%\" src=\"https://img.cjx.io/android.png\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://itunes.apple.com/us/app/apple-store/id1445513219\"\u003e\u003cimg width=\"5%\" src=\"https://img.cjx.io/appstore.png\"\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://hub.docker.com/r/statping/statping\"\u003e\u003cimg width=\"5%\" src=\"https://img.cjx.io/dockericon.png\"\u003e\u003c/a\u003e\n\u003cbr\u003e\u003cbr\u003e\u003c/p\u003e\n\n\n\u003cimg align=\"right\" width=\"320\" height=\"235\" src=\"https://gitimgs.s3-us-west-2.amazonaws.com/slack-notifer.png\"\u003e\n\u003ch2\u003eLightweight and Fast\u003c/h2\u003e\nStatping is a very lightweight application and is available for Linux, Mac, and Windows. The Docker image is only ~16Mb so you know that this application won't be filling up your hard drive space.\nThe Status binary for all other OS's is ~17Mb at most.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003cimg align=\"left\" width=\"320\" height=\"235\" src=\"https://img.cjx.io/statping_iphone_bk.png\"\u003e\n\u003ch2\u003eMobile App is Gorgeous\u003c/h2\u003e\nThe Statping app is available on the App Store and Google Play for free. The app will allow you to view services, receive notifications when a service is offline, update groups, users, services, messages, and more! Start your own Statping server and then connect it to the app by scanning the QR code in settings.\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://play.google.com/store/apps/details?id=com.statping\"\u003e\u003cimg src=\"https://img.cjx.io/google-play.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://itunes.apple.com/us/app/apple-store/id1445513219\"\u003e\u003cimg src=\"https://img.cjx.io/app-store-badge.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\u003cbr\u003e\n\n## Run on Any Server\nWhether you're a Docker fan-boy or a [AWS EC2](https://github.com/statping/statping/wiki/AWS-EC2) master, Statping gives you multiple options to simply get running. Our Amazon AMI image is only 8Gb and will automatically update to the most stable version of Statping.\nRunning on an EC2 server might be the most cost effective way to host your own Statping Status Page. The server runs on the smallest EC2 instance (t2.nano) AWS has to offer, which only costs around $4.60 USD a month for your dedicated Status Page.\nWant to run it on your own Docker server? Awesome! Statping has multiple docker-compose.yml files to work with. Statping can automatically create a SSL Certification for your status page.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003cimg align=\"left\" width=\"320\" height=\"205\" src=\"https://img.cjx.io/statping_theme.gif\"\u003e\n\u003ch2\u003eCustom SASS Styling\u003c/h2\u003e\nStatping will allow you to completely customize your Status Page using SASS styling with easy to use variables. The Docker image actually contains a prebuilt SASS binary so you won't even need to setup anything!\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Slack, Email, Twilio and more\nStatping includes email notification via SMTP and Slack integration using [Incoming Webhook](https://api.slack.com/incoming-webhooks). Insert the webhook URL into the Settings page in Statping and enable the Slack integration. Anytime a service fails, you're channel that you specified on Slack will receive a message.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003ch2\u003eUser Created Notifiers\u003c/h2\u003e\nView the [Plugin Wiki](https://github.com/statping/statping/wiki/Statping-Plugins) to see detailed information about Golang Plugins. Statping isn't just another Status Page for your applications, it's a framework that allows you to create your own plugins to interact with every element of your status page. [Notifier's](https://github.com/statping/statping/wiki/Notifiers) can also be create with only 1 golang file.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003cimg align=\"center\" width=\"100%\" height=\"250\" src=\"https://img.cjx.io/statupsc2.png\"\u003e\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n\u003cimg align=\"right\" width=\"320\" height=\"235\" src=\"https://img.cjx.io/statping_settings.gif\"\u003e\n\u003ch2\u003eEasy to use Dashboard\u003c/h2\u003e\nHaving a straight forward dashboard makes Statping that much better. Monitor your websites and applications with a basic HTTP GET request, or add a POST request with your own JSON to post to the endpoint.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Run on Docker\nUse the [Statping Docker Image](https://hub.docker.com/r/statping/statping) to create a status page in seconds. Checkout the [Docker Wiki](https://github.com/statping/statping/wiki/Docker) to view more details on how to get started using Docker.\n```bash\ndocker run -it -p 8080:8080 statping/statping\n```\nThere are multiple ways to startup a Statping server. You want to make sure Statping is on it's own instance that is not on the same server as the applications you wish to monitor. It doesn't look good when your Status Page goes down, I recommend a small EC2 instance so you can set it, and forget it.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Docker Compose\nIn this folder there is a standard docker-compose file that include nginx, postgres, and Statping.\n```bash\ndocker-compose up -d\n```\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Docker Compose with Automatic SSL\nYou can automatically start a Statping server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.\n```bash\nLETSENCRYPT_HOST=mydomain.com \\\n    LETSENCRYPT_EMAIL=info@mydomain.com \\\n    docker-compose -f docker-compose-ssl.yml up -d\n```\nOnce your instance has started, it will take a moment to get your SSL certificate. Make sure you have a A or CNAME record on your domain that points to the IP/DNS of your server running Statping.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Prometheus Exporter\nStatping includes a [Prometheus Exporter](https://github.com/statping/statping/wiki/Prometheus-Exporter) so you can have even more monitoring power with your services. The Prometheus exporter can be seen on `/metrics`, simply create another exporter in your prometheus config. Use your Statping API Secret for the Authorization Bearer header, the `/metrics` URL is dedicated for Prometheus and requires the correct API Secret has `Authorization` header.\n```yaml\nscrape_configs:\n  - job_name: 'statping'\n    bearer_token: 'MY API SECRET HERE'\n    static_configs:\n      - targets: ['statping:8080']\n```\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Run on EC2 Server\nRunning Statping on the smallest EC2 server is very quick using the AWS AMI Image. Checkout the [AWS Wiki](https://github.com/statping/statping/wiki/AWS-EC2) to see a step by step guide on how to get your EC2 Statping service online.\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n##### Create Security Groups\nCreate the AWS Security Groups with the commands below, Statping will expose port 80 and 443.\n```bash\naws ec2 create-security-group --group-name StatpingPublicHTTP \\\n     --description \"Statping HTTP Server on port 80 and 443\"\n# will response back a Group ID. Copy ID and use it for --group-id below.\n\naws ec2 authorize-security-group-ingress \\\n     --group-id sg-7e8b830f --protocol tcp \\\n     --port 80 --cidr 0.0.0.0/0\n\naws ec2 authorize-security-group-ingress \\\n     --group-id sg-7e8b830f --protocol tcp \\\n     --port 443 --cidr 0.0.0.0/0\n```\n##### Create EC2 without SSL\n```bash\naws ec2 run-instances \\\n    --image-id ami-7be8a103 \\\n    --count 1 --instance-type t2.nano \\\n    --key-name MYKEYHERE \\\n    --security-group-ids sg-7e8b830f\n```\n##### Create EC2 with Automatic SSL Certification\nThe AWS-CLI command below will automatically create an EC2 server and create an SSL certificate from Lets Encrypt, for free.\n```bash\nwget https://raw.githubusercontent.com/statping/statping/master/servers/ec2-ssl.sh\n# Edit ec2-ssl.sh and insert your domain you want to use, then run command below.\n# Use the Security Group ID that you used above for --security-group-ids\n\naws ec2 run-instances \\\n    --user-data file://ec2-ssl.sh \\\n    --image-id ami-7be8a103 \\\n    --count 1 --instance-type t2.nano \\\n    --key-name MYKEYHERE \\\n    --security-group-ids sg-7e8b830f\n```\n\n## Contributing\nStatping accepts Push Requests to the `dev` branch! Feel free to add your own features and notifiers. You probably want to checkout the [Notifier Wiki](https://github.com/statping/statping/wiki/Notifiers) to get a better understanding on how to create your own notification methods for failing/successful services. Testing on Statping will test each function on MySQL, Postgres, and SQLite. I recommend running MySQL and Postgres Docker containers for testing. You can find multiple docker-compose files in the dev directory. \n\n![Dev Release](https://github.com/statping/statping/workflows/Dev%20Release/badge.svg?branch=dev)\n[![Go Report Card](https://goreportcard.com/badge/github.com/statping/statping)](https://goreportcard.com/report/github.com/statping/statping)\n[![Build Status](https://travis-ci.com/statping/statping.svg?branch=master)](https://travis-ci.com/statping/statping) [![Cypress.io tests](https://img.shields.io/badge/cypress.io-tests-green.svg?style=flat-square)](https://dashboard.cypress.io/#/projects/bi8mhr/runs)\n[![Docker Pulls](https://img.shields.io/docker/pulls/statping/statping.svg)](https://hub.docker.com/r/statping/statping/builds/) [![Godoc](https://godoc.org/github.com/statping/statping?status.svg)](https://godoc.org/github.com/statping/statping)[![Coverage Status](https://coveralls.io/repos/github/statping/statping/badge.svg?branch=master)](https://coveralls.io/github/statping/statping?branch=master)\n\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.buymeacoffee.com/hunterlong\" target=\"_blank\"\u003e\n\u003cimg height=\"55\" src=\"https://img.cjx.io/buy-me-redbull.png\" \u003e\n\u003c/a\u003e\n\u003c/p\u003e\n","funding_links":["https://github.com/sponsors/hunterlong","https://patreon.com/statping","https://opencollective.com/statping","https://www.nfoservers.com/donate.pl?force_recipient=1\u0026recipient=info%40socialeck.com","https://www.buymeacoffee.com/hunterlong"],"categories":["Misc","Vue","Install from Source","HarmonyOS","置顶","docker","prometheus","monitoring","Go"],"sub_categories":["Monitoring","Windows Manager","05、运维监控体系","AWS Amplify"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatping%2Fstatping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatping%2Fstatping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatping%2Fstatping/lists"}