From 6ea54b1218e811125557e967cd3e4a153ef615cf Mon Sep 17 00:00:00 2001 From: Adrien Date: Sat, 17 Feb 2024 18:49:44 +0100 Subject: [PATCH] Add update-kuma monitoring tool --- 20240215223404-uptime_kuma.org | 97 ++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 20240215223404-uptime_kuma.org diff --git a/20240215223404-uptime_kuma.org b/20240215223404-uptime_kuma.org new file mode 100644 index 0000000..6e2c2f6 --- /dev/null +++ b/20240215223404-uptime_kuma.org @@ -0,0 +1,97 @@ +:PROPERTIES: +:ID: e5e49b61-ee56-4364-a96e-48d72217ef95 +:mtime: 20240217184904 +:ctime: 20240215223404 +:END: +#+title: uptime-kuma + +* Installation + +#+BEGIN_SRC shell +cd /opt +mkdir uptime-kuma +chown ubuntu:ubuntu uptime-kuma/ +git clone https://github.com/louislam/uptime-kuma.git +cd uptime-kuma +npm run setup +npm install vite +npm run build + +useradd -m --system uptime + +cat < /usr/lib/systemd/system/update-kuma.service +[Unit] +Description=Uptime-Kuma - A free and open source uptime monitoring solution +Documentation=https://github.com/louislam/uptime-kuma +After=network.target + +[Service] +Type=simple +User=uptime +WorkingDirectory=/opt/uptime-kuma +ExecStart=/bin/bash -c 'PATH=/home/uptime/.n/bin:$PATH npm run start-server' +Restart=on-failure +RestartSec=5s + +[Install] +WantedBy=multi-user.target +EOF + +systemctl daemon-reload +systemctl enable --now uptime-kuma + +cat < /etc/nginx/sites-available/uptime +server { + server_name tools.adrien.run; + + listen 80; + listen [::]:80; + + return 404; +} + +server { + server_name uptime.tools.adrien.run; + + listen 443 ssl http2; + listen [::]:443 ssl http2; + + # SSL configuration + include /etc/nginx/ssl.conf; + ssl_certificate /etc/letsencrypt/live/uptime.tools.adrien.run/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/uptime.tools.adrien.run/privkey.pem; + + # Logging configuration + access_log /var/log/nginx/uptime.access.log; + error_log /var/log/nginx/uptime.error.log; + + root /opt/uptime-kuma; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $host; + proxy_pass http://127.0.0.1:3002/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } +} + +server { + server_name uptime.tools.adrien.run; + + listen 80; + listen [::]:80; + + if ($host = uptime.tools.adrien.run) { + return 301 https://$host$request_uri; + } + + return 404; +} +EOF + +systemctl restart nginx.service +certbot -d uptime.tools.adrien.run --nginx +#+END_SRC