Difference between revisions of "OpenUpload"

From SME Server
Jump to navigationJump to search
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Languages}}
 
{{Languages}}
 
+
{{Warning box|Openupload has not been maintained by their developers since 2010.
 +
This is deprecated and should not be use anymore.
 +
}}
 +
[[Version::Deprecated| ]]
 +
[[Category:Contrib Deprecated]]
  
 
===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
  
  
=== Description ===
+
===Description===
  
 
[http://openupload.sourceforge.net/ Open Upload] is a PHP application to create a private / public file download server similar to MegaUpload or RapidShare.
 
[http://openupload.sourceforge.net/ Open Upload] is a PHP application to create a private / public file download server similar to MegaUpload or RapidShare.
  
=== Requirement ===
+
===Requirement===
  
 
This contrib has been developped and tested on SME Server 8b5 and later. It probably won't work on SME 7.
 
This contrib has been developped and tested on SME Server 8b5 and later. It probably won't work on SME 7.
  
=== Installation 8.x and 9.x===
+
===Installation 8.x and 9.x===
  
 
Configure Firewall-Services's repository:
 
Configure Firewall-Services's repository:
Line 38: Line 42:
 
  yum --enablerepo=fws install smeserver-openupload
 
  yum --enablerepo=fws install smeserver-openupload
  
* Appply the needed configuration:
+
*Appply the needed configuration:
  
 
  db configuration setprop openupload Authentication ldap
 
  db configuration setprop openupload Authentication ldap
Line 44: Line 48:
 
  db configuration set UnsavedChanges no
 
  db configuration set UnsavedChanges no
  
* Create a group (using the server-manager) called 'admins'. All the members of this group will have admin privileges in OpenUpload. Once you're logged in, you can change ACL if you want to use another group name for administrative tasks.
+
*Create a group (using the server-manager) called 'admins'. All the members of this group will have admin privileges in OpenUpload. Once you're logged in, you can change ACL if you want to use another group name for administrative tasks.
  
 
You can now access the application using this URL: https://your-server.domain.tld/openupload
 
You can now access the application using this URL: https://your-server.domain.tld/openupload
  
=== Additional options ===
+
===Additional options===
  
 
Some settings are available from the DB
 
Some settings are available from the DB
  
* '''Authentication''': Control the way users are authenticated. Correct values are '''ldap''' (uses the local LDAP server as backend for users and groups), '''imap''' (uses your local IMAP server to validate credentials, and the internal database to store user and groups informations, users are created automatically on first login), '''internal''' (uses the internal database to manage users and groups. An admin have to create user account befor they can login). If you use the internal authentication mechanisme, you need to login using admin/admin. a last value is available for this prop: '''LemonLDAP''' which uses [[LemonLDAP-NG]] to validate credentials, and the internal ldap server do get user/group information. You can have more information on this later on this page.
+
*'''Authentication''': Control the way users are authenticated. Correct values are '''ldap''' (uses the local LDAP server as backend for users and groups), '''imap''' (uses your local IMAP server to validate credentials, and the internal database to store user and groups informations, users are created automatically on first login), '''internal''' (uses the internal database to manage users and groups. An admin have to create user account befor they can login). If you use the internal authentication mechanisme, you need to login using admin/admin. a last value is available for this prop: '''LemonLDAP''' which uses [[LemonLDAP-NG]] to validate credentials, and the internal ldap server do get user/group information. You can have more information on this later on this page.
* '''RequireSSL''': Should users accessing Open Upload should be redirected to a secured address ? Correct values are '''yes''' (always redirect to https://), '''no''': allow unsecured connections, or '''login''': only redirect to https when user try to login. This allow to protect passwords when users log into the application, but let downloads run over un-protected connections (might be usefull if you use a self-signed certificate)
+
*'''RequireSSL''': Should users accessing Open Upload should be redirected to a secured address ? Correct values are '''yes''' (always redirect to https://), '''no''': allow unsecured connections, or '''login''': only redirect to https when user try to login. This allow to protect passwords when users log into the application, but let downloads run over un-protected connections (might be usefull if you use a self-signed certificate)
* '''MaxUpload''': the maximum number of files sent in one run
+
*'''MaxUpload''': the maximum number of files sent in one run
* '''MaxUploadSize''': the maximum size allowed per file (in MegaBytes)
+
*'''MaxUploadSize''': the maximum size allowed per file (in MegaBytes)
* '''AliasOnPrimary''': can be enabled or disabled (default is enabled). This prop lets you disable the access to Open Upload on your primary domain (the alias /openupload won't be added in apache configuration). This is usefull 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 Open Upload on your primary domain (the alias /openupload won't be added in apache configuration). This is usefull if you want the application to be available only with a virtualhost.
  
  
Line 63: Line 67:
 
  signal-event webapps-update
 
  signal-event webapps-update
  
=== Intergration with LemonLDAP::NG ===
+
===Intergration with LemonLDAP::NG===
 
OpenUpload can be protected by LemonLDAP::NG. Here're the steps to protect it
 
OpenUpload can be protected by LemonLDAP::NG. Here're the steps to protect it
  
==== Disable the access on the primary domain ====
+
====Disable the access on the primary domain====
 
You should disable the access to Open Upload on your primary domain:
 
You should disable the access to Open Upload on your primary domain:
 
  db configuration setprop openupload AliasOnPrimary disabled
 
  db configuration setprop openupload AliasOnPrimary disabled
 
  signal-event webapps-update
 
  signal-event webapps-update
  
==== Enable LemonLDAP::NG integration ====
+
====Enable LemonLDAP::NG integration====
 
This contrib support LemonLDAP NG auth quite easily:
 
This contrib support LemonLDAP NG auth quite easily:
 
  db configuration setprop openupload Authentication LemonLDAP
 
  db configuration setprop openupload Authentication LemonLDAP
 
  signal-event webapps-update
 
  signal-event webapps-update
  
==== Create a new virtualhost for Open Upload ====
+
====Create a new virtualhost for Open Upload====
 
Lets create a new virtualhost for Open Upload. You can choose the name you want, for example, lets create upload.domain.tld:
 
Lets create a new virtualhost for Open Upload. You can choose the name you want, for example, lets create upload.domain.tld:
  
Line 96: Line 100:
 
  signal-event webapps-update
 
  signal-event webapps-update
  
==== Declare this virtualhost in LemonLDAP ====
+
====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 you can use to let everyone (unauthenticated users) download files, and let LemonLDAP::NG validate credentials of users trying to login:
 
You can now create the virtualhost in LemonLDAP management interface. You can create the rules you want. For example, here're the rules you can use to let everyone (unauthenticated users) download files, and let LemonLDAP::NG validate credentials of users trying to login:
  
* Comment: 01deny_double_action
+
*Comment: 01deny_double_action
* Expression: (a|action)=.*(a|action)=.*
+
*Expression: (a|action)=.*(a|action)=.*
* Rule: deny
+
*Rule: deny
  
  
* 10unprotect_dl
+
*10unprotect_dl
* Expression: (a|action)=[dgr]
+
*Expression: (a|action)=[dgr]
* Rule: unprotect
+
*Rule: unprotect
  
  
* 12unprotect_templates
+
*12unprotect_templates
* Expression: ^/templates/
+
*Expression: ^/templates/
* Rule: unprotect
+
*Rule: unprotect
  
  
* 13unprotect_captcha
+
*13unprotect_captcha
* Expression: ^/plugins/captcha\.php
+
*Expression: ^/plugins/captcha\.php
* Rule: unprotect
+
*Rule: unprotect
  
  
* 14unprotect_index
+
*14unprotect_index
* Expression: ^/index.php$
+
*Expression: ^/index.php$
* Rule: unprotect
+
*Rule: unprotect
  
  
* 20logout
+
*20logout
* Expression: (a|action)=logout
+
*Expression: (a|action)=logout
* Rule: logout_app
+
*Rule: logout_app
  
  
* 21login
+
*21login
* Expression: (a|action)=login
+
*Expression: (a|action)=login
* Rule: logout_app https://upload.domain.tld/
+
*Rule: logout_app https://upload.domain.tld/
  
=== Backup and Restore ===
+
===Backup and Restore===
 
You should backup the directory /var/lib/openupload, which is used to store uploaded files.
 
You should backup the directory /var/lib/openupload, which is used to store uploaded files.
  
=== Uninstall ===
+
===Uninstall===
 
If you want to remove the contrib, just run:
 
If you want to remove the contrib, just run:
 
  yum remove openupload
 
  yum remove openupload
Line 142: Line 146:
 
You can manually remove file in /var/lib/openupload and /usr/share/openupload if you want to remove all files used by Open Upload
 
You can manually remove file in /var/lib/openupload and /usr/share/openupload if you want to remove all files used by Open Upload
  
=== Source ===
+
===Source===
 
The source for this contrib can be found in Firewall-Services's repository [http://gitweb.firewall-services.com/?p=smeserver-openupload;a=summary].
 
The source for this contrib can be found in Firewall-Services's repository [http://gitweb.firewall-services.com/?p=smeserver-openupload;a=summary].
  

Revision as of 20:04, 24 February 2021


Warning.png Warning:
Openupload has not been maintained by their developers since 2010.

This is deprecated and should not be use anymore.


Maintainer

Daniel B.
Firewall Services
mailto:daniel@firewall-services.com


Description

Open Upload is a PHP application to create a private / public file download server similar to MegaUpload or RapidShare.

Requirement

This contrib has been developped and tested on SME Server 8b5 and later. It probably won't work on SME 7.

Installation 8.x and 9.x

Configure Firewall-Services's repository:

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 yes status disabled
signal-event yum-modify
  • install the rpms


Important.png Note:
OpenUpload requires e-smith-base 5.2.0-56 or later. For now, this release is only available in smeupdates-testing repository. To get it, you need to run
yum --enablerepo smeupdates-testing update e-smith-base e-smith-ldap
signal-event post-upgrade signal-event reboot

Note that those packages are not well tested yet, and you might find bugs. You are warned


yum --enablerepo=fws install smeserver-openupload
  • Appply the needed configuration:
db configuration setprop openupload Authentication ldap
signal-event webapps-update
db configuration set UnsavedChanges no
  • Create a group (using the server-manager) called 'admins'. All the members of this group will have admin privileges in OpenUpload. Once you're logged in, you can change ACL if you want to use another group name for administrative tasks.

You can now access the application using this URL: https://your-server.domain.tld/openupload

Additional options

Some settings are available from the DB

  • Authentication: Control the way users are authenticated. Correct values are ldap (uses the local LDAP server as backend for users and groups), imap (uses your local IMAP server to validate credentials, and the internal database to store user and groups informations, users are created automatically on first login), internal (uses the internal database to manage users and groups. An admin have to create user account befor they can login). If you use the internal authentication mechanisme, you need to login using admin/admin. a last value is available for this prop: LemonLDAP which uses LemonLDAP-NG to validate credentials, and the internal ldap server do get user/group information. You can have more information on this later on this page.
  • RequireSSL: Should users accessing Open Upload should be redirected to a secured address ? Correct values are yes (always redirect to https://), no: allow unsecured connections, or login: only redirect to https when user try to login. This allow to protect passwords when users log into the application, but let downloads run over un-protected connections (might be usefull if you use a self-signed certificate)
  • MaxUpload: the maximum number of files sent in one run
  • MaxUploadSize: the maximum size allowed per file (in MegaBytes)
  • AliasOnPrimary: can be enabled or disabled (default is enabled). This prop lets you disable the access to Open Upload on your primary domain (the alias /openupload won't be added in apache configuration). This is usefull if you want the application to be available only with a virtualhost.


example:

db configuration setprop openupload RequireSSL login MaxUpload 10 MaxUploadSize 750
signal-event webapps-update

Intergration with LemonLDAP::NG

OpenUpload 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 Open Upload on your primary domain:

db configuration setprop openupload AliasOnPrimary disabled
signal-event webapps-update

Enable LemonLDAP::NG integration

This contrib support LemonLDAP NG auth quite easily:

db configuration setprop openupload Authentication LemonLDAP
signal-event webapps-update

Create a new virtualhost for Open Upload

Lets create a new virtualhost for Open Upload. You can choose the name you want, for example, lets create upload.domain.tld:

db domains set upload.$(db configuration get DomainName) domain Content Primary Description 'Open Upload' \
DocumentRoot /usr/share/openupload/www/ Nameservers internet TemplatePath WebAppVirtualHost \
LemonLDAP enabled
signal-event domain-create upload.$(db configuration get DomainName)
mkdir -p /etc/e-smith/templates-custom/usr/share/openupload/www/config.inc.php/
cat <<'EOF' > /etc/e-smith/templates-custom/usr/share/openupload/www/config.inc.php/10paths

$CONFIG['WWW_SERVER'] = 'http://upload.{"$DomainName";}';

$CONFIG['WWW_ROOT'] = '/';

$CONFIG['INSTALL_ROOT'] = '/usr/share/openupload/';

$CONFIG['DATA_PATH'] = '/var/lib/openupload';
EOF
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 you can use to let everyone (unauthenticated users) download files, and let LemonLDAP::NG validate credentials of users trying to login:

  • Comment: 01deny_double_action
  • Expression: (a|action)=.*(a|action)=.*
  • Rule: deny


  • 10unprotect_dl
  • Expression: (a|action)=[dgr]
  • Rule: unprotect


  • 12unprotect_templates
  • Expression: ^/templates/
  • Rule: unprotect


  • 13unprotect_captcha
  • Expression: ^/plugins/captcha\.php
  • Rule: unprotect


  • 14unprotect_index
  • Expression: ^/index.php$
  • Rule: unprotect


  • 20logout
  • Expression: (a|action)=logout
  • Rule: logout_app


Backup and Restore

You should backup the directory /var/lib/openupload, which is used to store uploaded files.

Uninstall

If you want to remove the contrib, just run:

yum remove openupload

You can manually remove file in /var/lib/openupload and /usr/share/openupload if you want to remove all files used by Open Upload

Source

The source for this contrib can be found in Firewall-Services's repository [1].