Mirumon is a simple hardware monitroing service. The goal of this project is to provide a simple user-friendly API to monitor your devices remotely.
It is based on the Agent architecture. An Device Agent is installed on the PC, and is connected to the server via a websocket.
Server provides an open REST API to interact with its components. As of now, the only officially supported client is the for Android phones and tablets.
Implemented features:
- User registration and authorization
- Device registration and authorization
- Providing the device connection status (online/offline)
- Providing the information about the system (OS, users, etc.)
- Providing a list of all installed software
- Providing information about device's hardware
- Remote shell command executing and shutting off the device
In development:
- User permission groups
- Periodical synchronisation of the device
- Websocket client API with push notifications
- Active Directory authorization
- Powering up the device
To start working on project install dependencies
pip install poetry
poetry install
Create env file from template
cp .env.template .env
Run databases and broker containers
docker-compose up -d postgres rabbitmq redis
Up migrations
alembic upgrade head
Create first superuser
./scripts/create_superuser.py admin pass
Run dev server with all necessary configs
./scripts/runserver
Register and connect fake device
./scripts/fake_device.py admin pass
Format and lint code
nox -S format lint
Run tests
nox -S test
or just
pytest