MXStatus is a comprehensive system for monitoring the system status of multiple Linux machines from a centralized server.
MXStatus is composed of three main components: Client, Server, and Web Client.
The Client component is installed on each Linux machine that you want to monitor. It actively periodically posts the host machine's status to the central server.
The Server is deployed on a publicly accessible cloud server with a fixed IP address. It runs API endpoints to receive status updates from all clients. It also handles requests from the Web Client.
The Web Client serves as the user interface to interact with the server and view the status of the monitored workstations.
We use Docker for easy server deployment. Follow these steps to get your server up and running:
-
Make sure you have Docker installed.
-
Clone this repository; Navigate to the project root directory.
-
Run the following command to deploy the server:
docker compose up --build -d
-
To tear down the server and remove the Docker image, run:
docker compose down --rmi all
Please refer to the Client INSTALL.md.
This section is for developers who want to contribute to the development of MXStatus.
To set up the development environment:
-
Create a virtual environment:
python3 -m venv venv source venv/bin/activate
-
Install the required dependencies:
pip install -r requirements.txt
To run the development server, use the following command from the project root directory:
uvicorn server.main:app --reload --port 5000
For testing the Client component:
-
Navigate to the 'client' directory:
cd client
-
Run the Client using:
python3 main.py
Feel free to explore and contribute to the development of MXStatus!