Difference between revisions of "Pydio"
m (→Office file preview and inexation: Added note about DAG repo) |
Unnilennium (talk | contribs) |
||
(25 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | {{Languages}} | + | {{Languages|Pydio}} |
− | + | {{usefulnote}} | |
===Maintainer=== | ===Maintainer=== | ||
− | [[User:VIP-ire|Daniel B.]]<br/> | + | [[User:VIP-ire|Daniel B.]]<br /> |
− | [http://www.firewall-services.com Firewall Services]<br> | + | [http://www.firewall-services.com Firewall Services]<br /> |
mailto:daniel@firewall-services.com | mailto:daniel@firewall-services.com | ||
− | + | === Version === | |
+ | SME9 available on Firewall service repo. | ||
+ | {{#smeversion: smeserver-pydio }} | ||
+ | [[Version::contrib9|fws]][[Has SME9::true| ]] | ||
=== Description === | === Description === | ||
Line 18: | Line 21: | ||
=== Installation === | === Installation === | ||
− | Configure Firewall-Services | + | Configure Firewall-Services's and EPEL repositories: |
+ | {{:Fws}} | ||
+ | |||
+ | {{:Epel|transcludesection=Generic}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
signal-event yum-modify | signal-event yum-modify | ||
*install the rpms | *install the rpms | ||
− | yum --enablerepo=fws | + | yum --enablerepo=fws --enablerepo=epel --enablerepo=smecontribs install smeserver-pydio |
* Restart the services | * Restart the services | ||
Line 57: | Line 39: | ||
Each user will only see shares to which they have access. | Each user will only see shares to which they have access. | ||
Permissions set through the server-manager will apply on Pydio (same as samba) | Permissions set through the server-manager will apply on Pydio (same as samba) | ||
+ | |||
+ | {{Note box|msg=You may see the error below in your web browser | ||
+ | <tree> | ||
+ | <message type="ERROR">Invalid argument supplied for foreach()</message> | ||
+ | </tree> | ||
+ | This error seems to indicate you don't have a shared folder with Pydio access enabled (or you logged on Pydio interface before enabling Pydio access on a Shared Folder) : | ||
+ | |||
+ | - To create a Shared Folder, be sure Pydio access is enabled<br /> | ||
+ | |||
+ | - Then run signal-event webapps-update (it will close all active sessions)<br /> | ||
+ | |||
+ | Then try again to access Pydio interface}} | ||
=== Additional options === | === Additional options === | ||
Some settings are available from the DB, in the pydio entry | Some settings are available from the DB, in the pydio entry | ||
− | + | * '''AdminInterface''': activate the setting interface that is disabled by default. 'enabled' to activate. You will then have to edit the /var/lib/pydio/plugins/auth.serial/admin/rights.ser file to change the "ajxp.admin";b:0 to"ajxp.admin";b:1 ( or any user you want to access).Be careful changes done with the setting panel might be erased by sme events ( unless using ManualConf enabled) | |
+ | * '''ManualConf''': if set to '''enabled''' will avoid to update configuration. usefull if you want to handle yourself the settings. However you won't have new share folder integrated in your configuration. | ||
* '''Authentication''': Control the way users are authenticated. Correct values are '''http''' (apache protects the access, users need to login with their own credentials), or '''LemonLDAP''' which uses [[LemonLDAP-NG]] to grant access to the application | * '''Authentication''': Control the way users are authenticated. Correct values are '''http''' (apache protects the access, users need to login with their own credentials), or '''LemonLDAP''' which uses [[LemonLDAP-NG]] to grant access to the application | ||
* '''AliasOnPrimary''': can be enabled or disabled (default is enabled). This prop lets you disable the access to Pydio on your primary domain (the alias /pydio won't be added in apache configuration). This is useful if you want the application to be available only with a virtualhost. | * '''AliasOnPrimary''': can be enabled or disabled (default is enabled). This prop lets you disable the access to Pydio on your primary domain (the alias /pydio won't be added in apache configuration). This is useful if you want the application to be available only with a virtualhost. | ||
Line 70: | Line 65: | ||
* '''MaxUploadSize''': Restrict the file size which can be uploaded (default is 200M) | * '''MaxUploadSize''': Restrict the file size which can be uploaded (default is 200M) | ||
* '''PublicShares''': can be enabled or disabled (default is enabled). Control if users can share individual files publicly (with or without a password) | * '''PublicShares''': can be enabled or disabled (default is enabled). Control if users can share individual files publicly (with or without a password) | ||
+ | * '''LogoutURL''': redirect users to any page you want when they click on disconnect. | ||
* '''Metastore''': can be serial or xattr (default is serial): control the way metedata are stored. With serial, metadata are stored in PHP serialized files in /var/lib/pydio/plugins/metastore.serial/. It'll always work, but the problem is that if you move or rename a file through samba, the metadata will be lost (because Pydio can't notice this). This won't happen if you set this to xattr, because metadata will be stored on the filesystem, using extended user xattr. For this to work, you have to mount your filesystem where shared folders are stored with the user_xattr option | * '''Metastore''': can be serial or xattr (default is serial): control the way metedata are stored. With serial, metadata are stored in PHP serialized files in /var/lib/pydio/plugins/metastore.serial/. It'll always work, but the problem is that if you move or rename a file through samba, the metadata will be lost (because Pydio can't notice this). This won't happen if you set this to xattr, because metadata will be stored on the filesystem, using extended user xattr. For this to work, you have to mount your filesystem where shared folders are stored with the user_xattr option | ||
− | * '''Indexer''': can be enabled or disabled (default is | + | * '''Indexer''': can be enabled or disabled (default is disabled): control the indexer process globally. If disabled, only the shares which explicitly have PydioIndexer enabled will be indexed. If enabled, all the shares, except those which have PydioIndexer disabled will be indexed. |
example: | example: | ||
Line 78: | Line 74: | ||
Some settings are also available on a per shared folder basis: | Some settings are also available on a per shared folder basis: | ||
− | * '''PydioIndexer''': can be enabled or disabled (default is enabled): control if the content of this share will be indexed each night by Pydio (so you can then search for key word, Pydio will provide very fast result and can also index some file content). The indexation can be resource intensive (especially if you install smeserver-ooo-headless, see below), so if you're not interested, you can disable it for a few shares | + | * '''PydioIndexer''': can be enabled or disabled (default is enabled): control if the content of this share will be indexed each night by Pydio (so you can then search for key word, Pydio will provide very fast result and can also index some file content). The indexation can be resource intensive (especially if you install smeserver-ooo-headless, see below), so if you're not interested, you can disable it for a few shares. |
+ | * '''PydioIndexContent''' can be enabled or disabled, and is ignored if this share is not indexed. If enabled, the content of the files will be extracted and indexed (txt, html, PDF, even Office documents if smeserver-ooo is available). Indexing content can be time consuming. If disabled, index will only be built on the names of the files and directories. | ||
* '''PydioHistory''': can be enabled or disabled (default is disabled), this should only be turned on on a newly created share. If enabled, git will be used on the shared folder to track each modification. Each revision will be browseable, and you can revert every change you want. If you enable this, you should not enable other access to this shared folder (samba or webdav) as only access through Pydio will handle commits on file modification. You should also be aware that GIT is not very scalable for huge file. For example, you shouldn't enable this option if you store big multimedia files | * '''PydioHistory''': can be enabled or disabled (default is disabled), this should only be turned on on a newly created share. If enabled, git will be used on the shared folder to track each modification. Each revision will be browseable, and you can revert every change you want. If you enable this, you should not enable other access to this shared folder (samba or webdav) as only access through Pydio will handle commits on file modification. You should also be aware that GIT is not very scalable for huge file. For example, you shouldn't enable this option if you store big multimedia files | ||
+ | * '''user's home access''' | ||
+ | If you want your users can access to their home with Pydio (only in read only mode) | ||
+ | db configuration setprop pydio HomeDir enabled | ||
+ | signal-event webapps-update | ||
+ | |||
+ | === Locale settings=== | ||
+ | |||
+ | in case of problem with your locale (XML problem) you can tweak the file /etc/pydio/bootstrap_conf.php and add your locale. By default the sme server locale is ISO-8859-1<br /> | ||
+ | |||
+ | for example this is what you need to add for French language | ||
+ | define("AJXP_LOCALE", "fr_FR.ISO-8859-1"); | ||
=== Integration with LemonLDAP::NG === | === Integration with LemonLDAP::NG === | ||
Line 109: | Line 117: | ||
* Rule: $groups =~ /\bwebexchange\b/ | * Rule: $groups =~ /\bwebexchange\b/ | ||
− | === Office file preview and | + | === Office file preview and indexation === |
− | You can generate previews for office documents (doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp etc...) in Pydio, and even index their content. For this to work, you need to install OpenOffice on your server in headless mode. This will install a lot of dependancies, so it's not installed automatically. If you want to add support for this, just run the below code. The DAG repository has be available to resolve dependencies. See [[Dag]]. | + | You can generate previews for office documents (doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp etc...) in Pydio, and even index their content. For this to work, you need to install OpenOffice on your server in headless mode. This will install a lot of dependancies, so it's not installed automatically. If you want to add support for this, just run the below code. The DAG repository has to be available to resolve dependencies. See [[Dag]]. |
yum --enablerepo=fws --enablerepo=dag install smeserver-ooo-headless | yum --enablerepo=fws --enablerepo=dag install smeserver-ooo-headless | ||
Line 123: | Line 131: | ||
=== Source === | === Source === | ||
The source for this contrib can be found in Firewall-Services's repository [http://repo.firewall-services.com/centos/5/SRPMS/]. You can also browse the source [http://gitweb.firewall-services.com/?p=smeserver-pydio;a=summary here] | The source for this contrib can be found in Firewall-Services's repository [http://repo.firewall-services.com/centos/5/SRPMS/]. You can also browse the source [http://gitweb.firewall-services.com/?p=smeserver-pydio;a=summary here] | ||
+ | |||
+ | === Bugs === | ||
+ | Please raise bugs under the SME-Contribs section in [http://bugs.contribs.org/enter_bug.cgi bugzilla] | ||
+ | and select the smeserver-pydio component or use {{BugzillaFileBug|product=SME%20Contribs|component=smeserver-pydio|title=this link}} | ||
+ | |||
+ | |||
+ | {{#bugzilla:columns=id,product,version,status,summary |sort=id |order=desc |component=smeserver-pydio|noresultsmessage="No open bugs found."}} | ||
+ | |||
+ | === Installing Pydio 6 in an ibay on v9 from source === | ||
+ | |||
+ | {{Note box|msg=Use at your own risk - usual caveats apply. Needs testing}} | ||
+ | |||
+ | Go to http://sourceforge.net/projects/ajaxplorer/files/pydio/stable-channel/6.0.7/ and download pydio-core-6.0.7.tar.gz | ||
+ | |||
+ | I use 7zip to untar the file and then scp to copy the files into an ibay. | ||
+ | |||
+ | I created an ibay named pydio | ||
+ | |||
+ | chown -R admin:www /home/e-smith/files/ibays/pydio/html | ||
+ | |||
+ | Change the access on data and its subdirectories to 775 | ||
+ | |||
+ | db accounts setprop pydio \ | ||
+ | AllowOverride All \ | ||
+ | FollowSymLinks enabled \ | ||
+ | Group www \ | ||
+ | PHPBaseDir /home/e-smith/files/ibays/pydio/html/:/tmp/ \ | ||
+ | PublicAccess global \ | ||
+ | UserAccess wr-group-rd-everyone | ||
+ | |||
+ | signal-event ibay-modify pydio | ||
+ | |||
+ | /sbin/e-smith/db yum_repositories set rpmforge repository \ | ||
+ | Name 'Dag - EL6' \ | ||
+ | BaseURL 'http://apt.sw.be/redhat/el6/en/$basearch/dag' \ | ||
+ | EnableGroups no \ | ||
+ | GPGCheck yes \ | ||
+ | GPGKey http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt \ | ||
+ | Visible no \ | ||
+ | Exclude freetype,htop,iptraf,rsync,syslinux \ | ||
+ | status disabled | ||
+ | |||
+ | /sbin/e-smith/db yum_repositories set epel repository \ | ||
+ | Name 'Epel - EL6' \ | ||
+ | BaseUrl 'http://download.fedoraproject.org/pub/epel/6/$basearch' \ | ||
+ | MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch' \ | ||
+ | EnableGroups no \ | ||
+ | GPGCheck yes \ | ||
+ | GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \ | ||
+ | Visible no \ | ||
+ | status disabled | ||
+ | |||
+ | yum --enablerepo=epel install php-mcrypt | ||
+ | |||
+ | Create a mysql DB for Pydio | ||
+ | |||
+ | Log into the server as root using putty. | ||
+ | Issue the following commands changing the values to suit you needs. | ||
+ | # mysqladmin create (database name) | ||
+ | # mysql | ||
+ | mysql> grant all on pydio.* to pydioadmin@localhost identified by '(password)'; | ||
+ | mysql> flush privileges; | ||
+ | mysql> \q | ||
+ | |||
+ | Open /home/e-smith/files/ibays/pydio/html/conf/bootstrap_conf.php and change line 43 to define("AJXP_TMP_DIR", AJXP_DATA_PATH."/tmp"); | ||
+ | |||
+ | At this stage if you go to https://ip of server/pydio you should still see the following error "Server charset encoding | ||
+ | warning" it is now fine to proceed with the install by clicking the link "click here to continue to Pydio." | ||
+ | |||
+ | Follow the instructions in the wizard to set up pydio. | ||
+ | |||
+ | Thunderbird plugin | ||
+ | |||
+ | https://pyd.io/apps/thunderbird-file-link/ | ||
+ | |||
+ | Pydio plugins | ||
+ | |||
+ | https://pyd.io/plugins/ | ||
---- | ---- | ||
− | [[Category: | + | [[Category:Deprecated_Contrib]] |
+ | [[Category: Webapps]] |
Latest revision as of 05:44, 24 February 2022
Is this article helpful to you?
Please consider donating or volunteering
Thank you!
Maintainer
Daniel B.
Firewall Services
mailto:daniel@firewall-services.com
Version
SME9 available on Firewall service repo.
fws
Description
Pydio is a web based file manager, formerly known as AjaXplorer. You can take a look at the online demo (use demo as login and password). This contrib integrate Pydio with the SharedFolders contrib. If Pydio is installed, you'll see a new option in the configuration of shared folders asking you if you want to enable access to this shared folders through Pydio.
Requirement
This contrib has been developped and tested on SME Server 8 and later. It probably won't work on SME 7.
Installation
Configure Firewall-Services's and EPEL repositories:
db yum_repositories set fws repository \ BaseURL http://repo.firewall-services.com/centos/\$releasever \ EnableGroups no GPGCheck yes \ Name "Firewall Services" \ GPGKey http://repo.firewall-services.com/RPM-GPG-KEY \ Visible no status disabled
db yum_repositories set fws-testing repository \ BaseURL http://repo.firewall-services.com/centos-testing/\$releasever \ EnableGroups no GPGCheck yes \ Name "Firewall Services Testing" \ GPGKey http://repo.firewall-services.com/RPM-GPG-KEY \ Visible no status disabled
yum install smeserver-extrarepositories-epel -y
signal-event yum-modify
- install the rpms
yum --enablerepo=fws --enablerepo=epel --enablerepo=smecontribs install smeserver-pydio
- Restart the services
signal-event webapps-update
Now you should go in the server-manager, and modify an existing share (or create a new one), with Pydio access enabled. Then, you can access the application using this URL: https://your-server.domain.tld/pydio Each user will only see shares to which they have access. Permissions set through the server-manager will apply on Pydio (same as samba)
Additional options
Some settings are available from the DB, in the pydio entry
- AdminInterface: activate the setting interface that is disabled by default. 'enabled' to activate. You will then have to edit the /var/lib/pydio/plugins/auth.serial/admin/rights.ser file to change the "ajxp.admin";b:0 to"ajxp.admin";b:1 ( or any user you want to access).Be careful changes done with the setting panel might be erased by sme events ( unless using ManualConf enabled)
- ManualConf: if set to enabled will avoid to update configuration. usefull if you want to handle yourself the settings. However you won't have new share folder integrated in your configuration.
- Authentication: Control the way users are authenticated. Correct values are http (apache protects the access, users need to login with their own credentials), or LemonLDAP which uses LemonLDAP-NG to grant access to the application
- AliasOnPrimary: can be enabled or disabled (default is enabled). This prop lets you disable the access to Pydio on your primary domain (the alias /pydio won't be added in apache configuration). This is useful if you want the application to be available only with a virtualhost.
- access: can be public or private (default is private). Control if /pydio is available only from local networks or from the Internet.
- Title: Will be used as the title of the web page (default is Ajaxplorer)
- WelcomMessage: Can be set to a message which will be displayed while the application is loading
- DefaultLanguage: With this prop, you can set the default language for all users (you can see the list of valid languages in /usr/share/pydio/client/i18n/)
- MaxUploadSize: Restrict the file size which can be uploaded (default is 200M)
- PublicShares: can be enabled or disabled (default is enabled). Control if users can share individual files publicly (with or without a password)
- LogoutURL: redirect users to any page you want when they click on disconnect.
- Metastore: can be serial or xattr (default is serial): control the way metedata are stored. With serial, metadata are stored in PHP serialized files in /var/lib/pydio/plugins/metastore.serial/. It'll always work, but the problem is that if you move or rename a file through samba, the metadata will be lost (because Pydio can't notice this). This won't happen if you set this to xattr, because metadata will be stored on the filesystem, using extended user xattr. For this to work, you have to mount your filesystem where shared folders are stored with the user_xattr option
- Indexer: can be enabled or disabled (default is disabled): control the indexer process globally. If disabled, only the shares which explicitly have PydioIndexer enabled will be indexed. If enabled, all the shares, except those which have PydioIndexer disabled will be indexed.
example:
db configuration setprop pydio access public Title 'My own web based file manager' WelcomMessage 'Powered by SME Server' DefaultLanguage fr MaxUploadSize 500M signal-event webapps-update
Some settings are also available on a per shared folder basis:
- PydioIndexer: can be enabled or disabled (default is enabled): control if the content of this share will be indexed each night by Pydio (so you can then search for key word, Pydio will provide very fast result and can also index some file content). The indexation can be resource intensive (especially if you install smeserver-ooo-headless, see below), so if you're not interested, you can disable it for a few shares.
- PydioIndexContent can be enabled or disabled, and is ignored if this share is not indexed. If enabled, the content of the files will be extracted and indexed (txt, html, PDF, even Office documents if smeserver-ooo is available). Indexing content can be time consuming. If disabled, index will only be built on the names of the files and directories.
- PydioHistory: can be enabled or disabled (default is disabled), this should only be turned on on a newly created share. If enabled, git will be used on the shared folder to track each modification. Each revision will be browseable, and you can revert every change you want. If you enable this, you should not enable other access to this shared folder (samba or webdav) as only access through Pydio will handle commits on file modification. You should also be aware that GIT is not very scalable for huge file. For example, you shouldn't enable this option if you store big multimedia files
- user's home access
If you want your users can access to their home with Pydio (only in read only mode)
db configuration setprop pydio HomeDir enabled signal-event webapps-update
Locale settings
in case of problem with your locale (XML problem) you can tweak the file /etc/pydio/bootstrap_conf.php and add your locale. By default the sme server locale is ISO-8859-1
for example this is what you need to add for French language
define("AJXP_LOCALE", "fr_FR.ISO-8859-1");
Integration with LemonLDAP::NG
Pydio can be protected by LemonLDAP::NG. Here're the steps to protect it
Disable the access on the primary domain
You should disable the access to Pydio on your primary domain:
db configuration setprop pydio AliasOnPrimary disabled signal-event webapps-update
Enable LemonLDAP::NG integration
This contrib support LemonLDAP NG auth quite easily:
db configuration setprop pydio Authentication LemonLDAP signal-event webapps-update
Create a new virtualhost for Pydio
Lets create a new virtualhost for Pydio. You can choose the name you want, for example, lets create exchange.domain.tld:
db domains set exchange.$(db configuration get DomainName) domain Content Primary Description 'Pydio' \ DocumentRoot /usr/share/pydio Nameservers internet TemplatePath WebAppVirtualHost \ LemonLDAP enabled signal-event domain-create exchange.$(db configuration get DomainName) signal-event webapps-update
Declare this virtualhost in LemonLDAP
You can now create the virtualhost in LemonLDAP management interface. You can create the rules you want. For example, here're the rules to accept only members of the group 'webexchange'
- Comment: default
- Rule: $groups =~ /\bwebexchange\b/
Office file preview and indexation
You can generate previews for office documents (doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp etc...) in Pydio, and even index their content. For this to work, you need to install OpenOffice on your server in headless mode. This will install a lot of dependancies, so it's not installed automatically. If you want to add support for this, just run the below code. The DAG repository has to be available to resolve dependencies. See Dag.
yum --enablerepo=fws --enablerepo=dag install smeserver-ooo-headless signal-event webapps-update sv u /service/ooo
Uninstall
If you want to remove the contrib, just run:
yum remove pydio
Source
The source for this contrib can be found in Firewall-Services's repository [1]. You can also browse the source here
Bugs
Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-pydio component or use this link
Installing Pydio 6 in an ibay on v9 from source
Go to http://sourceforge.net/projects/ajaxplorer/files/pydio/stable-channel/6.0.7/ and download pydio-core-6.0.7.tar.gz
I use 7zip to untar the file and then scp to copy the files into an ibay.
I created an ibay named pydio
chown -R admin:www /home/e-smith/files/ibays/pydio/html
Change the access on data and its subdirectories to 775
db accounts setprop pydio \ AllowOverride All \ FollowSymLinks enabled \ Group www \ PHPBaseDir /home/e-smith/files/ibays/pydio/html/:/tmp/ \ PublicAccess global \ UserAccess wr-group-rd-everyone
signal-event ibay-modify pydio
/sbin/e-smith/db yum_repositories set rpmforge repository \ Name 'Dag - EL6' \ BaseURL 'http://apt.sw.be/redhat/el6/en/$basearch/dag' \ EnableGroups no \ GPGCheck yes \ GPGKey http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt \ Visible no \ Exclude freetype,htop,iptraf,rsync,syslinux \ status disabled
/sbin/e-smith/db yum_repositories set epel repository \ Name 'Epel - EL6' \ BaseUrl 'http://download.fedoraproject.org/pub/epel/6/$basearch' \ MirrorList 'http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch' \ EnableGroups no \ GPGCheck yes \ GPGKey http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL \ Visible no \ status disabled
yum --enablerepo=epel install php-mcrypt
Create a mysql DB for Pydio
Log into the server as root using putty. Issue the following commands changing the values to suit you needs.
- mysqladmin create (database name)
- mysql
mysql> grant all on pydio.* to pydioadmin@localhost identified by '(password)'; mysql> flush privileges; mysql> \q
Open /home/e-smith/files/ibays/pydio/html/conf/bootstrap_conf.php and change line 43 to define("AJXP_TMP_DIR", AJXP_DATA_PATH."/tmp");
At this stage if you go to https://ip of server/pydio you should still see the following error "Server charset encoding warning" it is now fine to proceed with the install by clicking the link "click here to continue to Pydio."
Follow the instructions in the wizard to set up pydio.
Thunderbird plugin
https://pyd.io/apps/thunderbird-file-link/
Pydio plugins