# 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](https://github.com/eternnoir/pyTelegramBotAPI) - A Python library for Telegram bot API. ## Installation 1. Clone this repository: ```bash git clone https://git.lainlounge.xyz/hornet/lainmonitor.git cd lainmonitor ``` 2. Install the required Python library: ```bash 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 4. 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: ```bash python3 lainmonitor.py ``` ### Running as a Service To run LainMonitor as a service, follow these steps: 1. Create a systemd service file: ```bash sudo nano /etc/systemd/system/lainmonitor.service ``` 2. Add the following configuration: ```ini [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: ```bash 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 subnet and return the connectivity status for each peer. - `/reboot`: (Work in progress) Placeholder for a reboot command. ## Author Created by **hornet** and **hax** Feel free to contribute or suggest features!