Skip to content

KSJaay/Lunalytics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Lunalytics logo

Open source monitoring tool built with Node.js & React

Demo

πŸ“” Features

  • Easy to self-host
  • Monitor uptime for HTTP(s)/TCP
  • Support for multiple users
  • Fully customisable status/dashboard pages
  • Role based access control
  • Clean and easy to use UX/UI
  • Customizable user profiles/themes/colors
  • Support for notifications
    • Discord
    • Slack
    • Telegram
    • Webhook
    • More to come...

πŸš€ Getting Started

Caution

This project is under active development, things may randomly break. But I'll do my best to fix them as soon as possible.

Docker

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

Docker Compose

# 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:

Clone application

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

Setup application

# 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

# 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

  • Custom status pages
  • Better design for compact mode
  • API keys for users
  • Move to Oauth2 for authentication
  • Allow session management (Track/logout from sessions)
  • Add support for multiple databases
    • Add support for PostgreSQL
    • Add support for SQLite
    • Add support for MongoDB
  • Add support for more notification services
  • Better role based access control

⭐ Help us grow

πŸ“– 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

Just me for now I guess :(

License

See the LICENSE file for licensing information.