Giter Site home page Giter Site logo

uptime-buddy's Introduction

Uptime Mate

Uptime Buddy has been renamed to Uptime Mate.

GitHub Repo stars Docker pulls Static Badge Static Badge

App Store Link

Uptime Mate is an uptime monitoring tool for your Apple Watch, designed to keep you informed about the status of your services. Uptime Mate, requires a lightweight docker backend to run.

Apple Watch with Uptime Mate Apple Watch with Uptime Mate Apple Watch with Uptime Mate
Apple Watch with Uptime Mate Apple Watch with Uptime Mate Apple Watch with Uptime Mate

Last Update Changelog

Changes App Version 1.1.0

IMPORTANT!

The update 1.1.0 of the app and the backend is not backwards compatible. Make sure you update the iOS-App to 1.1.0 from the AppStore and pull the lastest docker image from: schech1/uptime-buddy-api:latest

  • Added an option to exclude paused monitors to the list. The setting is available in the info menu on the AppleWatch App.

  • Support for MFA implemented. Uptime Kuma instances with 2FA activated can now be monitored too.

To add support for MFA, add the MFA variable to the docker-compose and turn on MFA in the iOS-App and apply the authenticator code.

Example

version: '3.8'

services:
  uptime-buddy-api:

    image: schech1/uptime-buddy-api:latest
    ports:
      - "5005:5005"
    environment:
      - UPTIME_KUMA_URL=http://192.168.1.20:3002/
      - USERNAME=admin
      - PASSWORD=admin
      - TOKEN=gkd4el
      - MFA=true/false

Backend Compatibility

Be sure to pull the latest docker image

The current version (1.1.0) in the App Store is compatible with schech1/uptime-buddy-api:latest

Prerequisites in the Uptime Mate iOS-App

For authentication, start the Uptime Mate iOS-App before you deploy the docker-container. On first start, a token will be generated and displayed in the app. Add the token to the docker-compose file or docker-run command. Then deploy the container as described below.

Settings on the iOS App

