User Tools

Site Tools


fileservices:seafile

This is an old revision of the document!


Seafile 2.x on Ubuntu 12.04

install deps

apt-get install python2.7 python-setuptools python-simplejson\
 python-imaging python-mysqldb mysql-server

extract and install

mkdir /vol1/seafile/
cd /vol1/seafile/
wget http://seafile.googlecode.com/files/seafile-server_2.0.1_x86-64.tar.gz
tar xvzf http://seafile.googlecode.com/files/seafile-server_2.0.1_x86-64.tar.gz
rm seafile-server_2.0.1_x86-64.tar.gz
cd /vol1/seafile/seafile-server-2.0.1
./setup-seafile-mysql.sh

Setup Smtp Server

/vol1/seafile/seahub_settings.py
...
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.mail.org'        # smpt server
EMAIL_HOST_USER = 'seafile@mail.org'    # username and domain
#EMAIL_HOST_PASSWORD = ''    # password
EMAIL_PORT = '25'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
...

Enable Startup

/etc/init.d/seafile

/etc/init.d/seafile
#!/bin/sh
### BEGIN INIT INFO
# Provides:             seafile-server
# Required-Start:       $all
# Required-Stop:        $all
# Should-Start:         $local_fs mysql
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
### END INIT INFO
 
# Change the value of "user" to your linux user name
user=root
 
# Change the value of "script_path" to your path of seafile installation
seafile_dir=/vol1/seafile
script_path=${seafile_dir}/seafile-server-2.0.1
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log
 
# Change the value of fastcgi to true if fastcgi is to be used
fastcgi=false
 
case "$1" in
        start)
                service mysql start
                sudo -u ${user} ${script_path}/seafile.sh start > ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi > ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start > ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart > ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi > ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart > ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 > ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 > ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile {start|stop|restart}"
                exit 1
        ;;
esac

Enable automatic startup

# make the script executable
sudo chmod +x /etc/init.d/seafile
# update system rc.d config to enable seafile-server
sudo update-rc.d seafile defaults
# restart once to make sure everything is running
echo "/etc/init.d/seafile restart" >> /etc/rc.local

Enable SSL through Apache2 on port 443

  1. Install Apache and enable mods
    apt-get install python-flup apache2 libapache2-mod-fastcgi
    a2enmod proxy_http
    a2enmod rewrite
    a2enmod ssl
    a2ensite default-ssl
  2. Enable fastcgi on seafile
    /etc/init.d/seafile
    ...
    # Change the value of fastcgi to true if fastcgi is to be used
    fastcgi=true
    ...
  3. create ssl certs
    mkdir /vol1/seafile/ssl
    cd /vol1/seafile/ssl
    openssl genrsa -out privkey.pem 2048
    openssl req -new -x509 -key privkey.pem -out cacert.pem -days 9999
  4. update apache ssl virtual host
    /etc/apache2/sites-enabled/default-ssl
    ...
    SSLCertificateFile    /vol1/seafile/ssl/cacert.pem
    SSLCertificateKeyFile /vol1/seafile/ssl/privkey.pem
     
    FastCGIExternalServer /vol1/seafile/seafile-server-2.0.1/seahub/seahub.fcgi -host 127.0.0.1:8000
     
    DocumentRoot /vol1/seafile/seafile-server-2.0.1/seahub
    Alias /media /vol1/seafile/seafile-server-2.0.1/seahub/media
    RewriteEngine On
    RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /seahub.fcgi/$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    ...
  5. update SERVICE_URL in ccnet.conf
    /vol1/seafile/ccnet/ccnet.conf
    ...
    SERVICE_URL = https://<SERVER FQDN>
    ...
  6. Disable port 80 on apache
    /etc/apache2/ports.conf
    ...
    #NameVirtualHost *:80
    #Listen 80
    ...
fileservices/seafile.1382638548.txt.gz · Last modified: 2013/10/24 13:15 by tschulz