Rooot.net

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille
The great thing about a computer notebook is that no matter how much you stuff into it, it doesn't get bigger or heavier.
Home Geek stuff Synology Seafile 6 on ARMv7-based Synology DiskStation NAS

Seafile 6 on ARMv7-based Synology DiskStation NAS

Il n'y a pas de traductions disponibles

Seafile is an open source Dropbox alternative that offer encryption on client-side (data is stored encrypted on the server and server don't have password). This article mostly follows Seafile manual installation process and describe how to install Seafile in a Debian chroot running on a Synology DiskStation NAS.

Install packages

As a reference, Seafile documentation to install this software from source is available from https://manual.seafile.com/build_seafile/server.html. This procedure follows the official documentation to install Seafile 6.0.x with details specific to Debian distribution and packages; it assume you already set up a Debian chroot on Synology and you are running a Debian Jessie.

Install development libraries

Most of libraries are available as debian packages:

~$ aptitude libevent-dev libcurl4-openssl-dev libglib2.0-dev uuid-dev intltool libsqlite3-dev libarchive-dev libtool libjansson-dev valac libfuse-dev

Only exception is libevhtp: a special version of this library is required.

~$ mkdir libs
~$ cd libs
~$ wget https://github.com/ellzey/libevhtp/archive/1.1.6.zip

Decompress library and use cmake to compile and install it.

~$ aptitude install cmake
~$ cmake .
~$ make
~$ sudo make install

Next install packages for seahub, the Python web front end. Some python libraries aren't available from Debian packages and Seafile 6.0.x require Django 1.8.

~$ aptitude install python2.7 python-simplejson python-chardet gunicorn python-imaging python-six
~$ # Some python lib aren't available from Debian.
~$ aptitude install python-pip
~$ pip install django==1.8
~$ pip install https://github.com/haiwen/django-constance/archive/bde7f7c.zip # django-constance
~$ pip install django-compressor==1.4
~$ pip install django-statici18n==1.1.3
~$ pip install pytz==2014.3
~$ pip install flup==1.0.2
~$ pip install djangorestframework==3.6.2
~$ pip install django-post_office==2.0.8
~$ pip install openpyxl==2.4.5
~$ pip install django-picklefield==0.3.2

Prepare Seafile projects

Add user and prepare project layout. Fill ORGANIZATION_NAME with anything more suitable to describe your Seafile installation (company or domain name).

~$ ORGANIZATION_NAME=
~$ adduser seafile
~$ su seafile
~$ cd
~$ mkdir -p $ORGANIZATION_NAME/seafile-server
~$ cd $ORGANIZATION_NAME/seafile-server

Get the source. This time, replace VERSION with Seafile latest version. I used version 3.1-latest for libsearpc and version 6.0.8 for seafile.

~$ mkdir src
~$ cd src

~$ VERSION=3.1-latest
~$ wget https://github.com/haiwen/libsearpc/archive/v${VERSION}.tar.gz
~$ tar xf v${VERSION}.tar.gz
~$ rm v${VERSION}.tar.gz

~$ VERSION=6.0.8
~$ wget https://github.com/haiwen/ccnet-server/archive/v${VERSION}-server.tar.gz
~$ tar xf v${VERSION}-server.tar.gz
~$ rm v${VERSION}-server.tar.gz
~$ wget https://github.com/haiwen/seafile-server/archive/v${VERSION}-server.tar.gz
~$ tar xf v${VERSION}-server.tar.gz
~$ rm v${VERSION}-server.tar.gz
~$ cd ..
~$ wget https://github.com/haiwen/seahub/archive/v${VERSION}-server.tar.gz
~$ tar xf v${VERSION}-server.tar.gz
~$ rm v${VERSION}-server.tar.gz
~$ mv seahub-${VERSION}-server seahub

Compile Seafile

Build and install seafile projects. Autogen, configure and make commands can be run as user seafile but "make install" command require root privileges.

~$ VERSION=3.1-latest
~$ cd src/libsearpc-${VERSION}
~$ ./autogen.sh
~$ ./configure
~$ make
~$ make install

~$ VERSION=6.0.8
~$ ~$ cd ../ccnet-server-${VERSION}-server
~$ ./autogen.sh
~$ ./configure --without-mysql --without-postgresql # `export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig` if libsearpc is not found
~$ make
~$ make install
~$
~$ cd ../seafile-server-${VERSION}-server

The seafile-controller executable require a small fix. At startup, this program define its configuration, bin and pids folders based on binary location. Being installed in /usr/local/bin instead of being in seafile-server subfolder, the startup fails. To fix it, edit init_seafile_path in controller/seafile-controller.c:

static void
init_seafile_path (char *config_dir)
{
topdir = g_path_get_dirname (config_dir);
installpath = g_build_filename (topdir, "seafile-server", NULL);
}

You also have to update the call to init_seafile_path in the first line of the seaf_controller_init function:

static int
seaf_controller_init (SeafileController *ctl,
char *config_dir,
char *seafile_dir,
char *logdir,
gboolean cloud_mode)
{
init_seafile_path (config_dir);

Now complete compilation of seafile-server with this small fix.

~$ ./autogen.sh
~$ ./configure --without-mysql --without-postgresql
~$ make
~$ make install

Deploy Seafile

As seafile user, go to top directory and start Seafile setup script

~$ cd ~/$ORGANIZATION_NAME
~$ export PYTHONPATH=/home/seafile/$ORGANIZATION_NAME/seafile-server/seahub/thirdpart
~$ seafile-admin setup

Answer some questions and finally start seafile

~$ seafile-admin setup

Seafile should now be launched and accessible from your NAS

Seafile auto startup

The seafile-admin command must be launched by user seafile from the top directory. As seafile user, create a script to launch this command.

~$ cd ~/$ORGANIZATION_NAME/
~$ cat >> start_seafile.sh << EOF
~$ #!/bin/bash
~$ cd `dirname $0`
~$ seafile-admin start
~$ EOF
~$ chmod +x start_seafile.sh

Then as root install sudo

~$ aptitude install sudo

Latest part is to add this script to the Synology boot sequence. If you already have a S99chrootDebian.sh script, just append to it:

~$ cat >> /usr/local/etc/rc.d/S99chrootDebian.sh << EOF
~$ # Start seafile
~$ chroot \$CHROOT /usr/bin/sudo -u seafile /bin/bash /home/seafile/<organization_name>/start_seafile.sh
~$ EOF
~$ chmod 755 /usr/local/etc/rc.d/S99chrootDebian.sh

Commentaires
Ajouter un nouveau Rechercher
thanatos  - cmake libevhtp fails   |79.231.74.xxx |2017-04-07 14:54:06
hey there,
found your guide and wanted to try it, but I'm failing miserably
when it comes to the libevhtp library.
cmake . gives me the
following error and I don'T know how to fix this:

Code:
root@array:/libs#
cd libevhtp-1.1.6/
root@array:/libs/libevhtp-1.1. 6# cmake .
CMake
Error: CMake was unable to find a build program corresponding to
"Unix Makefiles". CMAKE_MAKE_PROGRAM is not set.  You
probably need to select a different build tool.
CMake Error: Error required
internal CMake variable not set, cmake may be not be
built correctly.
Missing variable is:
CMAKE_C_COMPILER_ENV_VAR
CMake
Error: Error required internal CMake variable not set, cmake may be
not be built correctly.
Missing variable is:
CMAKE_C_COMPILER
CMake Error:
Could not find cmake
module file:/libs/libevhtp-1.1.6/CMakeFiles/CMakeCCompile r.cmake
CMak
e Error: Error required internal CMake variable not set, cmake may be not
be built correctly.
Missing
variable is:
CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Error required
internal CMake variable not set, cmake may be not be built
correctly.
Missing variable is:
CMAKE_CXX_COMPILER
CMake Error: Could not
find cmake
module file:/libs/libevhtp-1.1.6/CMakeFiles/CMakeCXXCompi ler.cmake
CM
ake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake
Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring
incomplete, errors occurred!
root@array:/libs/libevhtp-1.1.6#


any help appreciated,
cheers
neo73   |37.71.42.xxx |2017-05-30 09:29:25
Hi thanatos, thanks for your feedback.
I might have missed a few packages
here.
Please check you have the packages make and gcc installed on
your system using:
Code:
dpkg -l | grep -e make -e gcc

If not just run aptitude install make gcc and you should be able to
resume libevhtp compilation
Ati  - Mr   |80.42.61.xxx |2019-02-10 16:21:32
Thanks for the super easy guide, managed to install it 6.5 seconds, went supper
smooth.

Kudos to you and Seafile as well.

It is a shame though that seafile
made it too easy to install this brilliant piece of software.
Now every single
Synology owner will have it on their NAS. too bad
Ecrire un commentaire
Nom:
Email:
 
Website:
Titre:
BBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Saisissez le code que vous voyez.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."