Seafile#

General#

Minor upgrade 8.3 > 8.4#

1. Download server version into /markus/seafile, gunzip, untar
2. Then you have another folder "seafile-server-8.0.4"
3. stop, cd <new folder>
4. ./upgrade/minor-upgrade.sh
5. start

WebDav#

base URL = https://www.inetone.de:444/seafdav

WebDav: error HTTP MOVE 502 Bad Gateway#

check seafdav.log
Fixed according to forum with Apache conf added:
RequestHeader edit Destination ^https: http:

Migrate from 7.1.5 to 8.0.3#

  1. Check version, Stop
  2. Download, gunzip *, tar xvf *
  3. extract and copy, run script (start upgrade scripts from base folder, not inside upgrade folder!
cp seafile-server-8.0.3 /markus/seafile
cd /markus/seafile/seafile-server-8.0.3
./upgrade/upgrade_7.1_8.0.sh
4. Start

Config (17.02.2021)#

See Seafile admin manualConfig Seahub with Apache at "Modify ccnet.conf and seahub_setting.py"
Seafile > WebInterface > Avatar-Icon > Steam Administration > Settings

SERVICE_URL = https://www.inetone.de:444
FILE_SERVER_ROOT = https://www.inetone.de:444/seafhttp

Though the docu tells "if you set the value both via Web UI and config file, the setting via Web UI will take precedence", I edited the config files, too:
vi .../conf/seahub_settings.py

# add following
FILE_SERVER_ROOT = 'https://www.inetone.de:444/seafhttp'
vi .../conf/ccnet.conf
# change
SERVICE_URL = https://www.inetone.de:444

Note: When you change service URLs clean your browser cache or hard reload each page !
It takes a some seconds until the new settings come into effect even if the seafile has started already, so keep reloading in case!


For Apache there is a proxy config.
vi /etc/apache2/sites-available/000-default-le-ssl.conf

<VirtualHost www.inetone.de:444>
        ServerName www.inetone.de
        ServerAlias inetone.de
        DocumentRoot /var/www
        ErrorLog ${APACHE_LOG_DIR}/seafile_443.log

    Alias /media  /markus/seafile/seafile-server-latest/seahub/media

    RewriteEngine On
    <Location /media>
        Require all granted
    </Location>

    #
    # seafile fileserver
    #
    ProxyPass /seafhttp http://127.0.0.1:8082
    ProxyPassReverse /seafhttp http://127.0.0.1:8082
    RewriteRule ^/seafhttp - [QSA,L]

    #
    # seahub
    #
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8000/
    ProxyPassReverse / http://127.0.0.1:8000/

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/www.inetone.de/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.inetone.de/privkey.pem
</VirtualHost>
On Errors check Seafile FAQ.

New Installation on Debian (27.12.2020)#

Download > Server > Server for generic Linux
cd /markus/seafile
wget ...copy link...
tar xvf *  (this will create sub folder like seafile-server-7.0.5)
cd seafile-server-7.0.5
Note: symlink seafile-server-latest is created automatically from the script.
Manual for deploying with MySQL

Clean up databases?

mysql -u <user> -p
    DROP DATABASE `ccnet-db`;
    DROP DATABASE `seafile-db`;
    DROP DATABASE `seahub-db`;

Note: Seafile 7.1.x will NOT work with Debian 9 because some required packages are not available there.
You will find error django.request:135 handle_uncaught_exception Internal Server Error at seafileHome\logs\seahub.log !

# on Debian 10/Ubuntu 18.04
apt-get update
apt-get install python3 python3-setuptools python3-pip -y

pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy \
    django-pylibmc django-simple-captcha python3-ldap

./setup-seafile-mysql.sh#

Checking python on this machine ...

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

        https://download.seafile.com/published/seafile-manual/home.md

Press ENTER to continue
-----------------------------------------------------------------


What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] inetone

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] 185.244.195.4

Which port do you want to use for the seafile fileserver?
[ default "8082" ]

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

What is the password of the mysql root user?
[ root password ]

verifying password of user root ...  done

Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ]

Enter the password for mysql user "seafile":
[ password for seafile ]

verifying password of user seafile ...  done

Enter the database name for ccnet-server:
[ default "ccnet-db" ]

Enter the database name for seafile-server:
[ default "seafile-db" ]

Enter the database name for seahub:
[ default "seahub-db" ]

