An open API service indexing awesome lists of open source software.

https://github.com/ksjaay/lunalytics

๐Ÿš€ Open source monitoring tool built with Node.js
https://github.com/ksjaay/lunalytics

application-monitoring javascript lunalytics monitoring nodejs react responsive self-hosted selfhosted uptime uptime-monitor vite webapp

Last synced: 3 months ago
JSON representation

๐Ÿš€ Open source monitoring tool built with Node.js

Awesome Lists containing this project

README

          


Lunalytics logo

Open source monitoring tool built with Node.js & React



Documentation ยท
Try live demo ยท
Roadmap ยท
Discord

![Demo](https://raw.githubusercontent.com/KSJaay/Lunalytics/refs/heads/main/public/demo.gif)

## ๐Ÿ“” Features

- Easy to self-host
- Monitor uptime for:
- HTTP(s)
- TCP
- PING
- JSON Query
- PUSH
- Docker Containers
- Support for multiple users
- Fully customisable status/dashboard pages
- Incident management
- Advance role based access control
- Clean and easy to use UX/UI
- Customizable user profiles/themes/colors
- Single sign on support (SSO)
- Custom (Authentik, Authelia, Keycloak, etc...)
- Discord
- Google
- GitHub
- Slack
- Twitch
- Support for notifications
- Apprise
- Discord
- Email (SMTP)
- Home Assistant
- Pushover
- Slack
- Telegram
- Webhook
- More to come...

## ๐Ÿš€ Getting Started

> [!CAUTION]
>
> This project is under active development and still in beta, things may randomly break. But I'll do my best to fix them as soon as possible.

#### Docker

```bash
docker run -d \
-p 2308:2308 \
-v /path/to/data:/app/data \
-v /path/to/logs:/app/logs \
ksjaay/lunalytics:latest
```

#### Docker Compose

```yaml
# docker-compose.yml
services:
lunalytics:
image: ksjaay/lunalytics:latest
container_name: lunalytics
ports:
- '2308:2308'
volumes:
- ./path/to/data:/app/data
- ./path/to/logs:/app/logs
```

#### Requirements

Make sure you have the following applications installed before starting:

- [Nodejs](https://nodejs.org/en/download/) (v22.14.0 or higher)
- Npm or [Yarn](https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable)
- [Git](https://git-scm.com/)

#### Clone application

```bash
git clone https://github.com/KSJaay/Lunalytics.git
cd Lunalytics
```

#### Setup application

```bash
# Setup application
npm run setup

# Start application using scripts
npm run start

# Alternatively start application using
node server/index.js
```

Lunalytics will be accessible on https://localhost:2308

#### Using pm2 to run application in the background

```bash
# Install pm2 globally
npm install pm2 -g

# Start the server
pm2 start server/index.js --name Lunalytics

# Or start the server using script
pm2 start npm --name "Lunalytics" -- run start

# Optional
pm2 save
pm2 startup

## Monitoring console output
pm2 monit
```

## ๐ŸŽฏ Roadmap

- [x] Custom status pages
- [x] Better design for compact mode
- [x] API keys for users
- [x] Better role based access control
- [ ] Move to Oauth2 for authentication
- [x] Moved to session based system, but not full Oauth2
- [ ] Add support for multiple databases
- [x] Add support for PostgreSQL
- [x] Add support for SQLite
- [ ] Add support for MongoDB
- [ ] Allow session management (Track/logout from sessions)
- [ ] Add support for more notification services

## โญ Help us grow

- Add a star to the project if you like it!
- [AlternativeTo](https://alternativeto.net/software/lunalytics/about/)

## ๐Ÿ“– Backstory

There's a lot of monitoring applications out there and I personally love using uptime-kuma. But, one of the main issues with Uptime-kuma is the ability to share with my friends/colleagues. And for the services that do allow me to share with others, they either have an outdated UI from the 90s or are so expensive I can't justify paying for it.

So I've decided to create my own application that's focused on a developer first experience with support for multiple users.

## Contributors

No longer just me :D



## License

See the [LICENSE](https://github.com/KSJaay/Lunalytics/blob/main/LICENSE) file for licensing information.