-# Statping-ng - 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.
-
+
Statping-ng - 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.
+
Statping-ng aims to be an updated drop-in replacement of statping after development stopped on the original fork.
-
-     
-
-
-
-
A Future-Proof Status Page
-Statping-ng 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.
-
- (dashboard login is `admin`, password `admin`)
-
-
-
No Requirements
-Statping-ng 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.
-
-
-
-
-
-
-
-
-
-
-
-
-
Lightweight and Fast
-Statping-ng 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-ng server and then connect it to the app by scanning the QR code in settings.
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-## Run on Any Server
-Want to run it on your own Docker server? Awesome! Statping-ng has multiple docker-compose.yml files to work with. Statping-ng can automatically create a SSL Certification for your status page.
-
+
+
About Statping-ng
-
-
Custom SASS Styling
-Statping-ng 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!
-
+
+
A Future-Proof Status Page
+
+ Statping-ng strives to remain future-proof and remain intact if a failure is created. Your Statping-ng 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.
+
+
+ - Login is admin, password admin.
+
+
-## Slack, Email, Twilio and more
-Statping-ng 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-ng and enable the Slack integration. Anytime a service fails, the channel that you specified on Slack will receive a message.
-
-
User Created Notifiers
-View the [Plugin Wiki](https://github.com/statping-ng/statping-ng/wiki/Statping-Plugins) to see detailed information about Golang Plugins. Statping-ng 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-ng/statping-ng/wiki/Notifiers) can also be create with only 1 golang file.
-
+
No Requirements - Run on Any Server
+
+Statping-ng is built in Go Language so all you need is the pre-compiled binary based on your operating system. You won't need to install anything extra once you have the Statping binary installed. Windows, Linux or Mac, We compile to all the popular systems, including Raspberry Pi!
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
Lightweight and Fast
+
+Statping-ng is a very lightweight application and is available for Linux, Mac, and Windows. The Docker image is only ~20Mb 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.
+
+
-
+
+
Want easy containers?
+
+No Worries, we provide docker containers for many different system architectures, with multiple docker-compose files to suit your needs, you can even bring your own SSL Certificate or automatically leverage Lets Encrypt to keep things secure. But it's can be as simple as a docker run!
+
+
+
+
+
+
Custom SASS Styling
+Statping-ng will allow you to completely customize your Status Page using SASS styling with easy to use variables. The container image actually contains a pre-built SASS binary so you won't even need to setup anything!
+
+
+
+
+
Compatible with the Statping App
+
+Statping-ng is 100% compatible with the statping app which is available on the Apple 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-ng server and then connect it to the app by scanning the QR code in settings.
+
+
+
+
+
The mobile app is not maintained by statping-ng and includes in-app purchases to the developer of statping.
+
+
+
Notifications - Slack, Email, Twilio and more
+
Statping-ng includes email notification via SMTP and Slack integration using Incoming Webhook. Insert the webhook URL into the Settings page in Statping-ng and enable the Slack integration. Anytime a service fails, the channel that you specified on Slack will receive a message.
+
View the Plugin Wiki to see detailed information about Golang Plugins. Statping-ng 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-ng 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.
-
+
+Having a straight forward dashboard makes Statping-ng that much better. Quickly and Easy view statuses. 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.
+
+
+
+
+
+
+
+
Quick Start
+
Here's a few quick start guides to get you going, fast.
+
+
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.
+
-## Run on Docker
-Use the [Statping Docker Image](https://hub.docker.com/r/adamboutcher/statping-ng) to create a status page in seconds. Checkout the [Docker Wiki](https://github.com/statping-ng/statping-ng/wiki/Docker) to view more details on how to get started using Docker.
```bash
docker run -it -p 8080:8080 adamboutcher/statping-ng
```
-There are multiple ways to startup a Statping-ng server. You want to make sure Statping-ng 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.
-
-## Docker Compose
-In this folder there is a standard docker-compose file that include nginx, postgres, and Statping-ng.
+
Docker Compose
+
In the root (base) folder there is a standard docker-compose file that includes nginx, postgres, and Statping-ng.
+
```bash
docker-compose up -d
```
-
-## Docker Compose with Automatic SSL
-You can automatically start a Statping-ng server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping-ng server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.
+
Docker Compose with Automatic SSL
+
You can automatically start a Statping-ng server with automatic SSL encryption using this docker-compose file. First point your domain's DNS to the Statping-ng server, and then run this docker-compose command with DOMAIN and EMAIL. Email is for letsencrypt services.
+
```bash
LETSENCRYPT_HOST=mydomain.com \
LETSENCRYPT_EMAIL=info@mydomain.com \
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-ng.
-
-## Prometheus Exporter
-Statping-ng includes a [Prometheus Exporter](https://github.com/statping-ng/statping-ng/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-ng API Secret for the Authorization Bearer header, the `/metrics` URL is dedicated for Prometheus and requires the correct API Secret has `Authorization` header.
+
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-ng.
+
+
Prometheus Exporter
+
Statping-ng 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-ng API Secret for the Authorization Bearer header, the /metrics URL is dedicated for Prometheus and requires the correct API Secret has Authorization header.
-## Contributing
-Statping-ng 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-ng/statping-ng/wiki/Notifiers) to get a better understanding on how to create your own notification methods for failing/successful services. Testing on Statping-ng 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.
-
-[](https://goreportcard.com/report/github.com/statping-ng/statping-ng)
+
Contributing
+
Statping-ng accepts Push Requests to the dev branch!
+
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-ng 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.
From 49efcaf10470176bdbb5c8094c4974e17ce289b9 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:30:58 +0100
Subject: [PATCH 14/55] Windows 32bit for unstable, Windows 32/64 and darwin 64
for stable.
---
.github/workflows/2_unstable.yml | 2 +
.github/workflows/3_stable.yml | 68 ++++++++++++++++----------------
2 files changed, 37 insertions(+), 33 deletions(-)
diff --git a/.github/workflows/2_unstable.yml b/.github/workflows/2_unstable.yml
index c9a18933..71b9cad8 100644
--- a/.github/workflows/2_unstable.yml
+++ b/.github/workflows/2_unstable.yml
@@ -64,6 +64,8 @@ jobs:
include:
- platform: darwin
arch: amd64
+ - platform: windows
+ arch: 386
- platform: windows
arch: amd64
diff --git a/.github/workflows/3_stable.yml b/.github/workflows/3_stable.yml
index 71fec2ad..3c5537c0 100644
--- a/.github/workflows/3_stable.yml
+++ b/.github/workflows/3_stable.yml
@@ -74,11 +74,13 @@ jobs:
matrix:
platform: [linux]
arch: [386, amd64, arm-7, arm-6, arm64]
-# include:
-# - platform: darwin
-# arch: amd64
-# - platform: windows
-# arch: amd64
+ include:
+ - platform: darwin
+ arch: amd64
+ - platform: windows
+ arch: 386
+ - platform: windows
+ arch: amd64
steps:
- uses: actions/checkout@v2
@@ -108,17 +110,17 @@ jobs:
echo "XGO_TAGS=netgo osusergo linux sqlite_omit_load_extension" >> $GITHUB_ENV
shell: bash
-# - name: Set Darwin Build Flags
-# if: matrix.platform == 'darwin'
-# run: echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV
-# shell: bash
+ - name: Set Darwin Build Flags
+ if: matrix.platform == 'darwin'
+ run: echo "XGO_TAGS=netgo osusergo darwin sqlite_omit_load_extension" >> $GITHUB_ENV
+ shell: bash
-# - name: Set Windows Build Flags
-# if: matrix.platform == 'windows'
-# run: |
-# echo "BUILD_FLAGS=-extldflags -static" >> $GITHUB_ENV
-# echo "XGO_TAGS=netgo osusergo sqlite_omit_load_extension" >> $GITHUB_ENV
-# shell: bash
+ - name: Set Windows Build Flags
+ if: matrix.platform == 'windows'
+ run: |
+ echo "BUILD_FLAGS=-extldflags -static -buildmode=exe" >> $GITHUB_ENV
+ echo "XGO_TAGS=netgo osusergo sqlite_omit_load_extension" >> $GITHUB_ENV
+ shell: bash
- name: Build ${{ matrix.platform }}/${{ matrix.arch }}
uses: crazy-max/ghaction-xgo@v1
@@ -148,25 +150,25 @@ jobs:
rm -rf statping
echo "compressed=statping-linux-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
-# - name: Compress Windows Builds
-# if: matrix.platform == 'windows'
-# run: |
-# cd build
-# mv statping-windows-4.0-${{ matrix.arch }}.exe statping.exe
-# chmod +x statping.exe
-# zip statping-windows-${{ matrix.arch }}.zip statping.exe
-# rm -rf statping.exe
-# echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
+ - name: Compress Windows Builds
+ if: matrix.platform == 'windows'
+ run: |
+ cd build
+ mv statping-windows-4.0-${{ matrix.arch }}.exe statping.exe
+ chmod +x statping.exe
+ zip statping-windows-${{ matrix.arch }}.zip statping.exe
+ rm -rf statping.exe
+ echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
-# - name: Compress Darwin Builds
-# if: matrix.platform == 'darwin'
-# run: |
-# cd build
-# mv statping-darwin-10.6-${{ matrix.arch }} statping
-# chmod +x statping
-# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
-# rm -rf statping
-# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+ - name: Compress Darwin Builds
+ if: matrix.platform == 'darwin'
+ run: |
+ cd build
+ mv statping-darwin-10.12-${{ matrix.arch }} statping
+ chmod +x statping
+ tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
+ rm -rf statping
+ echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
- name: Upload Compiled Statping Binary
uses: actions/upload-artifact@v1
From 3bd621e0e3d35a46a993f928c1f6b707725fdf66 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:31:18 +0100
Subject: [PATCH 15/55] Test darwin 32bit on dev
---
.github/workflows/1_dev.yml | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index 22282697..6d8f063e 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -63,9 +63,13 @@ jobs:
arch: [386, amd64, arm-7, arm-6, arm64]
include:
- platform: darwin
- arch: [386, amd64]
+ arch: 386
+ - platform: darwin
+ arch: amd64
- platform: windows
- arch: [386, amd64]
+ arch: 386
+ - platform: windows
+ arch: amd64
steps:
- uses: actions/checkout@v2
@@ -140,7 +144,15 @@ jobs:
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
- name: Compress Darwin ${{matrix.arch}} Builds
- if: matrix.platform == 'darwin'
+ if: matrix.platform == 'darwin' and matrix.platform == '386'
+ run: |
+ cd build
+ mv statping-darwin-10.6-${{ matrix.arch }} statping
+ chmod +x statping
+ tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
+ rm -rf statping
+ echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+ if: matrix.platform == 'darwin' and matrix.platform == 'amd64'
run: |
cd build
mv statping-darwin-10.12-${{ matrix.arch }} statping
@@ -148,6 +160,14 @@ jobs:
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
rm -rf statping
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+# if: matrix.platform == 'darwin' and matrix.platform == 'arm64'
+# run: |
+# cd build
+# mv statping-darwin-10.15-${{ matrix.arch }} statping
+# chmod +x statping
+# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
+# rm -rf statping
+# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
test:
needs: frontend
From a76ba0c4ed90c968d38fd71327437689ef37b08c Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:33:20 +0100
Subject: [PATCH 16/55] Fixed bad workflow logic.
---
.github/workflows/1_dev.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index 6d8f063e..aaf45c8e 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -133,7 +133,7 @@ jobs:
rm -rf statping
echo "compressed=statping-linux-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
- - name: Compress Windows ${{matrix.arch}} Builds
+ - name: Compress Windows Builds
if: matrix.platform == 'windows'
run: |
cd build
@@ -143,7 +143,7 @@ jobs:
rm -rf statping.exe
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
- - name: Compress Darwin ${{matrix.arch}} Builds
+ - name: Compress Darwin 32bit Builds
if: matrix.platform == 'darwin' and matrix.platform == '386'
run: |
cd build
@@ -152,6 +152,8 @@ jobs:
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
rm -rf statping
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+
+ - name: Compress Darwin 32bit Builds
if: matrix.platform == 'darwin' and matrix.platform == 'amd64'
run: |
cd build
@@ -160,6 +162,8 @@ jobs:
tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
rm -rf statping
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+
+# - name: Compress Darwin arm64 Builds
# if: matrix.platform == 'darwin' and matrix.platform == 'arm64'
# run: |
# cd build
From 6c5c5d1827a459f6b02965cfdb52df9d558a11f4 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:35:40 +0100
Subject: [PATCH 17/55] Fixed bad workflow logic on dev.
---
.github/workflows/1_dev.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index aaf45c8e..3b7ff1e1 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -144,7 +144,7 @@ jobs:
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
- name: Compress Darwin 32bit Builds
- if: matrix.platform == 'darwin' and matrix.platform == '386'
+ if: matrix.platform == 'darwin' && matrix.platform == '386'
run: |
cd build
mv statping-darwin-10.6-${{ matrix.arch }} statping
@@ -154,7 +154,7 @@ jobs:
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
- name: Compress Darwin 32bit Builds
- if: matrix.platform == 'darwin' and matrix.platform == 'amd64'
+ if: matrix.platform == 'darwin' && matrix.platform == 'amd64'
run: |
cd build
mv statping-darwin-10.12-${{ matrix.arch }} statping
@@ -164,7 +164,7 @@ jobs:
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
# - name: Compress Darwin arm64 Builds
-# if: matrix.platform == 'darwin' and matrix.platform == 'arm64'
+# if: matrix.platform == 'darwin' && matrix.platform == 'arm64'
# run: |
# cd build
# mv statping-darwin-10.15-${{ matrix.arch }} statping
From 0e4fc8542f9276fd3492bd3bbec175a723ff320a Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:36:44 +0100
Subject: [PATCH 18/55] Workflow for unstable now uses unstable branch.
---
.github/workflows/2_unstable.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/2_unstable.yml b/.github/workflows/2_unstable.yml
index 71b9cad8..9e730edd 100644
--- a/.github/workflows/2_unstable.yml
+++ b/.github/workflows/2_unstable.yml
@@ -2,7 +2,7 @@ name: 2. Unstable Build, Test and Deploy
on:
push:
branches:
- - dev
+ - unstable
paths-ignore:
- '**.md'
From a2139e91bcdaf0876c5f9dc4d3f1f003a961fd43 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:52:21 +0100
Subject: [PATCH 19/55] Try a fix for snaps.
---
snapcraft.yaml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 0d4ec108..72fcb0be 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -36,4 +36,5 @@ parts:
apt-get update
apt-get install -y curl tar
curl -o- -L https://raw.githubusercontent.com/statping-ng/statping-ng/stable/install.sh | bash
- mv /usr/local/bin/statping ./
+ cp /usr/local/bin/statping statping
+ cp /usr/local/bin/statping /build/statping-ng/prime/./statping
From aa2fcc976b0bd76194c2848a1fdc08ec728b6ad3 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 10:53:08 +0100
Subject: [PATCH 20/55] Updates to statping install script, including a new
quiet for curl.
---
install.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/install.sh b/install.sh
index ad6f7fc3..a7ae50a3 100755
--- a/install.sh
+++ b/install.sh
@@ -24,7 +24,7 @@ statping_get_tarball() {
printf "$cyan> Downloading latest version for $OS $ARCH...\n$url $reset\n"
# Get both the tarball and its GPG signature
tarball_tmp=`mktemp -t statping.tar.gz.XXXXXXXXXX`
- if curl --fail -L -o "$tarball_tmp" "$url"; then
+ if curl --fail -L -s -o "$tarball_tmp" "$url"; then
# All this dance is because `tar --strip=1` does not work everywhere
temp=$(mktemp -d statping.XXXXXXXXXX)
if [ ${OS} == 'windows' ]; then
@@ -32,11 +32,11 @@ statping_get_tarball() {
else
tar xzf $tarball_tmp -C "$temp"
fi
- printf "$green> Installing to $DEST/statping\n"
+ printf "$green> Installing to $DEST/statping-ng\n"
mv "$temp"/statping "$DEST"
rm -rf "$temp"
rm $tarball_tmp*
- printf "$cyan> Statping is now installed! $reset\n"
+ printf "$cyan> Statping-ng is now installed! $reset\n"
printf "$white> Repo: $repo $reset\n"
printf "$white> Wiki: $repo/wiki $reset\n"
printf "$white> Issues: $repo/issues $reset\n"
@@ -66,7 +66,7 @@ statping_brew_install() {
}
statping_install() {
- printf "${white}Installing Statping!$reset\n"
+ printf "${white}Installing Statping-ng!$reset\n"
getOS
getArch
statping_get_tarball $OS $ARCH
From 01619c93c0721b86005b0aa65023242c015ae9e2 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 14:52:02 +0100
Subject: [PATCH 21/55] Darwin 32bit build test
---
.github/workflows/1_dev.yml | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index 3b7ff1e1..764da660 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -144,7 +144,7 @@ jobs:
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
- name: Compress Darwin 32bit Builds
- if: matrix.platform == 'darwin' && matrix.platform == '386'
+ if: matrix.platform == 'darwin' && matrix.arch == '386'
run: |
cd build
mv statping-darwin-10.6-${{ matrix.arch }} statping
@@ -153,8 +153,8 @@ jobs:
rm -rf statping
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
- - name: Compress Darwin 32bit Builds
- if: matrix.platform == 'darwin' && matrix.platform == 'amd64'
+ - name: Compress Darwin 64bit Builds
+ if: matrix.platform == 'darwin' && matrix.arch == 'amd64'
run: |
cd build
mv statping-darwin-10.12-${{ matrix.arch }} statping
@@ -164,7 +164,7 @@ jobs:
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
# - name: Compress Darwin arm64 Builds
-# if: matrix.platform == 'darwin' && matrix.platform == 'arm64'
+# if: matrix.platform == 'darwin' && matrix.arch == 'arm64'
# run: |
# cd build
# mv statping-darwin-10.15-${{ matrix.arch }} statping
@@ -173,6 +173,12 @@ jobs:
# rm -rf statping
# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+ - name: Upload Compiled Statping Binary
+ uses: actions/upload-artifact@v1
+ with:
+ name: statping-${{ matrix.platform }}-${{ matrix.arch }}
+ path: ./build
+
test:
needs: frontend
runs-on: ubuntu-latest
From 694d3b94a1f64acd2071685293c3abbb3b4ccc3e Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 15:04:38 +0100
Subject: [PATCH 22/55] Darwin Build Test
---
.github/workflows/1_dev.yml | 22 +---------------------
1 file changed, 1 insertion(+), 21 deletions(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index 764da660..5386efc4 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -144,17 +144,7 @@ jobs:
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
- name: Compress Darwin 32bit Builds
- if: matrix.platform == 'darwin' && matrix.arch == '386'
- run: |
- cd build
- mv statping-darwin-10.6-${{ matrix.arch }} statping
- chmod +x statping
- tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
- rm -rf statping
- echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
-
- - name: Compress Darwin 64bit Builds
- if: matrix.platform == 'darwin' && matrix.arch == 'amd64'
+ if: matrix.platform == 'darwin'
run: |
cd build
mv statping-darwin-10.12-${{ matrix.arch }} statping
@@ -163,16 +153,6 @@ jobs:
rm -rf statping
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
-# - name: Compress Darwin arm64 Builds
-# if: matrix.platform == 'darwin' && matrix.arch == 'arm64'
-# run: |
-# cd build
-# mv statping-darwin-10.15-${{ matrix.arch }} statping
-# chmod +x statping
-# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
-# rm -rf statping
-# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
-
- name: Upload Compiled Statping Binary
uses: actions/upload-artifact@v1
with:
From 203b84c724598c65bf6f3fca33828add15ff7731 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Wed, 25 Aug 2021 15:21:46 +0100
Subject: [PATCH 23/55] Uplaod whatever darwin binary, this isnt for release
---
.github/workflows/1_dev.yml | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index 5386efc4..cd11ccc9 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -144,7 +144,17 @@ jobs:
echo "compressed=statping-windows-${{ matrix.arch }}.zip" >> $GITHUB_ENV
- name: Compress Darwin 32bit Builds
- if: matrix.platform == 'darwin'
+ if: matrix.platform == 'darwin' && matrix.arch == '386'
+ run: |
+ cd build
+# mv statping-darwin-10.6-${{ matrix.arch }} statping
+# chmod +x statping
+ tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz *
+# rm -rf statping
+ echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+
+ - name: Compress Darwin 64bit Builds
+ if: matrix.platform == 'darwin' && matrix.arch == 'amd64'
run: |
cd build
mv statping-darwin-10.12-${{ matrix.arch }} statping
@@ -153,6 +163,16 @@ jobs:
rm -rf statping
echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+# - name: Compress Darwin arm64 Builds
+# if: matrix.platform == 'darwin' && matrix.arch == 'arm64'
+# run: |
+# cd build
+# mv statping-darwin-10.15-${{ matrix.arch }} statping
+# chmod +x statping
+# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz statping
+# rm -rf statping
+# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+
- name: Upload Compiled Statping Binary
uses: actions/upload-artifact@v1
with:
From 1f11e317817dad4addafb76bc132a503eb7c0b05 Mon Sep 17 00:00:00 2001
From: Adam
Date: Wed, 25 Aug 2021 18:55:23 +0100
Subject: [PATCH 24/55] Update 1_dev.yml
---
.github/workflows/1_dev.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/1_dev.yml b/.github/workflows/1_dev.yml
index cd11ccc9..bd650878 100644
--- a/.github/workflows/1_dev.yml
+++ b/.github/workflows/1_dev.yml
@@ -147,11 +147,12 @@ jobs:
if: matrix.platform == 'darwin' && matrix.arch == '386'
run: |
cd build
+ ls >> $GITHUB_ENV
# mv statping-darwin-10.6-${{ matrix.arch }} statping
# chmod +x statping
- tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz *
+# tar -czvf statping-darwin-${{ matrix.arch }}.tar.gz *
# rm -rf statping
- echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
+# echo "compressed=statping-darwin-${{ matrix.arch }}.tar.gz" >> $GITHUB_ENV
- name: Compress Darwin 64bit Builds
if: matrix.platform == 'darwin' && matrix.arch == 'amd64'
From 25a5aada2ce20acda59e90c16c75273d76af025a Mon Sep 17 00:00:00 2001
From: Nils
Date: Sat, 28 Aug 2021 00:08:20 +0200
Subject: [PATCH 25/55] Dockerfile build local files not remote files
---
Dockerfile | 55 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 48 insertions(+), 7 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index 05c090ed..aa448ba7 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,12 +1,53 @@
-FROM adamboutcher/statping-ng:base AS base
+FROM node:12.18.2-alpine AS frontend
+LABEL maintainer="Statping-ng (https://github.com/statping-ng)"
ARG BUILDPLATFORM
-# Statping main Docker image that contains all required libraries
-FROM alpine:latest
+WORKDIR /statping
+COPY ./frontend/package.json .
+COPY ./frontend/yarn.lock .
+RUN yarn install --pure-lockfile --network-timeout 1000000
+COPY ./frontend .
+RUN yarn build && yarn cache clean
+
+# Statping Golang BACKEND building from source
+# Creates "/go/bin/statping" and "/usr/local/bin/sass" for copying
+FROM golang:1.14-alpine AS backend
+LABEL maintainer="Statping-NG (https://github.com/statping-ng)"
+ARG VERSION
+ARG COMMIT
+ARG BUILDPLATFORM
+ARG TARGETARCH
+RUN apk add --update --no-cache libstdc++ gcc g++ make git autoconf \
+ libtool ca-certificates linux-headers wget curl jq && \
+ update-ca-certificates
+
+WORKDIR /root
+RUN git clone https://github.com/sass/sassc.git
+RUN . sassc/script/bootstrap && make -C sassc -j4
+# sassc binary: /root/sassc/bin/sassc
+
+WORKDIR /go/src/github.com/statping-ng/statping-ng
+ADD go.mod go.sum ./
+RUN go mod download
+ENV GO111MODULE on
+ENV CGO_ENABLED 1
+RUN go get github.com/stretchr/testify/assert && \
+ go get github.com/stretchr/testify/require && \
+ go get github.com/GeertJohan/go.rice/rice && \
+ go get github.com/cortesi/modd/cmd/modd && \
+ go get github.com/crazy-max/xgo
+COPY . .
+COPY --from=frontend /statping/dist/ ./source/dist/
+RUN make clean generate embed
+RUN go build -a -ldflags "-s -w -extldflags -static -X main.VERSION=${VERSION} -X main.COMMIT=${COMMIT}" -o statping --tags "netgo linux" ./cmd
+RUN chmod a+x statping && mv statping /go/bin/statping
+# /go/bin/statping - statping binary
+# /root/sassc/bin/sassc - sass binary
+# /statping - Vue frontend (from frontend)
+
RUN apk --no-cache add libgcc libstdc++ ca-certificates curl jq && update-ca-certificates
-COPY --from=base /go/bin/statping /usr/local/bin/
-COPY --from=base /root/sassc/bin/sassc /usr/local/bin/
-COPY --from=base /usr/local/share/ca-certificates /usr/local/share/
+RUN cp /go/bin/statping /usr/local/bin/
+RUN cp /root/sassc/bin/sassc /usr/local/bin/
WORKDIR /app
VOLUME /app
@@ -20,4 +61,4 @@ EXPOSE $PORT
HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD curl -s "http://localhost:$PORT/health" | jq -r -e ".online==true"
-CMD statping --port $PORT
+CMD statping --port $PORT
\ No newline at end of file
From 6a0250b0ea7fc64d017b8f9338e3b29fd523618f Mon Sep 17 00:00:00 2001
From: Nils
Date: Sat, 28 Aug 2021 00:18:56 +0200
Subject: [PATCH 26/55] reduce size of Image
---
Dockerfile | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index aa448ba7..3f7b4407 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -44,10 +44,12 @@ RUN chmod a+x statping && mv statping /go/bin/statping
# /root/sassc/bin/sassc - sass binary
# /statping - Vue frontend (from frontend)
+FROM alpine:latest
+
RUN apk --no-cache add libgcc libstdc++ ca-certificates curl jq && update-ca-certificates
-RUN cp /go/bin/statping /usr/local/bin/
-RUN cp /root/sassc/bin/sassc /usr/local/bin/
+COPY --from=backend /go/bin/statping /usr/local/bin/
+COPY --from=backend /root/sassc/bin/sassc /usr/local/bin/
WORKDIR /app
VOLUME /app
From e36323c2476ba12e5d9efe444b613f5f261d437b Mon Sep 17 00:00:00 2001
From: Nils
Date: Sat, 28 Aug 2021 00:47:35 +0200
Subject: [PATCH 27/55] remove base-image
---
Makefile | 29 +++--------------------------
1 file changed, 3 insertions(+), 26 deletions(-)
diff --git a/Makefile b/Makefile
index c701900f..e3af0ecc 100644
--- a/Makefile
+++ b/Makefile
@@ -111,13 +111,10 @@ db-down:
console:
docker exec -t -i statping /bin/sh
-compose-build-full: docker-base
+compose-build-full:
docker-compose -f docker-compose.yml -f dev/docker-compose.full.yml build --parallel --build-arg VERSION=${VERSION}
-docker-base:
- docker build -t statping-ng/statping-ng:base -f Dockerfile.base --build-arg VERSION=${VERSION} .
-
-docker-latest: docker-base
+docker-latest:
docker build -t statping-ng/statping-ng:latest --build-arg VERSION=${VERSION} .
docker-vue:
@@ -126,13 +123,6 @@ docker-vue:
docker-test:
docker-compose -f docker-compose.test.yml up --remove-orphans
-push-base: clean compile docker-base
- docker push statping-ng/statping-ng:base
-
-push-vue: clean compile docker-base docker-vue
- docker push statping-ng/statping-ng:base
- docker push statping-ng/statping-ng:vue
-
modd:
modd -f ./dev/modd.conf
@@ -285,16 +275,9 @@ download-key:
wget -O statping.gpg $(SIGN_URL)
gpg --import statping.gpg
-# push the :dev docker tag using curl
-dockerhub-dev:
- docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:dev --no-cache -f Dockerfile.base .
- docker push statping-ng/statping-ng:dev
-
dockerhub:
- docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:base --no-cache -f Dockerfile.base .
docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:latest --no-cache -f Dockerfile .
docker tag statping-ng/statping-ng statping-ng/statping-ng:v${VERSION}
- docker push statping-ng/statping-ng:base
docker push statping-ng/statping-ng:v${VERSION}
docker push statping-ng/statping-ng
@@ -392,12 +375,6 @@ buildx-dev: multiarch
docker buildx build --builder statping-dev --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache,mode=max" --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile -t adamboutcher/statping-ng:dev --build-arg=VERSION=${VERSION} --build-arg=COMMIT=${COMMIT} .
docker buildx rm statping-dev
-buildx-base: multiarch
- docker buildx create --name statping-base --driver-opt image=moby/buildkit:master
- docker buildx inspect --builder statping-base --bootstrap
- docker buildx build --builder statping-base --cache-from "type=local,src=/tmp/.buildx-cache" --cache-to "type=local,dest=/tmp/.buildx-cache,mode=max" --push --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 -f Dockerfile.base -t adamboutcher/statping-ng:base --build-arg=VERSION=${VERSION} --build-arg=COMMIT=${COMMIT} .
- docker buildx rm statping-base
-
multiarch:
mkdir /tmp/.buildx-cache || true
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
@@ -426,5 +403,5 @@ gen_help:
marked -o html/$file.html $file --gfm
done
-.PHONY: all check build certs multiarch install-darwin go-build build-all buildx-base buildx-dev buildx-latest build-alpine test-all test test-api docker frontend up down print_details lite sentry-release snapcraft build-linux build-mac build-win build-all postman
+.PHONY: all check build certs multiarch install-darwin go-build build-all buildx-dev buildx-latest build-alpine test-all test test-api docker frontend up down print_details lite sentry-release snapcraft build-linux build-mac build-win build-all postman
.SILENT: travis_s3_creds
From ccbf9baaf03de4a9213dd9e43c3d68dc8cbf409f Mon Sep 17 00:00:00 2001
From: Nils
Date: Sat, 28 Aug 2021 00:48:22 +0200
Subject: [PATCH 28/55] adjust image names to be statping-ng/statping-ng
---
dev/docker-compose.lite.yml | 2 +-
docker-compose.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dev/docker-compose.lite.yml b/dev/docker-compose.lite.yml
index 78f7dd2d..66b9c85e 100644
--- a/dev/docker-compose.lite.yml
+++ b/dev/docker-compose.lite.yml
@@ -4,7 +4,7 @@ services:
statping_dev:
container_name: statping_dev
- image: statping/statping:dev
+ image: statping-ng/statping-ng:dev
restart: on-failure
volumes:
- ./cmd:/go/src/github.com/statping-ng/statping-ng/cmd/
diff --git a/docker-compose.yml b/docker-compose.yml
index 38533e5a..c5f45948 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,7 +3,7 @@ version: '2.3'
services:
statping:
container_name: statping
- image: aboutcher/statping-ng:dev
+ image: statping-ng/statping-ng:dev
restart: always
volumes:
- statping_data:/app
From e5c7c4541d2099824882e3f86540071b7d1adfec Mon Sep 17 00:00:00 2001
From: nils1323
Date: Sat, 28 Aug 2021 02:00:50 +0200
Subject: [PATCH 29/55] add description for Image with binary
Co-authored-by: Willy
---
Dockerfile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Dockerfile b/Dockerfile
index 3f7b4407..fbe6d76b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -44,6 +44,7 @@ RUN chmod a+x statping && mv statping /go/bin/statping
# /root/sassc/bin/sassc - sass binary
# /statping - Vue frontend (from frontend)
+# Statping main Docker image that contains all required libraries
FROM alpine:latest
RUN apk --no-cache add libgcc libstdc++ ca-certificates curl jq && update-ca-certificates
From 9327dbbf52c2f0692b88319dab9ee46b44e38bd1 Mon Sep 17 00:00:00 2001
From: nils1323
Date: Sat, 28 Aug 2021 02:10:54 +0200
Subject: [PATCH 30/55] Apply suggestions from code review
Co-authored-by: Willy
---
Dockerfile | 3 ++-
docker-compose.yml | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index fbe6d76b..ca503f78 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -51,6 +51,7 @@ RUN apk --no-cache add libgcc libstdc++ ca-certificates curl jq && update-ca-cer
COPY --from=backend /go/bin/statping /usr/local/bin/
COPY --from=backend /root/sassc/bin/sassc /usr/local/bin/
+COPY --from=backend /usr/local/share/ca-certificates /usr/local/share/
WORKDIR /app
VOLUME /app
@@ -64,4 +65,4 @@ EXPOSE $PORT
HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD curl -s "http://localhost:$PORT/health" | jq -r -e ".online==true"
-CMD statping --port $PORT
\ No newline at end of file
+CMD statping --port $PORT
diff --git a/docker-compose.yml b/docker-compose.yml
index c5f45948..38533e5a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,7 +3,7 @@ version: '2.3'
services:
statping:
container_name: statping
- image: statping-ng/statping-ng:dev
+ image: aboutcher/statping-ng:dev
restart: always
volumes:
- statping_data:/app
From ad416c9499b4f6ed64f53927da9cb3762c3eb46b Mon Sep 17 00:00:00 2001
From: nils1323
Date: Sat, 28 Aug 2021 02:13:22 +0200
Subject: [PATCH 31/55] remove docker-vue
---
Makefile | 3 ---
1 file changed, 3 deletions(-)
diff --git a/Makefile b/Makefile
index e3af0ecc..5d484547 100644
--- a/Makefile
+++ b/Makefile
@@ -117,9 +117,6 @@ compose-build-full:
docker-latest:
docker build -t statping-ng/statping-ng:latest --build-arg VERSION=${VERSION} .
-docker-vue:
- docker build -t statping-ng/statping-ng:vue --build-arg VERSION=${VERSION} .
-
docker-test:
docker-compose -f docker-compose.test.yml up --remove-orphans
From a222b0148a00ebe8b69dc30fb0b94e90ad9310ea Mon Sep 17 00:00:00 2001
From: Nils
Date: Sat, 28 Aug 2021 20:42:12 +0200
Subject: [PATCH 32/55] fixed naming for dockerhub
---
Makefile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index 5d484547..04ae8c6f 100644
--- a/Makefile
+++ b/Makefile
@@ -273,10 +273,10 @@ download-key:
gpg --import statping.gpg
dockerhub:
- docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:latest --no-cache -f Dockerfile .
- docker tag statping-ng/statping-ng statping-ng/statping-ng:v${VERSION}
- docker push statping-ng/statping-ng:v${VERSION}
- docker push statping-ng/statping-ng
+ docker build --build-arg VERSION=${VERSION} -t adamboutcher/statping-ng:latest --no-cache -f Dockerfile .
+ docker tag adamboutcher/statping-ng adamboutcher/statping-ng:v${VERSION}
+ docker push adamboutcher/statping-ng:v${VERSION}
+ docker push adamboutcher/statping-ng
docker-build-dev:
docker build --build-arg VERSION=${VERSION} -t statping-ng/statping-ng:latest --no-cache -f Dockerfile .
From 57e594823a7ace7a74540bdbb013a769fa23173a Mon Sep 17 00:00:00 2001
From: Nils
Date: Sat, 28 Aug 2021 20:50:11 +0200
Subject: [PATCH 33/55] fix naming in docker-compose
---
docker-compose.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docker-compose.yml b/docker-compose.yml
index 38533e5a..395b773e 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,7 +3,7 @@ version: '2.3'
services:
statping:
container_name: statping
- image: aboutcher/statping-ng:dev
+ image: adamboutcher/statping-ng:latest
restart: always
volumes:
- statping_data:/app
From 1504265fb15458c0c15192b11abb01634a676bbc Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Fri, 3 Sep 2021 19:22:28 +0100
Subject: [PATCH 34/55] Tweaks to make Snapcrafts Build
---
snapcraft.yaml | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 72fcb0be..781fdd86 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -1,28 +1,31 @@
name: statping-ng
-version-script: cat version.txt
version: "stable"
+version-script: cat version.txt
summary: Statping-ng Server Monitoring with Status Page
-description: >
+description: |
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.
-base: base
+
+base: bare
+build-base: core18
type: app
confinement: strict
grade: stable
-issues: https://github.com/statping-ng/statping-ng/issues
+license: GPL-3.0
architectures:
+ - build-on: i386
- build-on: amd64
- build-on: armhf
- build-on: arm64
- - build-on: i386
apps:
statping:
- command: statping
+ command: bin/statping
+ daemon: simple
plugs:
- home
- network
@@ -33,8 +36,10 @@ parts:
source: .
plugin: nil
override-build: |
- apt-get update
- apt-get install -y curl tar
- curl -o- -L https://raw.githubusercontent.com/statping-ng/statping-ng/stable/install.sh | bash
- cp /usr/local/bin/statping statping
- cp /usr/local/bin/statping /build/statping-ng/prime/./statping
+ curl -o- -L https://raw.githubusercontent.com/adamboutcher/statping-ng/dev/install.sh | bash
+ build-packages:
+ - tar
+ - curl
+ - bash
+ organize:
+ /usr/local/bin/statping: bin/
From 66df2f116afdcde4522ba50bf37c3cc02b2ec569 Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Fri, 3 Sep 2021 19:35:23 +0100
Subject: [PATCH 35/55] Remove snapcraft as a statping service
---
snapcraft.yaml | 1 -
1 file changed, 1 deletion(-)
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 781fdd86..4afea18f 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -25,7 +25,6 @@ architectures:
apps:
statping:
command: bin/statping
- daemon: simple
plugs:
- home
- network
From dedfbaca9d2ccfdfc07fc38ddde79d97204267ad Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Fri, 3 Sep 2021 20:15:15 +0100
Subject: [PATCH 36/55] Snap now a service and works correctly
---
snapcraft.yaml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/snapcraft.yaml b/snapcraft.yaml
index 4afea18f..96ae07fc 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -9,7 +9,7 @@ description: |
This Status Page generator allows you to use MySQL, Postgres, or SQLite
on multiple operating systems.
-base: bare
+base: core18
build-base: core18
type: app
confinement: strict
@@ -25,6 +25,7 @@ architectures:
apps:
statping:
command: bin/statping
+ daemon: simple
plugs:
- home
- network
From 0bd42f3eaeb9484c552e7fab732e5aedaeb4e934 Mon Sep 17 00:00:00 2001
From: Florian Feldmann
Date: Sun, 5 Sep 2021 03:20:17 +0200
Subject: [PATCH 37/55] Update german language
---
frontend/src/languages/german.js | 56 ++++++++++++++++----------------
1 file changed, 28 insertions(+), 28 deletions(-)
diff --git a/frontend/src/languages/german.js b/frontend/src/languages/german.js
index e9f80593..362d37a4 100644
--- a/frontend/src/languages/german.js
+++ b/frontend/src/languages/german.js
@@ -1,8 +1,8 @@
const german = {
settings: "Einstellungen",
- dashboard: "Armaturenbrett",
- services: "Dienstleistungen",
- service: "Service",
+ dashboard: "Dashboard",
+ services: "Dienste",
+ service: "Dienst",
failures: "Ausfälle",
users: "Benutzer",
login: "Login",
@@ -20,43 +20,43 @@ const german = {
close: "Schließen",
secret: "Geheimnis",
regen_api: "API-Schlüssel neu generieren",
- regen_desc: "API Secret wird für Lesen erstellen Update und Löschen Routen verwendet. Sie können API-Schlüssel bei Bedarf neu generieren.",
+ regen_desc: "Der API-Schlüssel wird für das Lesen, Erstellen, Updaten und Löschen von Routen verwendet. Sie können API-Schlüssel bei Bedarf neu generieren.",
visibility: "Sichtbarkeit",
group: "Gruppe",
group_create: "Gruppe erstellen",
group_update: "Gruppe aktualisieren",
- group_public_desc: "Gruppendienste für die Öffentlichkeit anzeigen",
+ group_public_desc: "Gruppendienste öffentlich anzeigen",
groups: "Gruppen",
no_group: "Keine Gruppe",
- public: "Öffentlichkeit",
+ public: "Öffentlich",
private: "Privat",
announcements: "Ankündigungen",
- notifiers: "Notifizierer",
+ notifiers: "Benachrichtigungen",
logs: "Protokolle",
- help: "Helfen",
+ help: "Hilfe",
type: "Typ",
edit: "Bearbeiten",
update: "Update",
- create: "Schaffen",
- view: "Ansicht",
- save: "sparen",
+ create: "Erstellen",
+ view: "Anzeigen",
+ save: "Speichern",
title: "Titel",
status: "Status",
begins: "Beginnt",
- total_services: "Dienstleistungen insgesamt",
+ total_services: "Dienste insgesamt",
online_services: "Online-Dienste",
- request_timeout: "Zeitüberschreitung anfordern",
- service_never_online: "Service war noch nie online",
+ request_timeout: "Zeitüberschreitung bei Anforderung",
+ service_never_online: "Dienst war noch nie online",
service_online_check: "Online geprüft",
service_offline_time: "Dienst war offline für",
- days_ago: "Vor Tagen",
+ days_ago: "Tage vergangen",
today: "Heute",
week: "Woche",
month: "Monat",
day: "Tag",
hour: "Stunde",
minute: "Minute",
- failures_24_hours: "Ausfälle dauern 24 Stunden",
+ failures_24_hours: "Ausfälle letzte 24 Stunden",
no_services: "Sie haben derzeit keine Dienste!",
theme: "Thema",
cache: "Cache",
@@ -66,8 +66,8 @@ const german = {
variables: "Variablen",
docs: "Dokumentation",
links: "Links",
- changelog: "Protokoll ändern",
- repo: "Depot",
+ changelog: "Änderungsprotokoll",
+ repo: "Repo",
language: "Sprache",
db_connection: "Datenbankverbindung",
db_host: "Datenbank-Host",
@@ -77,7 +77,7 @@ const german = {
db_database: "Name der Datenbank",
send_reports: "Fehlerberichte senden",
send_reports_desc: "Fehler zum Debuggen an Statping senden",
- project_name: "Name der Seite „Status“",
+ project_name: "Name der Statusseite",
description: "Beschreibung",
domain: "Domäne",
enable_cdn: "CDN aktivieren",
@@ -95,7 +95,7 @@ const german = {
wrong_login: "Falscher Benutzername oder Passwort",
theme_editor: "Theme-Editor",
enable_assets: "Lokale Assets aktivieren",
- assets_desc: "Passen Sie das Design Ihrer Statusseite an, indem Sie lokale Elemente aktivieren. Dadurch wird ein Verzeichnis „Assets“ erstellt, das alle CSS enthält.",
+ assets_desc: "Passen Sie das Design Ihrer Statusseite an, indem Sie lokale Assets aktivieren. Dadurch wird ein Verzeichnis „Assets“ erstellt, das das gesamte CSS enthält.",
assets_btn: "Lokale Assets aktivieren",
assets_loading: "Erstellen von Assets",
assets_dir: "Assets Verzeichnis",
@@ -106,7 +106,7 @@ const german = {
notify_users: "Benutzer benachrichtigen",
notify_desc: "Benutzer vor geplanter Zeit benachrichtigen",
notify_method: "Benachrichtigungsmethode",
- notify_before: "Vor benachrichtigen",
+ notify_before: "Benachrichtigen vor",
message_create: "Ankündigung erstellen",
message_edit: "Ankündigung bearbeiten",
minutes: "Protokoll",
@@ -117,15 +117,15 @@ const german = {
administrator: "Administrator",
checkins: "Checkins",
incidents: "Vorfälle",
- service_info: "Service-Info",
+ service_info: "Dienstinfo",
service_name: "Dienstname",
- service_type: "Service-Art",
+ service_type: "Dienstart",
permalink: "Permalink-URL",
service_public: "Öffentlicher Dienst",
check_interval: "Intervall prüfen",
- service_endpoint: "Service-Endpunkt",
- service_check: "Service-Prüfungstyp",
- service_timeout: "Zeitüberschreitung anfordern",
+ service_endpoint: "Dienst-Endpunkt",
+ service_check: "Dienst-Prüfungstyp",
+ service_timeout: "Dienst Zeitüberschreitung",
expected_resp: "Erwartete Antwort",
expected_code: "Erwarteter Statuscode",
follow_redir: "Weiterleitungen folgen",
@@ -134,9 +134,9 @@ const german = {
notification_opts: "Benachrichtigungsoptionen",
notifications_enable: "Benachrichtigungen aktivieren",
notify_after: "Benachrichtigung nach Fehlern",
- notify_all: "Alle Änderungen benachrichtigen",
+ notify_all: "Benachrichtigung nach allen Änderungen",
service_update: "Dienst aktualisieren",
service_create: "Dienst erstellen"
}
-export default german
\ No newline at end of file
+export default german
From c250ad73a38cb5bdf247e723125a02a8c66c8de5 Mon Sep 17 00:00:00 2001
From: Fjuro
Date: Sun, 5 Sep 2021 18:08:45 +0200
Subject: [PATCH 38/55] Add Czech language
---
frontend/src/languages/czech.js | 142 ++++++++++++++++++++++++++++++++
1 file changed, 142 insertions(+)
create mode 100644 frontend/src/languages/czech.js
diff --git a/frontend/src/languages/czech.js b/frontend/src/languages/czech.js
new file mode 100644
index 00000000..c29276d2
--- /dev/null
+++ b/frontend/src/languages/czech.js
@@ -0,0 +1,142 @@
+const czech = {
+ settings: "Nastavení",
+ dashboard: "Nástěnka",
+ services: "Služby",
+ service: "Služba",
+ failures: "Selhání",
+ users: "Uživatelé",
+ login: "Přihlásit se",
+ logout: "Odhlásit se",
+ online: "Online",
+ offline: "Offline",
+ configs: "Konfigurace",
+ username: "Uživatelské jméno",
+ password: "Heslo",
+ email: "E-mail",
+ confirm_password: "Potvrzení hesla",
+ uptime: "Doba provozu",
+ name: "Název",
+ copy: "Zkopírovat",
+ close: "Zavřít",
+ secret: "Tajný klíč",
+ regen_api: "Znovu vygenerovat API klíče",
+ regen_desc: "Tajný API klíč se používá ke trasám read, create, update a delete. Pokud potřebujete, můžete znovu vygenerovat vaše API klíče.",
+ visibility: "Viditelnost",
+ group: "Skupina",
+ group_create: "Vytvořit skupinu",
+ group_update: "Aktualizovat skupinu",
+ group_public_desc: "Zobrazit skupiny veřejně",
+ groups: "Skupiny",
+ no_group: "Žádná skupina",
+ public: "Veřejné",
+ private: "Soukromé",
+ announcements: "Oznámení",
+ notifiers: "Oznamovače",
+ logs: "Protokol",
+ help: "Podpora",
+ type: "Typ",
+ edit: "Upravit",
+ update: "Aktualizovat",
+ create: "Vytvořot",
+ view: "Zobrazit",
+ save: "Uložit",
+ title: "Název",
+ status: "Stav",
+ begins: "Začíná",
+ total_services: "Celkový počet služeb",
+ online_services: "Online služby",
+ request_timeout: "Časový limit požadavku vypršel",
+ service_never_online: "Služba nikdy nebyla online",
+ service_online_check: "Online zkontrolováno",
+ service_offline_time: "Služba je offline",
+ days_ago: "dny",
+ today: "Dnes",
+ week: "Týden",
+ month: "Měsíc",
+ day: "Den",
+ hour: "Hodina",
+ minute: "Minuta",
+ failures_24_hours: "Selhání v posledních 24 hodinách",
+ no_services: "Momentálně nemáte žádné služby!",
+ theme: "Téma",
+ cache: "Cache",
+ authentication: "Autentifikace",
+ import: "Importovat",
+ main_settings: "Obecná nastavení",
+ variables: "Proměnné",
+ docs: "Dokumentace",
+ links: "Odkazy",
+ changelog: "Seznam změn",
+ repo: "Repozitář",
+ language: "Jazyk",
+ db_connection: "Spojení s databází",
+ db_host: "Host databáze",
+ db_port: "Database Port",
+ db_username: "Uživatelské jméno databáze",
+ db_password: "Heslo databáze",
+ db_database: "Název databáze",
+ send_reports: "Posílat hlášení o chybách",
+ send_reports_desc: "Posílat hlášení o chybách Statpingu pro ladění",
+ project_name: "Název stavové stránky",
+ description: "Popis",
+ domain: "Doména",
+ enable_cdn: "Povolit CDN",
+ newsletter: "Newsletter",
+ newsletter_note: "Budeme vám posílat e-maily pouze s velkými změnami",
+ loading: "Načítání",
+ save_settings: "Uložit nastavení",
+ average_response: "Průměrná odpověď",
+ last_uptime: "Poslední doba provozu",
+ sign_in: "Přihlásit se",
+ last_login: "Poslední přihlášení",
+ admin: "Správce",
+ user: "Uživatel",
+ failed: "Selhání",
+ wrong_login: "Nesprávné uživatelské jméno nebo heslo",
+ theme_editor: "Editor témat",
+ enable_assets: "Povolit lokální assety",
+ assets_desc: "Přizpůsobte si vaši stavovou stránku povolením lokálních assetů. Vytvoříme adresář s názvem 'assets' obsahující všechno CSS.",
+ assets_btn: "Povolit lokální assety",
+ assets_loading: "Vytváření assetů",
+ assets_dir: "Adresář assetů",
+ footer: "Zápatí",
+ footer_notes: "V zápatí můžete používat HTML značky",
+ global_announcement: "Globální oznámení",
+ announcement_date: "Rozsah data oznámení",
+ notify_users: "Oznámit uživatelům",
+ notify_desc: "Oznámit uživatelům před naplánovanou dobou",
+ notify_method: "Metoda oznámení",
+ notify_before: "Oznámit před",
+ message_create: "Vytvořit oznámení",
+ message_edit: "Upravit oznámení",
+ minutes: "Minut",
+ hours: "Hodin",
+ days: "Dnů",
+ user_create: "Vytvořit uživatele",
+ user_update: "Aktualizovat uživatele",
+ administrator: "Správce",
+ checkins: "Kontroly",
+ incidents: "Incidenty",
+ service_info: "Informace o službě",
+ service_name: "Název služby",
+ service_type: "Typ služby",
+ permalink: "Pevná URL",
+ service_public: "Veřejná služba",
+ check_interval: "Interval kontroly",
+ service_endpoint: "Koncový bod služby",
+ service_check: "Typ kontroly služby",
+ service_timeout: "Vypršení času",
+ expected_resp: "Očekávaná odpověď",
+ expected_code: "Očekávaný stavový kód",
+ follow_redir: "Následovaná přesměrování",
+ verify_ssl: "Ověřit SSL",
+ tls_cert: "Použít TLS certifikát",
+ notification_opts: "Možnosti oznámení",
+ notifications_enable: "Povolit oznámení",
+ notify_after: "Oznámit po selháních",
+ notify_all: "Oznamovat vše",
+ service_update: "Aktualizovat službu",
+ service_create: "Vytvořit službu"
+}
+
+export default czech
From eb5589eeaf22e1e6d6adee6497ff9356eb0871af Mon Sep 17 00:00:00 2001
From: Nils
Date: Sun, 5 Sep 2021 20:09:30 +0200
Subject: [PATCH 39/55] allow numeric input when using telegram
---
frontend/src/forms/Notifier.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/src/forms/Notifier.vue b/frontend/src/forms/Notifier.vue
index ebbf0ff3..4eb7538d 100644
--- a/frontend/src/forms/Notifier.vue
+++ b/frontend/src/forms/Notifier.vue
@@ -282,7 +282,7 @@ export default {
this.notifier.form.forEach((f) => {
let field = f.field.toLowerCase()
let val = this.notifier[field]
- if (this.isNumeric(val)) {
+ if (this.isNumeric(val) && (this.form.method!='telegram' && field != 'var1')) {
val = parseInt(val)
}
this.form[field] = val
@@ -304,7 +304,7 @@ export default {
this.notifier.form.forEach((f) => {
let field = f.field.toLowerCase()
let val = this.notifier[field]
- if (this.isNumeric(val)) {
+ if (this.isNumeric(val) && (this.form.method!='telegram' && field != 'var1')) {
val = parseInt(val)
}
this.form[field] = val
From 5a0639a14ea2c9be062a25280fa2a0588db0830d Mon Sep 17 00:00:00 2001
From: Nils
Date: Sun, 5 Sep 2021 20:36:15 +0200
Subject: [PATCH 40/55] adjust info text
---
notifiers/telegram.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/notifiers/telegram.go b/notifiers/telegram.go
index e5c87676..ee2558dc 100644
--- a/notifiers/telegram.go
+++ b/notifiers/telegram.go
@@ -52,8 +52,8 @@ var Telegram = &telegram{¬ifications.Notification{
}, {
Type: "text",
Title: "Channel",
- Placeholder: "@statping_channel",
- SmallText: "Insert your Telegram Channel including the @ symbol. The bot will need to be an administrator of this channel.",
+ Placeholder: "@statping_channel/-123123512312",
+ SmallText: "Insert your Telegram Channel including the @ symbol. The bot will need to be an administrator of this channel. You can also supply a chat_id.",
DbField: "var1",
Required: true,
}}},
From e764f639d0b015c9e059e18d915f2a4f43161288 Mon Sep 17 00:00:00 2001
From: nils1323
Date: Mon, 6 Sep 2021 17:37:43 +0200
Subject: [PATCH 41/55] Fix logic
check if it is var1 is not necessary because telegram only needs strings and no numbers
---
frontend/src/forms/Notifier.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/src/forms/Notifier.vue b/frontend/src/forms/Notifier.vue
index 4eb7538d..1e5c8ef5 100644
--- a/frontend/src/forms/Notifier.vue
+++ b/frontend/src/forms/Notifier.vue
@@ -282,7 +282,7 @@ export default {
this.notifier.form.forEach((f) => {
let field = f.field.toLowerCase()
let val = this.notifier[field]
- if (this.isNumeric(val) && (this.form.method!='telegram' && field != 'var1')) {
+ if (this.isNumeric(val) && this.form.method!='telegram') {
val = parseInt(val)
}
this.form[field] = val
@@ -304,7 +304,7 @@ export default {
this.notifier.form.forEach((f) => {
let field = f.field.toLowerCase()
let val = this.notifier[field]
- if (this.isNumeric(val) && (this.form.method!='telegram' && field != 'var1')) {
+ if (this.isNumeric(val) && this.form.method!='telegram') {
val = parseInt(val)
}
this.form[field] = val
From 819c0bf3752c94db36d2b310e5620dd447db066f Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Sat, 11 Sep 2021 21:04:10 +0100
Subject: [PATCH 42/55] Moved reliance on assets.statping.com to our github
site.
---
frontend/public/base.gohtml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/frontend/public/base.gohtml b/frontend/public/base.gohtml
index 696d733f..3cae161e 100644
--- a/frontend/public/base.gohtml
+++ b/frontend/public/base.gohtml
@@ -25,7 +25,7 @@
{{if USE_CDN}}
-
+
{{else}}
<% _.each(htmlWebpackPlugin.tags.headTags, function(headTag) { %>
<%= headTag %> <% }) %>
@@ -39,10 +39,10 @@
{{if USE_CDN}}
-
-
-
-
+
+
+
+
{{else}}
<% _.each(htmlWebpackPlugin.tags.bodyTags, function(bodyTag) { %>
<%= bodyTag %> <% }) %>
From 6aa229c0aafe61798fd611166fada641dc009a1f Mon Sep 17 00:00:00 2001
From: Adam Boutcher
Date: Sat, 11 Sep 2021 21:04:33 +0100
Subject: [PATCH 43/55] Branding changes
---
frontend/src/components/Dashboard/TopNav.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/components/Dashboard/TopNav.vue b/frontend/src/components/Dashboard/TopNav.vue
index 8136fff8..c8692de6 100644
--- a/frontend/src/components/Dashboard/TopNav.vue
+++ b/frontend/src/components/Dashboard/TopNav.vue
@@ -1,6 +1,6 @@