Latest interface: 0.3.1
Latest system: 010
CiPHER
Developer

1199 posts

Posted on 14 November 2011 @ 13:51
Hi Jason,

A friend on my Dutch forum asks whether you could provide some sort of 'todo list' for development tasks, preferably one that could be done by a single person. He would like to consider working on ZFSguru for just separate tasks. Anything you could provide for him?

I know the documentation is overdue, but since i'm already working on that, i thought it would be best to have some separate tasks for a single person to work on. Please let me know and i'll link to this thread. :)
Jason
Developer

806 posts

Posted on 14 November 2011 @ 21:49
Good idea. One thing comes to mind: local file browser. There is a great project called Ajaxplorer that would make a great addition to ZFSguru:
http://www.ajaxplorer.info/demo/

It allows uploading files and directories. I haven't looked at its code though. If it can be integrated well into ZFSguru by using the same authentication method (thus no double login) then it would be a great feature to have.

There could be other things to put on the to-do list. I would prefer to keep control over architectural changes though. I'll think a bit more about some nice development tasks and come back to you. Any particular area your friend is interested in? For example, ZFSguru extensions (the panels, in particular) may also be a very important development task.
The_Dave
User

221 posts

Posted on 15 November 2011 @ 01:05
I have been looking into how I could install that (ajaxplorer) because it is simply amazingly easy looking to use for remote file manipulation. That would be a huge benefit to those of us (me included) not saavy in FreeBSD even for local file management.
FireDrunk
User

15 posts

Posted on 16 November 2011 @ 22:54
I'm the guy CiPHER is talking about and would verry much like it to help you integrate AjaXplorer into ZFSguru! :)

Only thing that comes into mind is, whether you want it to be inside the ZFSguru Web interface, or hosted on a seperate folder or even a seperate port on the server?
The_Dave
User

221 posts

Posted on 17 November 2011 @ 00:55edited 00:56 00s
Nice! I personally think that AjaXplorer will push this platform to a whole new level.

I think an external port is great so that we don't have to expose the zfsguru interface to the net and just that one external port if we want. Maybe run it like the vbox service where it is separate from the zfsguru interface but can be launched from the zfsguru portal for simplicity sake using that separate port.
FireDrunk
User

15 posts

Posted on 17 November 2011 @ 11:00
Their are some consequences for the login procedure, i have to look in to it, but i guess if the system is not running on the same port, than the login credentials of ZFS cannot be used (because the session cookie is not transportable between ports). I have to check whether we can let Apache do the login work for us. This might give us a way we can have Single Sign on.
faquino
User

24 posts

Posted on 17 November 2011 @ 12:14
Be aware that AjaXplorer is subject to the Affero GPL license, this might be an issue in case you plan to develop a commercial version of ZFSguru, or even for users intending to deploy ZFSguru in a non personal use only environment.
FireDrunk
User

15 posts

Posted on 17 November 2011 @ 12:19
If i understand it correctly, AjaXplorer should be a 'plugin' (installable service). We can add Accept Terms on each plugin i think. In that case we might be ok, but it's always good to be aware of the specific license :) Thanks!
CiPHER
Developer

1199 posts

Posted on 17 November 2011 @ 16:55
Would be great if you can integrate AjaXplorer into ZFSguru web-interface somehow.

Just curious: can it be done by replacing the current primitive file browser page? For example: by default you get the primitive filebrowser as implemented currently. But after installing the AjaXplorer addon on the Services page, the 'File browser' page is replaced with AjaXplorer. That would be the best (but more difficult) approach, probably.

Easier would be to let AjaXplorer run on another vhost or even webserver/port. But double authentication might be cumbersome. Any chance the authentication can be removed/disabled on AjaXplorer and replaced with ZFSguru authentication? I believe all you need to do to make that work is include the main.php include file.

But it might be difficult, since ZFSguru works by sending a content string to page_handle() function. That means all of the content that AjaXplorer generates should be output to a string variable rather than to the output using echo(). So it might be more difficult than i initially thought, at least when using the approach discussed above.

Perhaps PHP output functions can redirect the echo() output somehow?
FireDrunk
User

15 posts

Posted on 17 November 2011 @ 22:52
Don't think that's possible, but perhaps the dirty way would be to do all this in an iFrame...
CiPHER
Developer

1199 posts

Posted on 18 November 2011 @ 00:17edited 00:17 27s
Yes, what about an iframe linking to /ajaxplorer directory on the same webserver / document root. So no special Lighttpd configuration is required? And perhaps a link that opens the interface in a new page (without iframe). Just like the phpVirtualBox interface in ZFSguru.

Only the double authentication would be cumbersome. Perhaps the ZFSguru page (containing the iframe) could allow to set the authentication details and write the configuration file to /ajaxplorer directory. Maybe set an option to disable authentication altogether? If people are using this in a safe local environment and don't want the hassle of authenticating.

Just some ideas!
Jason
Developer

806 posts

Posted on 18 November 2011 @ 16:45
Looks great guys, very interested in the result! I can make it a service addon later, just build on integrating it and we'll worry about packaging it later! I think AjaxPlorer needs additional PHP packages as well, right?
FireDrunk
User

15 posts

Posted on 19 November 2011 @ 20:29
php5-mcrypt and php5-gd is all it needs i think.
FireDrunk
User