---------------------------------
This is your configuration
---------------------------------

    server name:            inetone
    server ip/domain:       185.244.195.4

    seafile data dir:       /markus/seafile/seafile-data
    fileserver port:        8082

    database:               create new
    ccnet database:         ccnet-db
    seafile database:       seafile-db
    seahub database:        seahub-db
    database user:          seafile



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Generating ccnet configuration ...

done
Successly create configuration dir /markus/seafile/ccnet.
Generating seafile configuration ...

Done.
done
Generating seahub configuration ...

----------------------------------------
Now creating ccnet database tables ...

----------------------------------------
----------------------------------------
Now creating seafile database tables ...

----------------------------------------
----------------------------------------
Now creating seahub database tables ...

----------------------------------------

creating seafile-server-latest symbolic link ...  done




-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://download.seafile.com/published/seafile-manual/home.md

for information.
/markus/seafile/seafile-server-latest/seafile.sh restart
/markus/seafile/seafile-server-latest/seahub.sh restart

Logs at /markus/seafile/logs

vi /markus/seafile/logs/seahub.log 
    django.request:135 handle_uncaught_exception Internal Server Error

Initial Installation (2018)#

After reading positive comments I installed seafile to my Linux root server

1. Info Server

> cat /proc/version
Linux version 4.4.0-66-generic (buildd@lgw01-28) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017
> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial
> getconf LONG_BIT
64
> uname -m
x86_64
> file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=0428e4834e687e231fa865562d32fbb64ce45577, stripped

2. Download
Server for generic Linux 64bit

wget https://bintray.com/artifact/download/seafile-org/seafile/seafile-server_6.0.8_x86-64.tar.gz
gunzip *
tar xvf *

3. See Manual
For installing and setup see "Deploying with MySQL"

4. Start/Stop Folder "seafile-server-latest" (>4.0.2)

./seafile.sh start  # Start seafile service
./seahub.sh start   # Start seahub website, port defaults to 8000

./seahub.sh stop
./seafile.sh stop

Problem Android "Unknown Server Status"#

This seems to be a device ID problem in the source code.

See ./seafile-server-latest/seahub/seahub/api2/serializers.py

Upgrade#

on 12.01.2017 from 4.05. to 6.0.7, see manual

1. cd /markus/seafile
2. stop old one
3. here you download the lastest server version
Note: you have here als folder ccnet and seafile-data
After gunzip and tar you have a new folder seafile-server-6.0.7
4. cd seafile-server-6.0.7
5. ls -l upgrade
Here you need to call all steps, e.g.
upgrade_4.0_4.1.sh
upgrade_4.1_4.2.sh
...
But NOT from inside folder, but one above, so
upgrade/upgrade_4.0_4.1.sh
upgrade/upgrade_4.1_4.2.sh
...
6. All upgrade set a new symlink to seafile-server-6.0.7
7. cd seafile-server-6.0.7
8. start like above, done

Migrate to new server#

  1. Stop services
  2. Download and install latest version (as of Mar 2017 it was 6.0.8), follow manual
    1. create mysql databases create database ccnet-db default character set 'UTF8'; create database seafile-db default character set 'UTF8'; create database seahub-db default character set 'UTF8';
    2. create mysql seafile user create user 'seafile'@'localhost' identified by 'seafile'; GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@localhost; GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@localhost; GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@localhost; SET PASSWORD FOR 'seafile'@'localhost' = PASSWORD('...your.password...');
  3. clean and copy folders ccnet, conf, seafile-data
  4. maybe: update SERVER_URL in /conf/ccnet.conf
  5. old versions of seafile used folder "data" and not "seafile-data" as data storage, update folder in /ccnet/seafile.ini
  6. export, copy, import database mysqldump -u root -p<password> ccnet-db > /home/proftpd/ccnet-db.sql mysqldump -u root -p<password> seafile-db > /home/proftpd/seafile-db.sql mysqldump -u root -p<password> seahub-db > /home/proftpd/seahub-db.sql mysql -u root -p<password> ccnet-db < /home/proftpd/ccnet-db.sql mysql -u root -p<password> seafile-db < /home/proftpd/seafile-db.sql mysql -u root -p<password> seahub-db < /home/proftpd/seahub-db.sql
  7. Delete cache rm -rf /tmp/seahub_cache
  8. Update mysql config in /conf/seahub_settings.py to 'init_command': 'SET default_storage_engine=INNODB',
  9. Start services