forked from hornet/lainmonitor
telegram bot hosted on lainlounge servers for remote system monitoring
|
||
---|---|---|
lainmonitor.py | ||
LICENSE | ||
README.md | ||
requirements.txt |
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
-
Clone this repository:
git clone https://git.lainlounge.xyz/hornet/lainmonitor.git cd lainmonitor
-
Install the required Python library:
pip install pyTelegramBotAPI
-
Replace the placeholder in the code with your Telegram bot token:
TOKEN = 'PLACE_YOUR_TOKEN_HERE'
-
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:
- Create a systemd service file:
sudo nano /etc/systemd/system/lainmonitor.service
- 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
- 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!