Summary
Some use cases of FreedomBox would be made easier if FreedomBox offered a file manager within the UI. I wonder what others think about integrating a file manager within our UI.
Problem
Currently, we rely on two methods for managing files in FreedomBox: (1) SSH and (2) file managers within specific client apps, like Syncthing’s file manager. Granting that file management through SSH is a bit cumbersome and that there are times when it is preferable to use a universal file manager instead of an app-specific file manager, it seems that our system has a gap: there is no file manager or the entire file system within the UI. I have found this to be cumbersome for my Ikiwiki
Solution
Integrate a file manager within our UI. Perhaps some critical directories can be locked in order to prevent accidental breakage of the system. The file manager should enable (1) viewing of all directories and (2) adding/deleting files in some directories (e.g. Ikiwiki’s directories).
Questions
What do people think about this idea in general?
If you support it, would you rate the time requirement of this feature as low, medium, or high?
I can see how that idea makes sense if “within” means “as its own module”. A complte file manager might even be a bit too much, as we probably don’t need to handle files on a file by file basis, but more like pointing important directories to applications, or making them available.
I think if people need to “mess around” with specific files, we probably made a mistake of not having taken care of stuff like we should. And I have yet to see a web based file manager that comes even close to a native app
I totally agree that we currently don’t cover the entire realm of “files” and access to them, and that is not good.
When I was experimenting with static websites for FreedomBox, I explored using a web-based file manager to do basic file operations like moving, renaming, copying etc. Also, having a basic text editor is a plus for quick edits.
File browser is the file manager I tried out. The UI looks like Google Drive. It has permissions management for files and a basic text editor as well.
@haidar The way we usually introduce apps into FreedomBox is driven by use cases. If we can think of an initial set of use cases for which one might use a file manager with FreedomBox, that will inform our choice of application and integration with other applications in the system, permissions for users, content on the manual page etc.
In our use case exploration, we can use a standard desktop file manager like Dolphin with SFTP to access files on a FreedomBox device to observe what features of the file manager users might need.
It is worth noting that some features like viewing files in shared folders is already supported by the sharing app. Also consider the possibility of NextCloud being integrated and providing some of the file management features.
Which directories would you lock down? Most configuration will be done in /etc or in dotfiles in $HOME. I suppose it might make sense to lock down any data dirs in /var. But, I don’t think they should be completely locked down. We don’t want to remove a persons freedom to do what they want with their freedombox.
But, we should make it a deliberate process to unlock something. And, the process should give a big fat bright-yellow-on-black warning or two before actually unlocking said something. We should tell them they void the warranty etc etc…
I’m just curious, why do you need access to the whole file system from within ikiwiki? Would access to $HOME be enough for publishing purposes?
It would be good to have a file manager when implemented as a separate app.
We should indeed try to reduce the user’s need to use a file manager. An example of this issue. We may not be able to eliminate all such needs. Android tries to do the same.
Currently, one use case could be static file hosting in user’s home directory that is automatically served at https://<box>/~user .
Especially for noobs like me it would be so much easier to store and find things. For people, who are only used to Desktops and mobile OS, it would definitely make things much easier.
Just my $0.02, but I have actually been working on a web-based OS for several many years (among other projects as well). It might not be as polished as the other two referenced above, but it is lightweight and works on mobile devices. I could pull it out of the OS as a separate app (just a handful of files) for others to test and maybe extend. If you are interested in it, download the XiniX OS from Cliquesoft or from Sourceforge. The later link has a readme that gives some useful information (which I also think is included in the compressed files on the website). I also have a picture viewer that is a separate app that I could provide.
Please be aware, this is in beta as I’m the only developer for all websites and software!!!
EDIT: I also have updated some of the dependencies of the OS, but just haven’t had a chance to apply to the base and release a new version.
I’ve actually been searching for a way to access the files on my FreedomBox and I was a little disappointed when that I found out that wasn’t a feature yet. But, hearing this is awesome news! Yes, I would love a file manager that I could access through plinth! If it’s up to us for feature requests, I’d like the UI to handle basic things like upload/download/copy/paste/delete. Good tier is if it can restrict file access for other users. And gold tier is if it can handle external storage mediums. In my use case, I’m going to use Open VPN to pull files for school at school from a 2t mechanical drive. When it comes to development speed, whatever your comfortable with. I’ll drop oneDrive when you roll out the module. FreedomBox has become my server Swiss army knife. I absolutely love it so far! Keep up the good work y’all!
Just wanna leave this here:
Cockpit has a file manager app called cockpit-navigator. If it gets packaged in Debian, it would fit well with our Cockpit app.
I’ve just installed Filegator. I tried using Bepasty for others to share files with me, unfortunately it wasnt doing a good job with larger files. So far, Filegator seems to do a good job for my following requirements:
uploads in chunks so interruption on client side is mitigated
can create folder structure with permissions for others to upload
doesn’t require database or additional software (works with php and apache out of the box)
straight-forward installation with only downloading source-code under /var/www/ and creating an apache .conf file.
I only did a slight tweak in the php.ini file to increase upload limit.
I’m not using it as a file-browser to access my entire server and replacing other methods. It’s rather to give others a chance for sending-recieving files in a decent file-browser UI.