Feature #601
openPiSentry File Management: web UI
10%
Description
A web UI for listing and deleting files. This is just for managing PiSentry disk space. The web UI runs on PiSentry but will have an API for use by Ironman.
Requirements- Scan for PiStores using multicast requests.
- Saving files requires API for authentication on PiStore.
- Saving files requires nfs export by PiStore.
- PiStore needs Web Interface for specifying drives designated for PiSentry use. Initially, only enable by drives, not directories.
- Directories on PiStore need to be created for PiSentry registrations.
- PiSentry need user-defined identifications in Web UI
- Show saved files
- Enable/disable saving videos.
- Remove saved files.
- Enable/Disable camera.
- Enable/Disable local display of camera (on TFT)
Files
Related issues
Updated by Hammel over 7 years ago
- Subject changed from File Management to File Management: web
Updated by Hammel about 5 years ago
- Priority changed from Normal to Low
- Target version changed from 0.5.0 to 2.0.0 - Dors Venabili
Updated by Hammel over 1 year ago
- Description updated (diff)
- Priority changed from Low to Immediate
- Target version changed from 2.0.0 - Dors Venabili to 3.0 - Corrino
Updated by Hammel 11 months ago
Definitely needs to be under mongoose control. Might be a variation of Ironman imrest server. Not sure if I should combine them or make the conditionally compiled.
Looking at the imrest/imrest.c module, it would seem to be easy to map the GET/POST/DELETE requests based on conditional compilations, so I could add PiSentry support to imrest and only have it on PiSentry's.
Updated by Hammel 11 months ago
- Status changed from New to In Progress
- % Done changed from 0 to 10
There are 13 source files for current imrest. Only 4 would play a part in PiStore web services. Conditionally compiling them would violate my KISS principles (not that pinet doesn't already violate them) so I'm going to create a separate web server for pistore, but it will be based on imrest's core C modules: imrest.c, cli.c, utils.c and mongoose.c. I may also want to integrate a similar initialization module like init.c
The new app will be called pistoreweb.
Interesting note: I can make static images of the disk usage, just like is shown in PiStore, using Cairo and writing to a PNG. Theoretically I don't need GTK+ to use Cairo like this. It won't be fancy graphics, but it means I could avoid client side javascript and just use standard HTML.
While applicable to pisentry, the above comment was for pistore. PiSentry will also base it's web interface on imrest, and it too will be a separate app. This one will be called pisentryweb.
Updated by Hammel 11 months ago
- Has duplicate Feature #588: File Manager for PiStore's added
Updated by Hammel about 1 month ago
- Subject changed from File Management: web to PiSentry File Management: web UI
- Description updated (diff)
Updated by Hammel about 1 month ago
- Severity changed from 02 - High to 01 - Critical
Updated by Hammel 10 days ago
pisentryweb source tree was copied from pistoreweb and it's cdtools function updated.
Next I need to port the pistoreweb references to pisentryweb. Make sure the build works, then review the pistoreweb.c, utils.c and get.c to remove pistoreweb specifics. Then find a library that lets me create a UI in Javascript.
- 14 Best JS UI Libraries
- w2ui looks promising
- To 10 JS UI Library for 2025
- NGX Boostrap# looks promising
- Unsuck.js
- Strawberry - minimalistic javascript only
- Reef
- Conjure
Update¶
After looking these frameworks/libraries over I think I'd just rather use jQuery just like I do with piboxwww. It's simple and I can migrate any php to APIs between the client side and the mongoose server.
Updated by Hammel 5 days ago
- File pisentry-webui.png pisentry-webui.png added

This UI requires the following data from the PiStores:
- PiStore name (or IP address)
- Amount of available storage (total of all enabled drives)
- Connect status (is this PiSentry current connected to that PiStore?)
- PiSentry name (and IP address)
Once a connect is made, the PiStore needs to export a directory ONLY to the PiSentry and tell the PiSentry what the mount point is.
All storage is done over NFS. The rest of the UI is local to the PiSentry only.
Updated by Hammel 4 days ago
- Blocked by Feature #883: PiStore needs to respond to multicast queries added