15 posts

Posted on 20 November 2011 @ 18:00
Well, i've been trying to get it to work. The basic browser works!, that was the easy part. Integrating it into ZFSguru will be my next step :)
FireDrunk
User

15 posts

Posted on 20 November 2011 @ 18:16
broken image

That was easy :)
Jason
Developer

806 posts

Posted on 20 November 2011 @ 18:30
Looks awesome, this is inside an iFrame? I guess the authentication could be an optional next step, one I'm willing to look at. Final task would be making a ZFSguru service addon package. I guess people would need to wait for 0.2 for this to work out of the box, since some change to the ZFSguru web-interface is required. The File Browser-page should default to the internal file browser but if the extension package is installed it should display the alternative iFrame instead.

Some advanced features could be by 'deeplinking' to the file browser page using a specified path. So that when a user clicks /tank/storage link on the Files page, it launches the AjaxPlorer file browser with that directory opened. Perhaps we could also display some links above the iFrame that display all the different pools so people don't get confused with all the top-level directories (bin boot etc) but are directed to the location of their data, which they are familiar with.

So far, excellent job FireDrunk. This adds a great feature to ZFSguru!
FireDrunk
User

15 posts

Posted on 20 November 2011 @ 18:40
Yes, this is an iFrame. Authentication is currently done by AjaXplorer itself. But i've seen cases where it can use local accounts for editing files (so it should be able to use either the ssh user or root for editing. Problem is that the webserver is running under the www user (as usual on FreeBSD) so you without some kind of chmod the default authentication is not enough :)

I will try to find out the best way to interconnect the authentication methods of AjaXplorer and FreeBSD / Lighthttpd. Perhaps it is best to change the ZFSguru authentication based on this outcome.
Jason
Developer

806 posts

Posted on 20 November 2011 @ 19:00
I was assuming there was a separation between the web-logon authentication and local user. But in AjaxPlorer these are combined? So you can login with root using the actual root password?

ZFSguru currently gains superprivileges using sudo, which is configured for the www-user.

Preferably AjaxPlorer should be tied to the 'nfs' user instead, since Samba and NFS by default are tied to that user account (uid=1000). This will make sure that files uploaded using AjaxPlorer are writable by Samba users.

If there's a better way of handling local file permissions for both AjaxPlorer and ZFSguru, to replace the current sudo solution, then I'm all ears. :-)
FireDrunk
User

15 posts

Posted on 20 November 2011 @ 22:56
Perhaps a separate user for zfsguru would be best. Because ZFSguru doesn't need privileges by itself, but only sudo rights on specific zfs commands. Perhaps it should be wise to create a whitelist of commands that zfsguru needs in order to create a sudo list of commands the zfsguru user would be able to use. Same goes for the user that ajaxplorer will use. It doesn't need to act interactively with the system (to my knowledge) just for the purpose of file creation. So perhaps it's best to create a filegroup that has the nfs, smb and ajaxplorers in it, and create all files with that group as it's owner. This way, all software can read these files, but the users that run all the software cannot compromise the system.

I think this way is best, because if (in some weird scenario) the zfsguru user would be compromised thru the webinterface, it's no problem, because it would only be able to connect to your system. Perhaps the checkbox to allow destruction of the pool, should be protected with the systems root password.

In that way, when your system get's compromised, it could only alter settings of your system, but not destroy your data. On the other hand, if it has write access, it could just delete everything on your harddisk :-)

Mayby this item needs more thought.. :)
Jason
Developer

806 posts

Posted on 23 November 2011 @ 18:44edited 18:46 01s
I've looked at AjaxPlorer and spent some time on it. Integrating AjaxPlorer properly into ZFSguru proved to be reasonably easy, though some code changes to ZFSguru were required.

I currently integrated AjaxPlorer with the following features:
  • allows AjaxPlorer as a service addon, fallback to default file browser when absent
  • skips the initial testing that AjaxPlorer performs
  • disables the login procedure of AjaxPlorer (always logged in)
  • uses ZFSguru authentication so AjaxPlorer posts no security threat; uses same IP-based and password authentication that ZFSguru uses
  • automatically creates repositories for all pools present on the system, for easy access to pool data (instead of just directed to the root / filesystem)
  • customized loading screen with ZFSguru and logo

So far I'm pretty happy about the integration. The service addon will not work on 0.1.9 though; but soon I'll release a 0.2 alpha version that features AjaxPlorer functionality. LiveCDs will have AjaxPlorer integrated by default.

Currently there are two problems left:
  • file permissions: cannot change/modify/overwrite existing files because AjaxPlorer only has 'www' user privileges
  • license issue: version 3.2.4 uses LGPL license which is good; but starting with 3.3.x, AjaxPlorer uses AGPL license which is unusable
MrWho
User

10 posts

Posted on 27 November 2011 @ 23:36
Since i see an "logged in as admin" in AjaxPlorer,

will there be an usermanagement in the near future?

At the moment ZFSguru does not offer any user management GUI and without that no file/folder permission settings.
JohnBrophy
User

2 posts

Posted on 22 September 2018 @ 11:08
Until we make a institute to make the possible of the plans that develop the city and country also as well the last of the dazzle. Grades of the developers with grademiners reviews page can show us the projects with quantity of the cost also.
Last Page

Valid XHTML 1.1