Skip to content

Commit

Permalink
Add Uptime Kuma
Browse files Browse the repository at this point in the history
  • Loading branch information
vremenar committed Apr 17, 2024
1 parent be4a6c8 commit 28f3c73
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 2 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ This is my learning project and something I do when I get all nostalgic about te
It is a project to run containers in my home media server system. From ad-blocking (Pihole) to the digital book library. To run it, you'll need a Raspberry 4 or 5. Anything older will not work, as Mongo 4.4 is not supported on that architecture. Also, you'll need some Docker and Docker Compose knowledge. This application will require 4GB of RAM or more.
The setup of the applications mentioned here is out of scope. Google them. Behind every application, there is a large and vibrant community willing to help. The documentation is extensive.
# Release Notes
## v2.6 - Add Uptime Kuma
Added [Uptime Kuma](https://github.com/louislam/uptime-kuma), a simple self hosted availability monitoring tool. It enables monitoring of availabilty of HTTP(s) / TCP / HTTP(s) Keyword / HTTP(s) Json Query / Ping / DNS Record / Push / Steam Game Server / Docker Containers. Alertes can be pushed to more than 90 channels.
## v2.5 - Add PiHole Prometheus Exporter
Added Prometheus Exporter for PiHole. It enables gathering of data from PiHole. An Grafana Dashboard is also available.
## v2.4 - Switch to my Docker images
Expand Down
21 changes: 21 additions & 0 deletions dc-kuma.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
services:
kuma:
image: louislam/uptime-kuma:1
container_name: kuma
env_file:
- env/env-general.env
networks:
- lan
volumes:
- /home/pi/docker/kuma:/app/data
logging:
driver: "json-file"
options:
max-size: "5k"
max-file: "5"
healthcheck:
test: ["CMD", "curl", "-f", "-k", "http://localhost:3001"]
interval: 300s
retries: 5
timeout: 10s
restart: always
3 changes: 2 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,5 @@ include:
- dc-monitoring.yaml
- dc-jellyfin.yaml
- dc-filebrowser.yaml
- dc-sftp.yaml
- dc-sftp.yaml
- dc-kuma.yaml
9 changes: 8 additions & 1 deletion prometheus/config/prometheus.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,11 @@ scrape_configs:
- job_name: 'netatmo'
scrape_interval: 90s
static_configs:
- targets: ['netatmo-exporter:2112']
- targets: ['netatmo-exporter:2112']
- job_name: 'kuma'
scrape_interval: 90s
static_configs:
- targets: ['kuma:3001']
basic_auth:
username: 'MyUserName' # Change this to username you set during first Uptime Kuma start
password: 'MyStrongPassword' # Change this to password you set during first Uptime Kuma start
28 changes: 28 additions & 0 deletions traefik/configs/kuma.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
http:
routers:
kuma:
service: kuma
rule: "Host(`uptime.home.local`)"
tls: {}
entryPoints:
- "websecure"
# Public internet routing with Let's Encrypt certificate, delete this is you do not have or want access from public internet.
kuma-public:
service: kuma
rule: "Host(`uptime.my.domain`)" # Use only subdomain rule as Uptime Kuma does not support suffix routing through proxy
tls:
certresolver: csr
entryPoints:
- "websecure"

services:
kuma:
loadBalancer:
servers:
- url: "http://kuma:3001"
healthcheck:
path: "/"
port: "3001"
scheme: "http"
interval: "3s"
timeout: "100ms"

0 comments on commit 28f3c73

Please sign in to comment.