diff --git a/README.md b/README.md index 3ca7ea0..6a172ac 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,10 @@ I use 3 Paths strategies, they are all considered private: 1. CONFIG_PATH usually ./config is stored in git (text files) 1. LOG_PATH, usually ./logs is not stored in git or backed up. +#### Prefered Containers + +- UptimeKuma - I prefer Gatus over UptimeKuma and have remove UptimeKuma. + ## Similar Projects * [Awesome Compose](https://github.com/docker/awesome-compose/) - A starting point for integrating different services using a Compose file. diff --git a/gatus/README.md b/gatus/README.md new file mode 100644 index 0000000..1ca2014 --- /dev/null +++ b/gatus/README.md @@ -0,0 +1,46 @@ +# Gatus + +## Overview + +Track uptime. + +## Project Details + +- **Project Repository:** [Link](https://github.com/TwiN/gatus) +- **Container Image:** [Docker Hub](https://hub.docker.com/r/twinproduction/gatus) +- **Documentation:** [Docs](https://gatus.io/) +- **Reverse Proxy Port:** `8080` + +## Volume Notes + +There are two mounts +CONFIG_FILE - Where the yaml config file lives. Likely stored to a repo somewhere. +VOL_DATA - Which is the persistant data. + +Note the db must be set in the config file for persistant to happen. + +There is an example config.yaml file in this repo. + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: Gatus +Compose file path: gatus/compose.yaml +Additional env file (optional): gatus/sample.env + +Then "Load" gatus/sample.env into the Environmental variables in dockhand, then modify. + +Create the Stack + +## Docker Run + +This one would be pretty easy to run on its own: + +``` +docker run -d \ + -e TZ=America/Vancouver \ + -p 8080:8080 \ + -v /data/config.yml:/config/config.yaml \ + -v /data/gatus:/config/data \ + twinproduction/gatus:latest +``` \ No newline at end of file diff --git a/gatus/compose.yaml b/gatus/compose.yaml new file mode 100644 index 0000000..0287a6f --- /dev/null +++ b/gatus/compose.yaml @@ -0,0 +1,16 @@ +# Gatus +services: + gatus: + image: ${GATUS_IMAGE:-twinproduction/gatus:latest} + restart: ${GATUS_RESTART:-unless-stopped} + volumes: + - ${CONFIG_PATH:-/data/config.yml}:/config/config.yaml + - ${VOL_PATH:-/data}/gatus:/config/data + environment: + - TZ=${TZ:-America/Vancouver} + ports: + - ${GATUS_PORT:-8080}:8080 + +networks: + proxy: + external: true \ No newline at end of file diff --git a/gatus/config.yaml b/gatus/config.yaml new file mode 100644 index 0000000..503a3fe --- /dev/null +++ b/gatus/config.yaml @@ -0,0 +1,47 @@ +web: + port: 8080 + +storage: + type: sqlite + path: /config/data/data.db + +ui: + title: "Status" + description: "Service monitoring dashboard" + +alerting: + ntfy: + url: "https://ntfy.example.com/" + topic: "Downtime" + token: "replace_with_token" + priority: 3 + default-alert: + # send alert after first failure + failure-threshold: 1 + # send when service recovers + send-on-resolved: true + # group-specific overrides + overrides: [] + +endpoints: + + # 🔧 Gitea (your main service) + - name: "Gitea" + url: "https://git.example.com" + interval: 60s + conditions: + - "[STATUS] == 200" + + # 🌐 External example + - name: "4lights" + url: "https://www.4lt.ca" + interval: 60s + conditions: + - "[STATUS] == 200" + + # 🐳 Internal Docker service (example) + - name: "Gitea (internal)" + url: "http://gitea:3000" + interval: 60s + conditions: + - "[STATUS] == 200" diff --git a/gatus/sample.env b/gatus/sample.env new file mode 100644 index 0000000..29f775f --- /dev/null +++ b/gatus/sample.env @@ -0,0 +1,10 @@ +# Gatus + +TZ=America/Vancouver +CONFIG_PATH=/data/config.yml +VOL_PATH=/data +GATUS_RESTART=unless-stopped +GATUS_PORT=8080 +GATUS_IMAGE=ghcr.io/twin/gatus:stable +#or dockerhub +#GATUS_IMAGE=twinproduction/gatus:latest \ No newline at end of file diff --git a/uptimekuma_dev/README.md b/uptimekuma_dev/README.md deleted file mode 100644 index 56e2854..0000000 --- a/uptimekuma_dev/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# uptimekuma - -## Overview - -Proxy Port: 3001 - -* [Official Website](https://uptime.kuma.pet/) -* [Dockerhub](https://hub.docker.com/r/louislam/uptime-kuma) -* [Github](https://github.com/louislam/uptime-kuma/tree/1.23.X) -* [Docker Compose Example](https://github.com/louislam/uptime-kuma/blob/1.23.X/docker/docker-compose.yml) - -## Summary - -Uptime Kuma is a self-hosted monitoring tool that tracks the uptime and response time of websites, services, and network devices. It provides a sleek, user-friendly dashboard with real-time status updates, customizable notifications, and support for multiple monitoring protocols like HTTP(s), TCP, and ICMP (ping). Ideal for personal and business use, Uptime Kuma helps ensure your critical services remain online. - -## Notes - -By default uptime kuma uses sqlite. diff --git a/uptimekuma_dev/docker-compose.yml b/uptimekuma_dev/docker-compose.yml deleted file mode 100644 index f677632..0000000 --- a/uptimekuma_dev/docker-compose.yml +++ /dev/null @@ -1,6 +0,0 @@ -services: - uptimekuma: - image: ${UPTIMEKUMA_IMAGE:-louislam/uptime-kuma:latest} - restart: unless-stopped - volumes: - - ${VOL_PATH:-./data}/uptimekuma-data:/app/data diff --git a/uptimekuma_dev/sample.env b/uptimekuma_dev/sample.env deleted file mode 100644 index c277bb2..0000000 --- a/uptimekuma_dev/sample.env +++ /dev/null @@ -1,3 +0,0 @@ - -COOKBOOK=/git/docker-compose-cookbooks #HELP: cookbooks -UPTIMEKUMA_IMAGE=louislam/uptime-kuma:1