Statping
Container
An 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.
Image details
Source details
Configuration
TypeContainerlinuxstatping/statping:latest4040:8080/tcp/app : /portainer/Files/AppData/Config/statpingalwaysTemplate by xneo1
Standalone Install
Select an install method, to see config/commands for deploying Statping
Install on Portainer
Import all app templates into your Portainer instance, for easy 1-click deploys
- Ensure both Docker and Portainer are installed, and up-to-date
- Log into your Portainer web UI
- Under Settings → App Templates, paste the below URL
- Head to Home → App Templates, and the list of apps will show up
- Select Statping, fill in any config options, and hit Deploy
Template Import URL
https://raw.githubusercontent.com/Lissy93/portainer-templates/main/templates.json
Show Me
More install options in our documentation, or see statping/statping for app-specific guidance.
<b>Statping - Web and App Status Monitoring for Any Type of Project</b><br>View Wiki | Demo | iPhone | Android API | Docker | EC2 | Mac | Linux | Windows
Statping - Status Page & Monitoring Server
An 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.
A Future-Proof Status Page
Statping 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.No Requirements
Statping 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.<a href="https://github.com/statping/statping/wiki/Linux"><img width="5%" src="https://img.cjx.io/linux.png"></a>
<a href="https://github.com/statping/statping/wiki/Mac"><img width="5%" src="https://img.cjx.io/apple.png"></a>
<a href="https://github.com/statping/statping/wiki/Windows"><img width="5%" src="https://img.cjx.io/windows.png"></a>
<a href="https://play.google.com/store/apps/details?id=com.statping"><img width="5%" src="https://img.cjx.io/android.png"></a>
<a href="https://itunes.apple.com/us/app/apple-store/id1445513219"><img width="5%" src="https://img.cjx.io/appstore.png"></a>
<a href="https://hub.docker.com/r/statping/statping"><img width="5%" src="https://img.cjx.io/dockericon.png"></a>
Lightweight and Fast
Statping 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. The Status binary for all other OS's is ~17Mb at most.
Mobile App is Gorgeous
The 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.Run on Any Server
Whether you're a Docker fan-boy or a 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. Running 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. Want 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.
Custom SASS Styling
Statping 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!Slack, Email, Twilio and more
Statping includes email notification via SMTP and Slack integration using Incoming Webhook. 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.User Created Notifiers
View the Plugin Wiki 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 can also be create with only 1 golang file.
Easy to use Dashboard
Having 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.Run on Docker
Use the Statping Docker Image to create a status page in seconds. Checkout the Docker Wiki to view more details on how to get started using Docker.docker run -it -p 8080:8080 statping/statping
There 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.
Docker Compose
In this folder there is a standard docker-compose file that include nginx, postgres, and Statping.docker-compose up -d
Docker Compose with Automatic SSL
You 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.LETSENCRYPT_HOST=mydomain.com \
[email protected] \
docker-compose -f docker-compose-ssl.yml up -d
Once 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.
Prometheus Exporter
Statping includes a 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.
scrape_configs:
- job_name: 'statping'
bearer_token: 'MY API SECRET HERE'
static_configs:
- targets: ['statping:8080']
Run on EC2 Server
Running Statping on the smallest EC2 server is very quick using the AWS AMI Image. Checkout the AWS Wiki to see a step by step guide on how to get your EC2 Statping service online.Create Security Groups
Create the AWS Security Groups with the commands below, Statping will expose port 80 and 443.aws ec2 create-security-group --group-name StatpingPublicHTTP \
--description "Statping HTTP Server on port 80 and 443"
# will response back a Group ID. Copy ID and use it for --group-id below.
aws ec2 authorize-security-group-ingress \
--group-id sg-7e8b830f --protocol tcp \
--port 80 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
--group-id sg-7e8b830f --protocol tcp \
--port 443 --cidr 0.0.0.0/0Create EC2 without SSL
aws ec2 run-instances \
--image-id ami-7be8a103 \
--count 1 --instance-type t2.nano \
--key-name MYKEYHERE \
--security-group-ids sg-7e8b830fCreate EC2 with Automatic SSL Certification
The AWS-CLI command below will automatically create an EC2 server and create an SSL certificate from Lets Encrypt, for free.wget https://raw.githubusercontent.com/statping/statping/master/servers/ec2-ssl.sh
# Edit ec2-ssl.sh and insert your domain you want to use, then run command below.
# Use the Security Group ID that you used above for --security-group-ids
aws ec2 run-instances \
--user-data file://ec2-ssl.sh \
--image-id ami-7be8a103 \
--count 1 --instance-type t2.nano \
--key-name MYKEYHERE \
--security-group-ids sg-7e8b830fContributing
Statping accepts Push Requests! Feel free to add your own features and notifiers. You probably want to checkout the Notifier Wiki 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 you run a MySQL and a Postgres Docker image for testing.Serve Statping on your own domain behind Caddy, Nginx or Traefik. Fill in your domain and copy the result. It's a starting point, some apps need their own base URL or extra headers set too.
Proxying statping.example.com to http://statping:8080
Add this to your Caddyfile
statping.example.com {
reverse_proxy http://statping:8080
}Check the logs first
Nine times out of ten the logs tell you exactly what went wrong.
- In Portainer, go to Containers, click the container, then Logs. Or run
docker logs statping - Exit codes help too:
137means killed, usually out of memory.126or127means the command inside the image is broken.
Port already in use
If deployment fails with "Bind for 0.0.0.0:4040 failed: port is already allocated", something else on your server is using that port.
- Find what's using it:
sudo ss -tlnp | grep :4040 - Stop the other service, or pick a different host port. In
4040:8080only the left number is yours to change, the right one belongs to the app.
Running but the page won't load
The container is up but nothing appears in your browser.
- Use your server's real IP:
http://your-server-ip:4040. The 0.0.0.0 link Portainer shows isn't a real address. - Give it a minute after first deploy, statping can take a while to initialise.
- Make sure your firewall allows the port, e.g.
sudo ufw allow 4040
Permission denied on volumes
If the logs show "permission denied", the app can't write to its data folder on the host.
- Fix the ownership:
sudo chown -R 1000:1000 /portainer/Files/AppData/Config/statping
Image won't pull
Test the pull directly on the host: docker pull statping/statping:latest
- "manifest unknown" means the tag no longer exists. This template uses
latest, so try pinning a specific version instead. - "toomanyrequests" is the Docker Hub rate limit. Log in with
docker loginto raise it. - "no space left on device" means a full disk. Reclaim space with
docker system prune
"exec format error"
This means the image was built for a different CPU architecture than your server.
- This image supports:
amd64, arm64, arm/v7, arm/v6 - Check yours with
uname -m: x86_64 is amd64, aarch64 is arm64. Raspberry Pi and other ARM boards are the usual culprits.
Container keeps restarting
The always restart policy relaunches the app after every crash, so the real error can scroll past.
- Check the logs right after a restart, the last few lines before it died are the useful ones.
- Get the exit code with
docker inspect statping --format '{{.State.ExitCode}}' - Still stuck? Redeploy once with the restart policy set to
noso the failure stays visible.
Raise an issue
Found something which isn't working as it should? Here's how to report it.
- Bug within the app: Open an issue on statping/statping
- Template not working: Open an issue on xneo1/portainer_templates
- This website not working: Open an issue on lissy93/portainer-templates
A single container
Statping runs as one container, the simplest kind of app here. Just the one image to pull and nothing else wired up alongside it.
The app image
An image is the app packed up ready to go, everything Statping needs bundled into one download. This template pulls statping/statping:latest, which Docker fetches once (about 20 MB) and then starts your own copy from.
Where the image comes from
Docker pulls its images from registries, public libraries of ready-built apps. Statping's comes from Docker Hub, published by statping.
Version tags
The bit after the colon in the image name is the version tag. Here it's latest, which always points at the newest build, so a redeploy can bump you to a newer release without you asking. Newest right now is v0.90.74. Pin a specific tag if you would rather stay on one version.
Which machines it runs on
Every image is built for particular CPU types. This one ships for amd64, arm64, arm/v7, arm/v6, so it runs on both regular x86 servers and ARM boards like a Raspberry Pi.
Ports
A port is the door the app answers on. A mapping like 4040:8080 means it's reachable on port 4040 of your server, where the left number is yours to change and the right one belongs to the app. Once it's running, open http://your-server-ip:4040 in a browser. It opens:
4040:8080, likely the web interface
Volumes
A volume is where Statping keeps its files so they survive an update or a restart. Without one, anything it saves would sit inside the container and vanish the moment it's recreated. This template mounts:
/appfrom/portainer/Files/AppData/Config/statpingon the host
Restart policy
The restart policy here is always, so Docker brings Statping back up after a crash and again when the server reboots. Good for anything you want running around the clock. You can change this on the deploy screen. The choices are no (never restart), on-failure (only after a crash), unless-stopped (restart unless you stop it), and always (bring it back no matter what).
Networking
Nothing custom is set, so Statping sits on Docker's default bridge network: its own private space that reaches the outside world only through the ports it publishes.
Container name
Once it's deployed, Portainer names the container statping. That's what you'll spot in the containers list and use in commands like docker logs statping.
Platform
The platform is linux, the kind of system the container is built to run on. Docker and Portainer handle this on a normal Linux server.
Open source license
Statping is open source, released under the GPL-3.0 license. In plain terms the code is out in the open, so you're free to run it and change it to fit what you need.
Portainer app templates
Zooming out, this whole page comes from a Portainer app template: a short recipe telling Portainer how to set Statping up. Add the template list to Portainer once, then deploying Statping is a click rather than a wall of config.