You can get it from the Seafile download section.
Off topic: Perhaps somebody already realized it, maybe not, but I don’t want to miss the oportunity to communicate that our Seafile Raspberry Pi version celebrates this month his 5th anniversary.
Happy Birthday dear Seafile Raspberry Pi version!
Beside of that, we are similarly proud to announce the 50th release of the Raspberry Pi version. What a coincidence! I couldn’t believe it myself, so here’s the proof:
50 Releases in 5 years
desigual@thor ~/env_seafile/seafile-server-pkgs $ ll
total 196
drwxr-xr-x 2 desigual desigual 4096 May 31 2015 R4.2.2
drwxr-xr-x 2 desigual desigual 4096 Jul 3 2015 R4.2.3
drwxr-xr-x 3 desigual desigual 4096 Jul 24 2015 R4.3.0
drwxr-xr-x 2 desigual desigual 4096 Jul 29 2015 R4.3.1
drwxr-xr-x 2 desigual desigual 4096 Aug 21 2015 R4.3.2
drwxr-xr-x 2 desigual desigual 4096 Sep 19 2015 R4.4.0
drwxr-xr-x 2 desigual desigual 4096 Oct 14 2015 R4.4.2
drwxr-xr-x 2 desigual desigual 4096 Oct 17 2015 R4.4.3
drwxr-xr-x 2 desigual desigual 4096 Nov 8 2015 R5.0.0
drwxr-xr-x 2 desigual desigual 4096 Nov 12 2015 R5.0.1
drwxr-xr-x 2 desigual desigual 4096 Nov 12 2015 R4.4.6
drwxr-xr-x 2 desigual desigual 4096 Dec 7 2015 R5.0.2
drwxr-xr-x 2 desigual desigual 4096 Dec 20 2015 R5.0.3
drwxr-xr-x 2 desigual desigual 4096 Jan 25 2016 R5.0.4
drwxr-xr-x 2 desigual desigual 4096 Mar 2 2016 R5.0.5
drwxr-xr-x 2 desigual desigual 4096 Mar 23 2016 R5.1.0
drwxr-xr-x 2 desigual desigual 4096 Apr 13 2016 R5.1.1
drwxr-xr-x 2 desigual desigual 4096 May 15 2016 R5.1.2
drwxr-xr-x 2 desigual desigual 4096 May 31 2016 R5.1.3
drwxr-xr-x 2 desigual desigual 4096 Jul 25 2016 R5.1.4
drwxr-xr-x 2 desigual desigual 4096 Aug 3 2016 R6.0.0
drwxr-xr-x 2 desigual desigual 4096 Aug 22 2016 R6.0.1
drwxr-xr-x 2 desigual desigual 4096 Sep 4 2016 R6.0.2
drwxr-xr-x 2 desigual desigual 4096 Sep 4 2016 R6.0.3
drwxr-xr-x 2 desigual desigual 4096 Sep 24 2016 R6.0.4
drwxr-xr-x 2 desigual desigual 4096 Oct 25 2016 R6.0.5
drwxr-xr-x 2 desigual desigual 4096 Nov 21 2016 R6.0.6
drwxr-xr-x 2 desigual desigual 4096 Dec 24 2016 R6.0.7
drwxr-xr-x 2 desigual desigual 4096 Feb 17 2017 R6.0.8
drwxr-xr-x 2 desigual desigual 4096 Apr 6 2017 R6.0.9
drwxr-xr-x 2 desigual desigual 4096 May 11 2017 R6.1.0
drwxr-xr-x 2 desigual desigual 4096 Jun 15 2017 R6.1.1
drwxr-xr-x 2 desigual desigual 4096 Aug 19 2017 R6.1.2
drwxr-xr-x 2 desigual desigual 4096 Sep 14 2017 R6.2.0
drwxr-xr-x 2 desigual desigual 4096 Sep 24 2017 R6.2.1
drwxr-xr-x 2 desigual desigual 4096 Sep 27 2017 R6.2.2
drwxr-xr-x 2 desigual desigual 4096 Dec 7 2017 R6.2.3
drwxr-xr-x 2 desigual desigual 4096 Jan 20 2018 R6.2.4
drwxr-xr-x 2 desigual desigual 4096 Jan 28 2018 R6.2.5
drwxr-xr-x 2 desigual desigual 4096 Jun 5 2018 R6.3.0
drwxr-xr-x 2 desigual desigual 4096 Jun 28 2018 R6.3.1
drwxr-xr-x 2 desigual desigual 4096 Jul 11 2018 R6.3.2
drwxr-xr-x 2 desigual desigual 4096 Oct 13 2018 R6.3.4
drwxr-xr-x 2 desigual desigual 4096 Jun 17 2019 R7.0.2
drwxr-xr-x 2 desigual desigual 4096 Jul 11 2019 R7.0.3
drwxr-xr-x 2 desigual desigual 4096 Jul 26 2019 R7.0.4
drwxr-xr-x 2 desigual desigual 4096 Sep 23 2019 R7.0.5
drwxr-xr-x 2 desigual desigual 4096 Apr 18 00:13 R7.1.3
drwxr-xr-x 2 desigual desigual 4096 May 14 21:18 R7.1.4
Starting with this release, there are important release changes, i.e. the dependence of Python 3 instead of Python 2. That implicates a more cautious preparation bevor the update can start. We warmly recommend you first, before to proceed with the update, to take a view to the Seafile ChangeLog, because the requirements had changed considerably in the last releases
I wrote down below some specific recommendations, which aims to clarify and to help you during the upgrade process.
Please remember:
- Don’t forget to stop Seafile Server before the upgrade (i.e:
service seafile-server stop
or, another example:service seahub stop && service seafile stop
) - Don’t forget to change the directory rights of Seafile after unpacking it (i.e:
chown -R seafile:nogroup seafile-server-7.1.4
or, another example:sudo chown -R seafile:seafile seafile-server-7.1.4
) - Don’t forget to apply the upgrade script/s according your start release && with the properly user which in normal case should be seafile (i.e change to seafile user:
su seafile -s /bin/bash
or, another example:sudo su seafile
)
During execution of the upgrade script (upgrade_7.0_7.1.sh
) you will get following SQL ERROR
. That’s OK for CE Version and documented on the manual.
SQL ERROR during upgrade from 7.0.* to 7.1.*
[INFO] updating seahub database...
/opt/seafile/seafile-server-7.1.1/seahub/thirdpart/pymysql/cursors.py:170: Warning: (1050, "Table 'base_reposecretkey' already exists")
result = self._query(query)
[WARNING] Failed to execute sql: (1091, "Can't DROP 'drafts_draft_origin_file_uuid_7c003c98_uniq'; check that column/key exists")
Recommendations and clarifications
-
YOU NEED AT LEAST PYTHON 3.6+ (PYTHON 3.5 will not work)
-
RTFM (I took the expresion from @jaeti01) You can imagine what it means. If not, Read The *** Manual. Specially how to debug if seahub failed to start.
-
Download the properly rpi version for your OS. Starting with release 7.1.*, we offer now the Seafile Raspberry Pi for Ubuntu Bionic, Debian Buster and Debian Stretch. Latest OS stable releases, Bionic and Buster, include native Python 3 support (Python=3.6.9 in Bionic and Python=3.7.3 in Buster). These both are the recommended rpi-versions to choose, since these were compiled against his own native libraries inside linux containers.
-
In order to give the chance for people still using Seafile in oldstable Debian Stretch OS without to upgrade his OS, it was compiled a rpi-Stretch version, which uses latest Python 3.6.10 to compile seahub thirdparty modules. This rpi-version probably need a hack to get working properly the SeafDAV (Seafile WebDAV Server) process. More later.
-
If you use the rpi-Stretch version, you still need to install additionally all the Python3 packages like indicated in the manual for the Community Edition (CE). You can choose to download and compile Python3.6.10 by yourself or use
pyenv
to do it automatically. Here the suggestions on the forum and common pitfails while using pyenv. -
If you use the rpi-Buster version, you need to do some hack after you extract the rpi seafile package in your system. The python library path is hardcoded during the compilation to point to
$INSTALLDIR/seafile/lib/python3.6/site-packages
in few seafile shell scripts, likeseahub.sh
,reset-admin.sh
,setup-seafile-mysql.sh
andupgrade_7.0_7.1.sh
. The issue arises if you compile Seafile server with other Python version than Python 3.6. These paths still points to/python3.6/
but since the native Buster version brings Python 3.7, the directory created under
$INSTALLDIR/seafile/lib/
will be/python3.7/
instead of/python3.6/
. Therefore it must be created a symbolic soft link from python3.6 to python3.7 inside$INSTALLDIR/seafile/lib/
like “ln -s python3.7 python3.6
”.
soft link from python3.6 to python3.7
seafile@rpi-buster # /home/seafile/seafile-server-7.1.4/seafile/lib # ls -l
...
...
drwxr-xr-x 2 seafile nogroup 4096 Mai 21 22:42 pkgconfig
lrwxrwxrwx 1 seafile nogroup 9 Mai 23 13:50 python3.6 -> python3.7
drwxr-xr-x 3 seafile nogroup 4096 Mai 21 22:39 python3.7
- If your OS version is available, don’t install Pillow dependence again. Pillow dependence is already shipped with Seafile as third party requirement. Pillow needs to be installed if you don’t use one of these native Raspberry Pi versions. The necessity to install Pillow again comes from a different linked jpeg-dev shared library which is could not be present in your system. You can install Pillow like as follows in order to not pollute your other python environment:
In case you need to install Pillow again (you get ModuleNotFoundError: No module named 'Image'
seafile@rpi-stretch # pip3 install -U Pillow -t /media/sda/seafile/seafile-server-latest/seahub/thirdpart
-
Check which
memcached
do you have configured inseahub_settings.py
. If you still use the old configuration, I will suggest you to deactivate thememcached
commenting the lines and activate it later, when the start of seahub works properly. -
Problem starting SeafDAV: It could happens that using the Stretch version, the Seafile controller is not able to create the
seafdav.pid
and therefore the controller try to create again and again the pid file without success. The best non intrusive workaround that I figured it out is by checking if the Seafdav server is able to start by the command line:
Starting SeafDAV manually
su seafile -c "PYTHONPATH=$PYTHONPATH:/media/sda/seafile/seafile-server-latest/seahub/thirdpart/:/media/sda/seafile/seafile-server-latest/seafile/lib/python3.6/site-packages/ CCNET_CONF_DIR=/media/sda/seafile/ccnet SEAFILE_CONF_DIR=/media/sda/seafile/seafile-data SEAFILE_CENTRAL_CONF_DIR=/media/sda/seafile/conf SEAFDAV_CONF=/media/sda/seafile/conf/seafdav.conf SEAFILE_RPC_PIPE_PATH=/media/sda/seafile/seafile-server-7.1.3/runtime /usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /media/sda/seafile/logs/seafdav.log -v --pid /media/sda/seafile/pids/seafdav.pid --port 8080 --host 0.0.0.0 --verbose"
and if it works, to create a SeafDav Service, like this one:
Create the SeafDAV service yourself
seafile@rpi-stretch ~ $ cat /etc/systemd/system/seafdav.service
[Unit]
Description=Seafile WebDAV
Documentation=https://github.com/haiwen/seafdav
After=network.target seafile.service
[Service]
Type=simple
PIDFile=/media/sda/seafile/pids/seafdav.pid
Environment="PYTHONPATH=/media/sda/seafile/seafile-server-latest/seahub/thirdpart:/media/sda/seafile/seafile-server-latest/seafile/lib/python3.6/site-packages"
Environment="CCNET_CONF_DIR=/media/sda/seafile/ccnet"
Environment="SEAFILE_CONF_DIR=/media/sda/seafile/seafile-data"
Environment="SEAFILE_CENTRAL_CONF_DIR=/media/sda/seafile/conf"
Environment="SEAFDAV_CONF=/media/sda/seafile/conf/seafdav.conf"
Environment="SEAFILE_RPC_PIPE_PATH=/media/sda/seafile/seafile-server-latest/runtime"
ExecStart=/usr/bin/python3 -m wsgidav.server.server_cli --server gunicorn --root / --log-file /media/sda/seafile/logs/seafdav.log -v --pid /media/sda/seafile/pids/seafdav.pid --port 8080 --host 0.0.0.0 --verbose
ExecStop=/bin/kill -15 $(pgrep -f wsgidav.server.server_cli)
User=seafile
Group=nogroup
[Install]
WantedBy=multi-user.target
This is also usefull to debug seafdav
problems (--verbose
option).
The build (build3.sh
) script to compile the Seafile server was refactored to support newer releases based on Python 3 as well.
Once again, thanks to the developers and the Seafile Community.
have fun