Skip to content

AgentSchmisch/NAS_mgmt

Repository files navigation

Version: 06-03-2023

NAS-Management

....a simple, yet powerful User-Interface/Dashboard to control a up to 4 Disk, self hosted NAS System.


🧭 Contents


🖥️ Setup

  • It is important to start the software as root so all the PC's commands can be executed without prompting for a password
  • there will be a packaged version of the repository so setup will be easier
  • start off by installing all the requirements listed in ✅ Requirements

To start the program afterwards, use...

cd your/project/folder
python3 main.py

...thats it, you should be up and running


📤 Website Auto Updater

The website auto Updater is used to pull a specific repository from a self-hosted Gitea when pushing into a branch

  • create a branch that will be listened to as the "production" branch
  • In a repository create a webhook routing to your webserver on the address localhost:5000/api/v1/newCommit
  • push to the "production" branch and your local repository will be automatically updated

🔒 Login

To access the Dashboard you need to create an account in a MariaDB Database, the scheme of the database is currently the following

table name: users

id username password admin
varchar(100) varchar(100) varchar(100) tinyint
Column Details
  • id (uuid4 string)
  • username (str)
  • password (sha256 hash)
  • admin (tinyint)

📊 Dashboard

The dashboard is used to control a variety of different functions from the server:

⏏️ Hot swap drives

In the Dashboard you can use the buttons labeled unmount drive to disconnect the drive from the PC and therefore being able to change the drive to a new one

💾 Drive capacity

In the Dashboard you can see the current memory usage and remaining capacity of the connected drives

📈 CPU Usage

In the Dashboard you can inspect the CPU Usage of your System

⚙️ Server Control Section

In this section there will be some controls for your server, like restarting, putting it to hibernation and shutting down the server


🔁 DNG Converter

This feature will automatically check if there are new files in a certain folders with .cr3 images and convert them to .dng

  • The converter check for new files in a certain folder you can copy the images there or use ftp to upload them to the folder
  • It is necessary that the images are pasted without any parent folder, the Converter will automatically sort them by date with the scheme YYYY_MM_DD
  • the capture date of the images are read from the EXIF data of the image, so make sure the date of your camera is set correctly
  • the converter will, by now, only convert .cr3 images to .dng
  • it is mandatory for the feature to work to install dnglab
    • add the install path of the dnglab package to the config.json

✅ Requirements

In the Package all the requirements will be included in a file called requirements.txt

Required Packages
Package
✅ Flask
✅ dnglab
✅ PIL
✅ MariaDB
✅ requests
✅ os
✅ shutil
✅ psutil
✅ re
✅ hashlib
✅ asyncio

It is also necessary to install following packages manually with:

sudo apt-get install libmariadb3 libmariadb-dev
sudo apt-get install gcc python3-dev

🥅 Planned Features

  • ✅ Login form
  • ☑️ implement check if user has admin permissions in the Dabase and show different content then to users that are "just" users
  • ☑️ List of services running on the machine & selection of shown services in a menu
  • ☑️ admin panel to add and remove users
  • ☑️ round status dials for CPU & Drive Usage
  • ☑️ complete makeover of UI

👥 Contributors

About

A management Tool for self hosted NAS systems

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published