Before deploying the Docker container, open the Uptime Mate companion app on your iPhone. Follow the these steps to configure Uptime Mate:

  • Generate the token
  • Enter your backend address (Address where you host this container, including the port (e.g.http://your-server-ip:5005))
  • Test the backend
  • Copy the generated token into your docker-compose.yml and deploy it.
  • Send the setting to the Apple Watch. It will display your monitors from Uptime Kuma in the Apple Watch app
  • Check out the Watch Face complications

Apple Watch with Uptime Buddy

Installation via Docker

Uptime Mate requires a running instance of Uptime Kuma!

Be sure to set up Uptime Kuma correctly and provide the address, username and password of your Uptime Kuma instance to the docker compose file.

If you disabled auth in Uptime Kuma, remove the two lines from the compose-file entirely:

- USERNAME=YOUR_UPTIME_KUMA_USERNAME
- PASSWORD=YOUR_UPTIME_KUMA_PASSWORD

Follow the steps below to set up the backend for Uptime Mate.

Docker Compose

Create a docker-compose.yml file with the following content to deploy the backend:

services:
  uptime-buddy-api:
    image: schech1/uptime-buddy-api:latest
    ports:
      - "5005:5005"
    environment:
      - UPTIME_KUMA_URL=YOUR_UPTIME_KUMA_URL # e.g. http://192.168.1.34:3002/
      - USERNAME=YOUR_UPTIME_KUMA_USERNAME # Optional: remove line if auth is disabled in Uptime Kuma
      - PASSWORD=YOUR_UPTIME_KUMA_PASSWORD # Optional: remove line if auth is disabled in Uptime Kuma
      - TOKEN=SECRET_TOKEN # Created by iOS-App
      - MFA=true/false

Docker image on DockerHub

The docker image supports amd64 and arm64 architecture.

Tested on Raspberry Pi 5 and Intel NUC 10.

Replace the environment variables with your actual Uptime Kuma URL, username, password and the generated token.

Deploying the Backend

Using docker-compose

Save the docker-compose.yml file.

Run the following command in the directory containing the docker-compose.yml file:

docker-compose up -d

This command will pull the necessary Docker image and start the backend service on port 5005.

Using docker run (alternative)

Hint: Remove USERNAME and PASSWORD, if auth is disabled in Uptime Kuma

docker run -d --name uptime-buddy-api -p 5005:5005 -e UPTIME_KUMA_URL=YOUR_UPTIME_KUMA_URL -e USERNAME=YOUR_UPTIME_KUMA_USERNAME -e PASSWORD=YOUR_UPTIME_KUMA_PASSWORD -e TOKEN=YOUR_TOKEN schech1/uptime-buddy-api:latest

The Apple Watch and iOS App

Uptime Mate consists of an iOS app and an Apple Watch app. The iOS app is needed to set up the backend address and token. When the iOS app is installed, the Apple Watch app can be installed via the Watch app of the iPhone.

Uptime Mate comes with Complication and SmartStack support. The current update frequency of the Widgets is 15 minutes. In future versions this will frequency will be individually adjustable, to extend battery life of the Apple Watch.

Symbols on the Apple Watch

The following SF Symbols are used to illustrate the monitor type:

Apple Watch with Uptime Mate

Complications

Uptime Mate supports different complications on the WatchFace.

Circular

Circular

Corner

Corner

Rectangular Big

Rectangular Big

Rectangular Small

Rectangular Small

Rectangular Big

Rectangular Dashed

Rectangular Small

Circular Dashed

Data Privacy

Uptime Mate does not save, share or forward any data. The data that is fetched from the backend is only displayed on your device. The Apple Watch or iOS apps do not store any data locally on the devices, except the address of your backend. This is needed to keep setting over reboots.

Bucket list

  • API token for backend authorization
  • UI improvements on iOS app
  • More Symbols for monitor types
  • Nice AppStore page
  • Better looking complications
  • Better user feedback when backend is down
  • Communicate with Uptime Kuma directly (no additional docker container)

Related Projects

This project is based on Uptime Kuma and uptime-kuma-api.

Uptime Kuma: A self-hosted monitoring tool to monitor uptime for websites, applications and services.

uptime-kuma-api: A Python API for Uptime Kuma.

Contributing

Contributions are welcome.

Support Me

If you enjoy using this app, please consider leaving a Rating on the App Store!

If you encounter any issues or have questions, please open an issue on this GitHub repository.

uptime-buddy's People

Contributors

schech1 avatar github-actions[bot] avatar eltociear avatar

Stargazers

Tim Carlson avatar freak avatar  avatar Ján Bočínec avatar  avatar Giuseppe Sciarra avatar Cody D avatar St. Veit avatar  avatar Andrea Mannarella avatar Nate avatar Kacper Polak avatar  avatar  avatar David Wright avatar Yee Kit avatar Jens Kohl avatar Joffrey avatar  avatar Jam avatar Bramble avatar GravityMan avatar Filipe Ramalho avatar Philip Schmiegelt avatar Erik avatar Preeti Yuankrathok avatar Anthony avatar Fuad avatar Igor Volanski avatar Robin Tuszik avatar  avatar Vincent Spaziani avatar  avatar Philippe Koenig avatar  avatar  avatar John Dyer avatar  avatar Jaya avatar Jon avatar  avatar Ben Cousins avatar  avatar  avatar Can Evgin avatar Spencer Hughes avatar Will Fantom avatar  avatar Michael Lasday avatar Ron Klas avatar

Watchers

 avatar

uptime-buddy's Issues

Non-Non-Docker instalation

It would be great to see a way of installing this service without docker as uptime-Kuma can be run without docker. would open more options for installs, Like LXC in Proxmox for example.
Other wise a great tool keep it up 💪🏻!

Support for MFA

Please add support for MFA Tokens.

I personally use MFA tokens on my Uptime-Kuma instance, and had to disable them to implement uptime-buddy.

Also, Uptime-Kuma has support for API Keys, consider implementing those instead.

Thank you.

Please count just the active ones

Hey, and thank you for the great app!

For lower heartrate, i would appreciate, to just count the actives services.
Historically i have 33 services, but just 15 active ones.
The other one are paused/deactivated, until i need them again (for example 6 security cameras).

Would it be possible to implement? :)

Best regards

Support no auth

My uptime kuma is on my private network so I dont use auth on it... you're app seems to not work unless I have auth enabled which is problematic

Error in /monitors: Timed out while waiting for event Event.MONITOR_LIST

2024-09-03 17:29:18,154 - __main__ - INFO - Starting the backend...
2024-09-03 17:29:18,158 - waitress - INFO - Serving on http://0.0.0.0:5005
2024-09-03 19:59:17,844 - __main__ - INFO - Accessing /status endpoint
2024-09-03 19:59:17,878 - __main__ - INFO - Accessing /monitors endpoint
2024-09-03 19:59:22,675 - __main__ - INFO - Accessing /monitors endpoint
2024-09-03 19:59:23,875 - __main__ - INFO - Accessing /monitors endpoint
2024-09-03 19:59:27,886 - __main__ - ERROR - Error in /monitors: Timed out while waiting for event Event.MONITOR_LIST
2024-09-03 19:59:29,184 - __main__ - INFO - Accessing /status endpoint
2024-09-03 19:59:29,273 - __main__ - INFO - Accessing /monitors endpoint
2024-09-03 19:59:32,677 - __main__ - ERROR - Error in /monitors: Timed out while waiting for event Event.MONITOR_LIST
2024-09-03 19:59:33,713 - __main__ - INFO - Accessing /monitors endpoint
2024-09-03 19:59:33,883 - __main__ - ERROR - Error in /monitors: Timed out while waiting for event Event.MONITOR_LIST
2024-09-03 19:59:39,277 - __main__ - ERROR - Error in /monitors: Timed out while waiting for event Event.MONITOR_LIST
2024-09-03 19:59:43,720 - __main__ - ERROR - Error in /monitors: Timed out while waiting for event Event.MONITOR_LIST

First of all: i do NOT have MFA enabled in uptima-kuma, and not in the compose!

Second: Is not able to connect to endpoint ;)

Updated App in iOS and the compose file


services:
  uptime-buddy-api:
    image: schech1/uptime-buddy-api:latest
    ports:
      - 5005:5005
    environment:
      - UPTIME_KUMA_URL=http://192.168.0.44:3001
      - USERNAME=myuname
      - PASSWORD=mynicepassword
      - TOKEN=yes-mytoken
      - MFA=false

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.