lainmonitor/README.md
2024-10-05 01:41:05 +05:00

2.2 KiB

LainMonitor

LainMonitor is a Telegram bot designed to monitor your system by providing real-time information about the system's status, services, and disk usage. It can also check connectivity to a specific Tailscale IP address.

Features

  • Retrieve system hostname, uptime, and status of essential services such as:
    • Zerotier
    • Prosody
    • PostgreSQL
    • Tailscale
  • Check disk usage
  • Ping a Tailscale IP to verify connectivity
  • Use via Telegram commands like /status, /ping, and /help

Dependencies

  • Telebot - A Python library for Telegram bot API.

Installation

  1. Clone this repository:

    git clone https://git.lainlounge.xyz/hornet/lainmonitor.git
    cd lainmonitor
    
  2. Install the required Python library:

    pip install pyTelegramBotAPI
    
  3. Replace the placeholder in the .env file with your Telegram bot token

  4. Add the .env file to .gitignore to prevent token overwriting

  5. Set up permissions for the bot to check system services (run as a user with sudo access).

Usage

Running Directly

You can run the bot directly using Python:

python3 lainmonitor.py

Running as a Service

To run LainMonitor as a service, follow these steps:

  1. Create a systemd service file:
    sudo nano /etc/systemd/system/lainmonitor.service
    
  2. Add the following configuration:
    [Unit]
    Description=LainMonitor Telegram Bot
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/python3 /path/to/lainmonitor.py
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  3. Enable and start the service:
    sudo systemctl enable lainmonitor
    sudo systemctl start lainmonitor
    

Telegram Bot Commands

  • /start: Initialize the bot and receive a welcome message.
  • /help: Display available commands.
  • /status: Get the system hostname, status, uptime, and the status of monitored services.
  • /ping: Ping a Tailscale IP and return the connectivity status.
  • /reboot: (Work in progress) Placeholder for a reboot command.

Author

Created by hornetmaidan

Feel free to contribute or suggest features!