Skip to content
This repository has been archived by the owner on Mar 22, 2022. It is now read-only.

mirumon/mirumon-backend-legacy

Repository files navigation

Mirumon

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

Development

Prepare environment and infrastucture

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 user and run server

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, lint and test

Format and lint code

  nox -S format lint

Run tests

  nox -S test

or just

  pytest