Cool Solution - Install Seafile and setup ldap authentication
From Univention Wiki
This article describes how to install Seafile and its components, and how to setup the LDAP connection.
For Seafile to work properly, users must be assigned a primary mail address.
This article assumes that Seafile is downloaded and extracted in the directory
/opt/Seafile. Seafile can be installed in any other location, paths and scripts in this article must then be adapted accordingly.
The following dependencies must be installed to ensure a working installation of Seafile:
univention-install mysql-server python-setuptools python-mysqldb
Download the archive from the Seafile download page (Section "Server generic for Linux"). (Version as of writing this article: 4.3.2)
Extract and run the installer
mkdir -p /opt/Seafile cd /opt/Seafile tar xzfv seafile-server_4.3.2_x86-64.tar.gz cd seafile-server-4.3.2 ./setup-seafile-mysql.sh
The installer is interactive and will ask for some information. A MySQL user and databases can be created beforehand, the installer will, however, create missing elements itself inside the database.
During the installation, the wizard will ask for the MySQL root user's password, the password can be found in the file /etc/mysql.secret.
To ensure Seafile is working correctly, port 8000 must be opened in the firewall to gain remote access:
ucr set \ security/packetfilter/seahub/tcp/8000/all/en="Seahub" \ security/packetfilter/seahub/tcp/8000/all=ACCEPT invoke-rc.d univention-firewall restart
Configure LDAP connection
Edit the file
/opt/Seafile/ccnet/ccnet.conf and add the following section at the end:
[LDAP] HOST = ldap://<FQDN of LDAP server> BASE = cn=users,LDAP_BASE USER_DN = <DN of search user> PASSWORD = <Search user password> LOGIN_ATTR = mailPrimaryAddress
Hint: To get the correct value for LDAP_BASE run the command
ucr get ldap/base on the command line of your server.
In order to have Seafile and Seahub being started and stopped using an init script, two provided scripts must be linked and registered with the init system:
ln -s /opt/Seafile/seafile-server-4.3.2/seafile.sh /etc/init.d/seafile ln -s /opt/Seafile/seafile-server-4.3.2/seahub.sh /etc/init.d/seahub update-rc.d seafile defaults update-rc.d seahub defaults
Before Seafile is accessible, Seafile and Seahub must be started:
invoke-rc.d seafile start invoke-rc.d seahub startb
When Seahub is started for the first time, the administrative seafile user must be configured. Follow the instructions on-screen instructions to create the user.
To configure the UCS start site to provide a link to Seafile, the UCR variables
ucs/web/overview/entries/service must be set:
ucr set \ ucs/web/overview/entries/service/seafile/description/de="Private Cloud fürs Synchronisieren und Teilen von Dateien" \ ucs/web/overview/entries/service/seafile/description="Collaboration Place for Files" \ ucs/web/overview/entries/service/seafile/label/de="Seafile" \ ucs/web/overview/entries/service/seafile/label="Seafile" \ ucs/web/overview/entries/service/seafile/link="http://$(ucr get hostname).$(ucr get domainname):8000"
Further information can be obtained from the Seafile manual.