From bd115a04bfc999750a511abf3ff554e0b820ddd8 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Fri, 10 Jul 2026 19:27:25 +0200 Subject: [PATCH 01/18] feat: Add privileged ping --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 726b838..9901609 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release env: - PKG_VERSION: "2026.07.09-1" + PKG_VERSION: "2026.07.10-1" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" GATUS_REF: "fork" From 7d95385b2583884dc9157a9439e7fca970157d91 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sat, 11 Jul 2026 10:04:12 +0200 Subject: [PATCH 02/18] feat: Enable /run/gatus.socket socket instead of default port --- .github/workflows/release.yml | 4 ++-- debian/gatus/DEBIAN/postinst | 5 ++++- debian/gatus/DEBIAN/postremove | 1 + debian/gatus/etc/gatus/gatus.yaml | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) create mode 100755 debian/gatus/DEBIAN/postremove diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9901609..bd591c0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,10 @@ name: Release env: - PKG_VERSION: "2026.07.10-1" + PKG_VERSION: "2026.07.11-1" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" - GATUS_REF: "fork" + GATUS_REF: "57f48b67f7386cd02b2269d51dc0606a4bc681ae" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is # activated if the CI run was triggered by events other than pushed tags, or diff --git a/debian/gatus/DEBIAN/postinst b/debian/gatus/DEBIAN/postinst index 353a5f3..9a2c153 100755 --- a/debian/gatus/DEBIAN/postinst +++ b/debian/gatus/DEBIAN/postinst @@ -1,3 +1,6 @@ adduser --group --system gatus mkdir -p /var/lib/gatus -chown -R gatus: /var/lib/gatus \ No newline at end of file +chown -R gatus: /var/lib/gatus +mkdir -p /var/run/gatus +chown -R gatus: /var/run/gatus +systemctl daemon-reload \ No newline at end of file diff --git a/debian/gatus/DEBIAN/postremove b/debian/gatus/DEBIAN/postremove new file mode 100755 index 0000000..9b76642 --- /dev/null +++ b/debian/gatus/DEBIAN/postremove @@ -0,0 +1 @@ +systemctl daemon-reload diff --git a/debian/gatus/etc/gatus/gatus.yaml b/debian/gatus/etc/gatus/gatus.yaml index ff21b29..893de25 100644 --- a/debian/gatus/etc/gatus/gatus.yaml +++ b/debian/gatus/etc/gatus/gatus.yaml @@ -1,6 +1,6 @@ use-privileged-ping: true web: - port: 8081 + socket: /var/run/gatus/gatus.sock storage: type: "sqlite" path: "/var/lib/gatus/gatus.sqlite" From 69562267617be08410a177856699ef9b44488ece Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sat, 11 Jul 2026 15:41:26 +0200 Subject: [PATCH 03/18] feat: Add update.sh to pick latest commit --- update.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100755 update.sh diff --git a/update.sh b/update.sh new file mode 100755 index 0000000..1211936 --- /dev/null +++ b/update.sh @@ -0,0 +1,12 @@ +#! /usr/bin/env bash + +set -euo pipefail + +GATUS_REPO="selfhoster1312/gatus" +GATUS_BRANCH="fork" + +GATUS_REF="$(git ls-remote -b https://github.com/$GATUS_REPO refs/heads/$GATUS_BRANCH | cut -f1)" +echo "Updating to latest commit on $GATUS_REPO branch $GATUS_BRANCH: $GATUS_REF" + +sed -i "s,GATUS_REPO: ".*",GATUS_REPO: \"$GATUS_REPO\"," .github/workflows/release.yml +sed -i "s,GATUS_REF: ".*",GATUS_REF: \"$GATUS_REF\"," .github/workflows/release.yml \ No newline at end of file From 727b1a604ca57f4e209b27f375c114b12a9ebb22 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Mon, 13 Jul 2026 19:01:00 +0200 Subject: [PATCH 04/18] feat: Allow remote-only configs --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bd591c0..8a5d6a5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,7 @@ env: PKG_VERSION: "2026.07.11-1" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" - GATUS_REF: "57f48b67f7386cd02b2269d51dc0606a4bc681ae" + GATUS_REF: "acdc9c2c1fe4a6631dd1745dad0c7cd2c2f777b8" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is # activated if the CI run was triggered by events other than pushed tags, or From 6d224e81f14a24cb3c292b99cffe433bb409d7b2 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Mon, 13 Jul 2026 19:01:26 +0200 Subject: [PATCH 05/18] feat: Add release.sh --- release.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 release.sh diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..f57c2ff --- /dev/null +++ b/release.sh @@ -0,0 +1,25 @@ +#! /usr/bin/env bash + +set -euo pipefail + +if ! test -z "$(git status --porcelain)"; then + echo "Please commit everything first" + exit 1 +fi + +# If we add -1 it's not recognized by the workflow as a release +date="$(date +'%Y.%m.%d')" +sed -i "s/PKG_VERSION: \".*\"/PKG_VERSION: \"$date\"/" .github/workflows/release.yml +git add .github/workflows/release.yml + +releaseMsg="release: $date" +prevMsg="$(git log -1 --pretty=%B)" +if [[ "$prevMsg" = "$releaseMsg" ]]; then + git commit --amend -m "$releaseMsg" +else + git commit -m "$releaseMsg" --allow-empty +fi + +git push --force +git tag "$date" --force +git push --tags --force From aeeee0612e7dc1f9fa2d3ee380eebb73c9f83911 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Mon, 13 Jul 2026 19:01:34 +0200 Subject: [PATCH 06/18] release: 2026.07.13 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8a5d6a5..6c48606 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release env: - PKG_VERSION: "2026.07.11-1" + PKG_VERSION: "2026.07.13" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" GATUS_REF: "acdc9c2c1fe4a6631dd1745dad0c7cd2c2f777b8" From 4093328ac712eb739a110fc5aeb259cbe4e8b4f1 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Mon, 13 Jul 2026 20:08:02 +0200 Subject: [PATCH 07/18] fix: Prevent remote-remote endpoints --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c48606..32a9d1f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,7 @@ env: PKG_VERSION: "2026.07.13" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" - GATUS_REF: "acdc9c2c1fe4a6631dd1745dad0c7cd2c2f777b8" + GATUS_REF: "db022588a9923611c3b292ce1ba437753bd3bfe8" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is # activated if the CI run was triggered by events other than pushed tags, or From 8c6bd4f008730bffd86384dd420bd1197ddd534a Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sat, 18 Jul 2026 14:38:05 +0200 Subject: [PATCH 09/18] fix: Forgot one line in rebase --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 32a9d1f..f2acbda 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,7 @@ env: PKG_VERSION: "2026.07.13" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" - GATUS_REF: "db022588a9923611c3b292ce1ba437753bd3bfe8" + GATUS_REF: "36ac5ff8e85c71687f0e1a85879807fd31ffa6be" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is # activated if the CI run was triggered by events other than pushed tags, or From 2af60697985c3b581d2ce3b6d2f43dc5156fa145 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sat, 18 Jul 2026 14:38:26 +0200 Subject: [PATCH 10/18] release: 2026.07.18 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f2acbda..b67241b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release env: - PKG_VERSION: "2026.07.13" + PKG_VERSION: "2026.07.18" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" GATUS_REF: "36ac5ff8e85c71687f0e1a85879807fd31ffa6be" From d358c0ad7e88010d7dc61b6e05b84087ebc537d9 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Sat, 18 Jul 2026 18:43:20 +0200 Subject: [PATCH 11/18] fix: Proxy badge/uptime requests --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b67241b..1e28a39 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,7 @@ env: PKG_VERSION: "2026.07.18" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" - GATUS_REF: "36ac5ff8e85c71687f0e1a85879807fd31ffa6be" + GATUS_REF: "5c2d40f45e459076c340e3fd9f307ebd19385ad1" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is # activated if the CI run was triggered by events other than pushed tags, or From fee593840ef25c4bbddf6e61a86a182178b60ead Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Mon, 27 Jul 2026 15:11:43 +0200 Subject: [PATCH 13/18] fix: /run/gatus is created by systemd service on every boot --- debian/gatus/DEBIAN/postinst | 2 -- debian/gatus/etc/gatus/gatus.yaml | 2 +- debian/gatus/etc/systemd/system/gatus.service | 2 ++ 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/gatus/DEBIAN/postinst b/debian/gatus/DEBIAN/postinst index 9a2c153..9bf4572 100755 --- a/debian/gatus/DEBIAN/postinst +++ b/debian/gatus/DEBIAN/postinst @@ -1,6 +1,4 @@ adduser --group --system gatus mkdir -p /var/lib/gatus chown -R gatus: /var/lib/gatus -mkdir -p /var/run/gatus -chown -R gatus: /var/run/gatus systemctl daemon-reload \ No newline at end of file diff --git a/debian/gatus/etc/gatus/gatus.yaml b/debian/gatus/etc/gatus/gatus.yaml index 893de25..6be2043 100644 --- a/debian/gatus/etc/gatus/gatus.yaml +++ b/debian/gatus/etc/gatus/gatus.yaml @@ -1,6 +1,6 @@ use-privileged-ping: true web: - socket: /var/run/gatus/gatus.sock + socket: /run/gatus/gatus.sock storage: type: "sqlite" path: "/var/lib/gatus/gatus.sqlite" diff --git a/debian/gatus/etc/systemd/system/gatus.service b/debian/gatus/etc/systemd/system/gatus.service index 23f0a8b..a0d2255 100644 --- a/debian/gatus/etc/systemd/system/gatus.service +++ b/debian/gatus/etc/systemd/system/gatus.service @@ -8,6 +8,8 @@ Requires=network-online.target Type=exec User=gatus Group=gatus +RuntimeDirectory="gatus" +RuntimeDirectoryMode=0770 Environment=GATUS_CONFIG_PATH=/etc/gatus/gatus.yaml ExecStart=/usr/local/bin/gatus TimeoutStopSec=5s From 013735150d63186d6e53abf8ddae90e361f0f0c2 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Mon, 27 Jul 2026 15:12:06 +0200 Subject: [PATCH 14/18] release: 2026.07.27 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e28a39..3c1116c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release env: - PKG_VERSION: "2026.07.18" + PKG_VERSION: "2026.07.27" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" GATUS_REF: "5c2d40f45e459076c340e3fd9f307ebd19385ad1" From 97bd46d665163ea3a62d6949300c6b7f779bc0ef Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Tue, 28 Jul 2026 18:40:40 +0200 Subject: [PATCH 15/18] meta: Pull latest changes --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3c1116c..748ee1c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,7 @@ env: PKG_VERSION: "2026.07.27" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" - GATUS_REF: "5c2d40f45e459076c340e3fd9f307ebd19385ad1" + GATUS_REF: "d65a3321f1291aa419870a04896aa65fc4c78cf4" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is # activated if the CI run was triggered by events other than pushed tags, or From c5951866d4639ac649e5243d3cf781480f97d436 Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Tue, 28 Jul 2026 18:40:53 +0200 Subject: [PATCH 16/18] release: 2026.07.28 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 748ee1c..761aa04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,7 +1,7 @@ name: Release env: - PKG_VERSION: "2026.07.27" + PKG_VERSION: "2026.07.28" # TODO: actions/checkout only supports GITHUB repos... GATUS_REPO: "selfhoster1312/gatus" GATUS_REF: "d65a3321f1291aa419870a04896aa65fc4c78cf4" From 7e82dedfaf4a7d2a268cdf255f0297d4e5417b9c Mon Sep 17 00:00:00 2001 From: selfhoster1312 Date: Tue, 18 Aug 2026 18:23:47 +0200 Subject: [PATCH 18/18] wip: move to forgejo actions --- .github/workflows/release.yml | 53 ++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 761aa04..a312906 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Release env: PKG_VERSION: "2026.07.28" # TODO: actions/checkout only supports GITHUB repos... - GATUS_REPO: "selfhoster1312/gatus" + GATUS_REPO: "https://github.com/selfhoster1312/gatus" GATUS_REF: "d65a3321f1291aa419870a04896aa65fc4c78cf4" # Preview mode: Publishes the build output as a CI artifact instead of creating # a release, allowing for manual inspection of the output. This mode is @@ -24,7 +24,6 @@ on: - '.github/workflows/release.yml' concurrency: - group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: false permissions: @@ -33,17 +32,18 @@ permissions: jobs: build: name: Build gatus with pre-packaged web assets - runs-on: ubuntu-22.04 + runs-on: docker steps: - - name: Checkout sources - uses: actions/checkout@v7 - with: - repository: "${{ env.GATUS_REPO }}" - ref: "${{ env.GATUS_REF }}" + - name: Copy source repo + run: | + git clone "${{ env.GATUS_REPO }}" . + git checkout "${{ env.GATUS_REF }}" - name: Checkout sources for packaging - uses: actions/checkout@v7 - with: - path: "__CI_PREBUILD__" + run: | + git clone "${{ forgejo.server_url }}/${{ forgejo.repository }}" __CI_PREBUILD__ + cd __CI_PREBUILD__ + git checkout "${{ forgejo.sha }}" + cd .. - uses: actions/setup-go@v6 with: go-version: 1.26.3 @@ -56,7 +56,7 @@ jobs: go build -o dist/gatus-amd64 cp dist/gatus-amd64 __CI_PREBUILD__/debian/gatus/usr/local/bin/gatus - name: Build deb for amd64 - uses: jiro4989/build-deb-action@86e86ceb88b13157fa569663d43c89346505fc3e + uses: https://github.com/jiro4989/build-deb-action@86e86ceb88b13157fa569663d43c89346505fc3e with: package: gatus package_root: __CI_PREBUILD__/debian/gatus @@ -70,7 +70,7 @@ jobs: GOARCH="arm64" go build -o dist/gatus-arm64 cp dist/gatus-arm64 __CI_PREBUILD__/debian/gatus/usr/local/bin/gatus - name: Build deb for arm64 - uses: jiro4989/build-deb-action@86e86ceb88b13157fa569663d43c89346505fc3e + uses: https://github.com/jiro4989/build-deb-action@86e86ceb88b13157fa569663d43c89346505fc3e with: package: gatus package_root: __CI_PREBUILD__/debian/gatus @@ -78,9 +78,16 @@ jobs: version: ${{ env.PKG_VERSION }} arch: arm64 id: build-deb-arm64 - + + - name: Compute deb filename + run: | + cat <>$GITHUB_ENV + ARM64_DEB_FILENAME=$(basename ${{ steps.build-deb-arm64.outputs.file_name }}) + AMD64_DEB_FILENAME=$(basename ${{ steps.build-deb-amd64.outputs.file_name }}) + EOF + - name: Upload binaries to release - uses: svenstaro/upload-release-action@29e53e917877a24fad85510ded594ab3c9ca12de # 2.11.5 + uses: actions/forgejo-release@v2.13.4 if: env.preview == 'false' with: repo_token: ${{ secrets.GITHUB_TOKEN }} @@ -89,7 +96,7 @@ jobs: tag: ${{ github.ref_name }} overwrite: true - name: Upload amd64 deb to release - uses: svenstaro/upload-release-action@29e53e917877a24fad85510ded594ab3c9ca12de # 2.11.5 + uses: actions/forgejo-release@v2.13.4 if: env.preview == 'false' with: repo_token: ${{ secrets.GITHUB_TOKEN }} @@ -97,38 +104,40 @@ jobs: tag: ${{ github.ref_name }} overwrite: true - name: Upload arm64 deb to release - uses: svenstaro/upload-release-action@29e53e917877a24fad85510ded594ab3c9ca12de # 2.11.5 + uses: actions/forgejo-release@v2.13.4 if: env.preview == 'false' with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ steps.build-deb-arm64.outputs.file_name }} + path: ${{ steps.build-deb-arm64.outputs.file_name }} tag: ${{ github.ref_name }} overwrite: true - name: Upload gatus-amd64 as artifact - uses: actions/upload-artifact@v7 + uses: https://code.forgejo.org/forgejo/upload-artifact@v3 if: env.preview == 'true' with: name: gatus-amd64 path: dist/gatus-amd64 archive: false - name: Upload gatus-amd64 deb as artifact - uses: actions/upload-artifact@v7 + uses: https://code.forgejo.org/forgejo/upload-artifact@v3 if: env.preview == 'true' with: + name: ${{ env.AMD64_DEB_FILENAME }} path: ${{ steps.build-deb-amd64.outputs.file_name }} archive: false - name: Upload gatus-arm64 as artifact - uses: actions/upload-artifact@v7 + uses: https://code.forgejo.org/forgejo/upload-artifact@v3 if: env.preview == 'true' with: name: gatus-arm64 path: dist/gatus-arm64 archive: false - name: Upload gatus-arm64 deb as artifact - uses: actions/upload-artifact@v7 + uses: https://code.forgejo.org/forgejo/upload-artifact@v3 if: env.preview == 'true' with: + name: ${{ env.ARM64_DEB_FILENAME }} path: ${{ steps.build-deb-arm64.outputs.file_name }} archive: false