I'm looking for a self hosted webapp for a reserved area. Here are the requirements of the final solution (where "final" means I'm almost sure some coding will be needed on my part in order to implement some of these):
- It must serve binary files from a local directory (device drivers for hardware customers buy on the website)
- It must provide a browsable tree view of the directory and the contained files
- It must implement self-service registration followed by admin approval of the new account
- It must provide users groups (or roles) and permissions by means of ACLs (this is acceptable even if only through the command line interface)
- It must provide tagging of files and directories (via the command line is ok)
- It must provide a search by tag/by file name on the web interface
- It must show files along with a default icon based on the file-type (pdf, exe, bin, ...)
- It must offer a customizable web interface, by means of choosing a theme/template, adding custom CSS code and the like
- It must provide a plugin system, so that I can add custom user interface elements to the webapp layout.
I suspect there's nothing out there that satisfies the whole list, but I'd be more than happy to find a single software that can be customized with CSS and plugins development to implement what's missing.
These came off the top of my head, but they all lack something here or there:
- Wordpress: it is surely possible to develop a plugin for WP that implements points 1,2,4,5,6 and 7, but it seems quite a long TODO list, that makes me wonder if using it does make sense at all. There already are both free and paid WP plugins that can implement most of the list, but none I know of that does so backed by a local directory: they all save/show/search for posts or custom post type and they all tag posts or custom post types, none of them tags a local directory.
- NextCloud: I'm not an expert here, it seems it has almost everything, except that everything needs to be customized to look like a reserved area instead of a cloud storage and I'm not sure it is possible
- Joomla!/Drupal & Co. I suspect some of those CMS could be a good choice, but I don't know them enough to tell, so I leave the final word on them to you.
- I develop the toy myself, maybe using some building blocks to avoid starting from scrach with everything. However I'd better avoid this way if at all possible for costs reasons.