====== Seafile 2.x on Ubuntu 12.04 ======
===== Download and Install =====
- 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
...
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 Seafile Automatic Startup =====
- create /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
- Turn on 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 =====
- Install Apache and enable mods
apt-get install python-flup apache2 libapache2-mod-fastcgi
a2enmod proxy_http
a2enmod rewrite
a2enmod ssl
a2ensite default-ssl
- Enable fastcgi on seafile
...
# Change the value of fastcgi to true if fastcgi is to be used
fastcgi=true
...
- 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
- Update apache ssl virtual host
...
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}]
...
- Update SERVICE_URL in ccnet.conf
...
SERVICE_URL = https://
...
- Disable port 80 on apache
...
#NameVirtualHost *:80
#Listen 80
...
====== Exclude Files ======
Sometimes you don't want to sync some files or folders inside a library. To achieve this, create a **seafile-ignore.txt** file in the root folder of a library. This special file specifies the files and folders that Seafile should not sync. Each line in a **ignore.txt** file specifies a pattern. The following pattern format are supported.
- A blank line matches no files.
- A line starting with # serves as a comment.
- Seafile supports wildcards in the pattern. For example, "foo/*" matches "foo/1" and "foo/hello". "foo/?" matches "foo/1" but not "foo/hello". Note that the wildcard character * recursively matches all the paths under a folder. For instance, "foo/*.html" matches "foo/a.html" and "foo/templates/b.html".
- If the pattern ends with a slash, it would only match a folder. In other words, foo/ will match a folder "foo" and paths underneath it, but will not match a regular file or a symbolic link "foo".
- If a pattern doesn't end with a slash or a wildcard, it would not match a folder. For example, "foo" can only match regular file "foo" or a symbolic link; while "foo/" and "foo*" match a folder and paths under it.
# a regular file
test-file
# a dir
test-dir/
# wildcard *
test-star1/*
test-star2/*.html
# wildcard ?
test-qu1/?.html
test-qu2/?/