Line 119: |
Line 119: |
| yum remove python27-python-devel scl-utils-build | | yum remove python27-python-devel scl-utils-build |
| </syntaxhighlight> | | </syntaxhighlight> |
| + | |
| + | well I got some errors and the files in github says different from doc |
| + | |
| + | <nowiki>:</nowiki> test-requirements.txt and requirements.txt for 5.1 branch (NB server asks for requests==2.8.0 while seahub for 2.3.0)<syntaxhighlight lang="bash"> |
| + | scl enable python 27 |
| + | |
| + | |
| + | pip install mock==1.0.1 |
| + | pip install nose==1.3.7 |
| + | pip install exam==0.10.5 |
| + | pip install splinter==0.7.2 |
| + | pip install requests==2.3.0 |
| + | pip install pytest==2.7.0 |
| + | pip install pytest-django==2.8.0 |
| + | pip install python-dateutil |
| + | pip install python-memcached==1.57 |
| + | pip install chardet |
| + | pip install six |
| + | pip install Pillow>=2.6.1,<3.0.0 |
| + | pip install Django==1.8.10 |
| + | pip install django-compressor==1.4 |
| + | pip install django-post-office==2.0.3 |
| + | pip install django-statici18n==1.1.2 |
| + | pip install djangorestframework==3.3.1 |
| + | pip install git+git://github.com/haiwen/django-constance.git@751f7f8b60651a2828e4a535a47fc05b907883da#egg=django-constance[database] |
| + | pip install openpyxl==2.3.0 |
| + | pip install pytz==2015.7 |
| + | |
| + | |
| + | pip install termcolor==1.1.0 |
| + | pip install prettytable==0.7.2 |
| + | pip install pexpect==4.0 |
| + | pip install httpie |
| + | pip install django-constance[database] |
| + | |
| + | </syntaxhighlight>seafile server would need pip install MySQL-python==1.2.5, which will need mysql devel to compile |
| + | |
| + | I also see some memcached service is needed... seahub/avatar/sql/migration.md |
| | | |
| ==== startup scripts and sme related db ==== | | ==== startup scripts and sme related db ==== |
| + | config set seafile service TCPPort 8000 status enabled access private |
| + | |
| + | signal-event remoteaccess-update |
| | | |
| ==== configuration ==== | | ==== configuration ==== |
| | | |
| ==== Start server ==== | | ==== Start server ==== |
− | <syntaxhighlight lang="bash"> | + | <syntaxhighlight lang="antlr-objc"> |
− | cd /opt/rh/python27/root/usr/lib/python2.7/site-packages/
| |
− | ln /usr/lib/python2.6/site-packages/seaserv seaserv -s
| |
− | ln /usr/lib/python2.6/site-packages/seafile seafile -s
| |
− | ln /usr/lib/python2.6/site-packages/ccnet ccnet -s
| |
− | cd /opt/rh/python27/root/usr/lib64/python2.7/site-packages/
| |
− | ln /usr/lib64/python2.6/site-packages/pysearpc pysearpc -s
| |
− | | |
| scl enable python27 bash | | scl enable python27 bash |
| mkdir /opt/seafile/; | | mkdir /opt/seafile/; |
| cd /opt/seafile/; | | cd /opt/seafile/; |
| mkdir seafile-server/ | | mkdir seafile-server/ |
| + | mkdir logs pids |
| mkdir seafile-server/runtime | | mkdir seafile-server/runtime |
| + | mkdir -p /opt/seafile/seafile-data/library-template |
| cd seafile-server/ | | cd seafile-server/ |
| ln /usr/share/seafile-seahub seahub -s | | ln /usr/share/seafile-seahub seahub -s |
| cd /opt/seafile/ | | cd /opt/seafile/ |
| | | |
− | export PYTHONPATH=/usr/share/seafile-seahub/thirdpart | + | export PYTHONPATH=/opt/seafile/seafile-server/seahub/thirdpart:$PYTHONPATH |
| + | export CCNET_CONF_DIR=/opt/seafile/conf/ |
| + | export SEAFILE_CONF_DIR=/opt/seafile/conf/ |
| | | |
| seafile-admin setup | | seafile-admin setup |
| | | |
− | touch seahub.db
| + | python seafile-server/seahub/manage.py syncdb |
− | </syntaxhighlight>----------------------------------------------------------------- | + | </syntaxhighlight> |
| + | |
| + | issue: seafile-admin setup makes creation of seahub.db in /usr |
| + | |
| + | <nowiki>-----------------</nowiki> |
| + | |
| + | <nowiki>------------------------------------------------</nowiki> |
| | | |
| <nowiki>-----------------------------------------------------------------</nowiki> | | <nowiki>-----------------------------------------------------------------</nowiki> |
Line 184: |
Line 228: |
| | | |
| ==== configure httpd reverse proxy ==== | | ==== configure httpd reverse proxy ==== |
| + | the easy way is :<syntaxhighlight lang="bash"> |
| + | db domains setprop seafile.itx.pialasse.com Nameservers local ProxyPassTarget http://127.0.0.1:8000/ TemplatePath ProxyPassVirtualHosts |
| + | |
| + | signal-event domain-modify seafile.itx.pialasse.com |
| + | </syntaxhighlight>more long way: |
| + | |
| + | <syntaxhighlight lang="bash"> |
| + | mkdir /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/ -p |
| + | cat > /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/28SeafileProxyPass <<- 'EndOfMessage' |
| + | # Seahub for Seafile ProxyPass |
| + | { |
| + | $haveSSL = (exists ${modSSL}{status} and ${modSSL}{status} eq "enabled") ? 'yes' : 'no'; |
| + | $seahubPort = ${'seafile'}{TCPPort} || '8000'; |
| + | $OUT = ''; |
| + | if ((${'seafile'}{'status'} || 'disabled') eq 'enabled' ){ |
| + | |
| + | if (($port eq "80") && ($haveSSL eq 'yes')){ |
| + | $OUT .= " RewriteRule ^/seafile(/.*|\$) https://%{HTTP_HOST}/seafile\$1 [L,R]\n"; |
| + | } |
| + | else{ |
| + | $OUT .= " ProxyPass /seafile http://127.0.0.1:$seahubPort\n"; |
| + | $OUT .= " ProxyPassReverse /seafile http://127.0.0.1:$seahubPort\n"; |
| + | } |
| + | |
| + | $OUT .=<<"HERE"; |
| + | |
| + | <Location /seafile> |
| + | SSLRequireSSL on |
| + | order deny,allow |
| + | deny from all |
| + | allow from $localAccess $externalSSLAccess |
| + | </Location> |
| + | |
| + | HERE |
| + | } |
| + | } |
| + | EndOfMessage |
| + | expand-template /etc/httpd/conf/httpd.conf |
| + | service httpd-e-smith restart |
| + | </syntaxhighlight>and then you have to change the configuration to show correctly the images |
| + | |
| + | alternatively if you want to use a domain this way : seafile.mydomain.com<syntaxhighlight lang="bash"> |
| + | mkdir /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/ -p |
| + | cat > /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/VirtualHosts/28SeafileProxyPass <<- 'EndOfMessage' |
| + | # Seahub for Seafile ProxyPass |
| + | { |
| + | $haveSSL = (exists ${modSSL}{status} and ${modSSL}{status} eq "enabled") ? 'yes' : 'no'; |
| + | $seahubPort = ${'seafile'}{TCPPort} || '8000'; |
| + | $seahubdomain = ${'seafile'}{domain} || 'disabled'; |
| + | $OUT = ''; |
| + | if ((${'seafile'}{'status'} || 'disabled') eq 'enabled' && $seahubdomain eq 'disabled' ){ |
| + | |
| + | if (($port eq "80") && ($haveSSL eq 'yes')){ |
| + | $OUT .= " RewriteRule ^seafile(/.*|\$) https://%{HTTP_HOST}seafile\$1 [L,R]\n"; |
| + | } |
| + | else{ |
| + | $OUT .= " ProxyPass /seafile http://127.0.0.1:$seahubPort\n"; |
| + | $OUT .= " ProxyPassReverse /seafile http://127.0.0.1:$seahubPort\n"; |
| + | } |
| + | |
| + | $OUT .=<<"HERE"; |
| + | |
| + | <Location /seafile> |
| + | SSLRequireSSL on |
| + | order deny,allow |
| + | deny from all |
| + | allow from $localAccess $externalSSLAccess |
| + | </Location> |
| + | |
| + | HERE |
| + | } |
| + | elseif ($seahubdomain ne 'disabled' ) { |
| + | if (($port eq "80") && ($haveSSL eq 'yes')){ |
| + | $OUT .= " RewriteRule ^(/.*|\$) https://$seahubdomain\$1 [L,R]\n"; |
| + | } |
| + | else{ |
| + | $OUT .= " ProxyPass / http://127.0.0.1:$seahubPort\n"; |
| + | $OUT .= " ProxyPassReverse / http://127.0.0.1:$seahubPort\n"; |
| + | } |
| + | } |
| + | } |
| + | EndOfMessage |
| + | expand-template /etc/httpd/conf/httpd.conf |
| + | service httpd-e-smith restart |
| + | </syntaxhighlight> |
| + | |
| + | ==== service start ==== |
| + | <syntaxhighlight lang="bash"> |
| + | cat > /etc/rc.d/init.d/seafile << 'EOF' |
| + | #!/bin/bash |
| + | ### BEGIN INIT INFO |
| + | # Provides: seafile-server |
| + | # Required-Start: $remote_fs $syslog |
| + | # Required-Stop: $remote_fs $syslog |
| + | # Default-Start: 2 3 4 5 |
| + | # Default-Stop: 0 1 6 |
| + | # Short-Description: Seafile server |
| + | # Description: Start Seafile server |
| + | ### END INIT INFO |
| + | |
| + | # Change the value of "user" to your linux user name |
| + | user=root |
| + | |
| + | # Change the value of "seafile_dir" to your path of seafile installation |
| + | # usually the home directory of $user |
| + | seafile_dir=/opt/seafile |
| + | script_path=${seafile_dir}/seafile-server-latest |
| + | seafile_init_log=${seafile_dir}/logs/seafile.init.log |
| + | seahub_init_log=${seafile_dir}/logs/seahub.init.log |
| + | |
| + | |
| + | # |
| + | # Write a polite log message with date and time |
| + | # |
| + | echo -e "\n \n About to perform $1 for seafile at `date -Iseconds` \n " >> ${seafile_init_log} |
| + | echo -e "\n \n About to perform $1 for seahub at `date -Iseconds` \n " >> ${seahub_init_log} |
| + | |
| + | # Python |
| + | sclname='python27' |
| + | . /opt/rh/$sclname/enable |
| + | export X_SCLS="$X_SCLS $sclname" |
| + | |
| + | # we want start daemon only inside "scl enable" invocation |
| + | if ! scl_enabled python27 ; then |
| + | echo "Collection python27 has to be listed in /opt/rh/python27/service-environment" |
| + | exit 1 |
| + | fi |
| + | cd /opt/seafile |
| + | export TOPDIR=/opt/seafile |
| + | export INSTALLPATH=/opt/seafile |
| + | export PYTHONPATH=/opt/seafile:/opt/seafile/seafile-server/seahub/thirdpart:$PYTHONPATH |
| + | export CCNET_CONF_DIR=/opt/seafile/conf/ |
| + | export SEAFILE_CONF_DIR=/opt/seafile/seafile-data/ |
| + | export SEAFILE_CENTRAL_CONF_DIR=/opt/seafile/conf/ |
| + | export SEAHUB_LOG_DIR=/opt/seafile/logs |
| + | export SEAFILE_PIDFILE=/opt/seafile/pids/controller.pid |
| + | |
| + | case "$1" in |
| + | start) |
| + | /usr/bin/seafile-admin start |
| + | ;; |
| + | restart) |
| + | /usr/bin/seafile-admin stop |
| + | /usr/bin/seafile-admin start |
| + | stop) |
| + | /usr/bin/seafile-admin stop |
| + | |
| + | ;; |
| + | *) |
| + | echo "Usage: /etc/init.d/seafile {start|stop|restart}" |
| + | exit 1 |
| + | ;; |
| + | esac |
| + | EOF |
| + | |
| + | chkconfig seafile on |
| + | ln -s /etc/rc.d/init.d/seafile /etc/rc.d/rc7.d/S85seafile |
| + | </syntaxhighlight> |
| + | |
| + | ==== add ldap support ==== |
| + | simply add this to /opt/seafile/conf/ccnet.conf<syntaxhighlight lang="bash"> |
| + | [LDAP] |
| + | HOST = ldap://localhost |
| + | BASE = ou=Users,dc=domain,dc=tld |
| + | LOGIN_ATTR = mail |
| + | FILTER = objectClass=inetOrgPerson |
| + | |
| + | </syntaxhighlight> |
| + | |
| + | ==== add log to syslog ==== |
| + | see https://manual.seafile.com/maintain/logs.html and more : https://manual.seafile.com/deploy/using_syslog.html |
| + | |
| + | there are 2 files to edit. Then arrange logrotate |
| | | |
| === Installation === | | === Installation === |
Line 190: |
Line 407: |
| latter you will be able to do this: | | latter you will be able to do this: |
| yum --enablerepo=smecontribs install smeserver-seafile-server {{#var:smecontribname}} | | yum --enablerepo=smecontribs install smeserver-seafile-server {{#var:smecontribname}} |
| + | |
| + | === Client usage === |
| + | If you want to connect locally you need to do the following:<syntaxhighlight lang="bash"> |
| + | cd ~ |
| + | mkdir ~/seafile-client |
| + | seaf-cli init -d ~/seafile-client |
| + | seaf-cli start |
| + | seaf-cli download -l "the id of the library" -s "the url + port of server" -d "the folder where the library folder will be downloaded" -u "username on server" [-p "password"] |
| + | seaf-cli status |
| + | </syntaxhighlight> |
| | | |
| === Uninstall === | | === Uninstall === |
Line 210: |
Line 437: |
| [[Category: Contrib]] | | [[Category: Contrib]] |
| <!-- Please keep there the template revision number as is --> | | <!-- Please keep there the template revision number as is --> |
| + | === TODO === |
| + | * compile seafdav |
| + | * add pythonmodules for seafdav |
| + | * patch controller of seafile-server to force pid folder |