Difference between revisions of "Seafile"

From SME Server
Jump to navigationJump to search
Line 222: Line 222:
  
 
==== configure httpd reverse proxy ====
 
==== configure httpd reverse proxy ====
 +
the easy way is :<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>
  
 
=== Installation ===
 
=== Installation ===

Revision as of 23:30, 4 March 2018




seafile
NeedImage.svg
seafile logo
Maintainer[[user:Jean-Philippe Pialasse|Jean-Philippe Pialasse]]
Urlhttps://wwww.seafile.com
Category

file

Tags cloudfile share


Warning.png Warning:
This is early alpha development please use only on test machine, not for production


Maintainer

Jean-Philippe Pialasse

Version

smeserver-seafile
The latest version of smeserver-seafile is available in the SME repository, click on the version number(s) for more information.


Alpha 9:
seafile
The latest version of seafile is available in the SME repository, click on the version number(s) for more information.


Alpha 9:
seafile-server
The latest version of seafile-server is available in the SME repository, click on the version number(s) for more information.


Alpha 9:
ccnet
The latest version of ccnet is available in the SME repository, click on the version number(s) for more information.


Description

install needed repo

yum install --enablerepo=smedev,smecontribs smeserver-extrarepositories-epel smeserver-extrarepositories-centos-sclo -y
signal-event yum-modify

install

yum install --enablerepo=smedev,smecontribs,epel,centos-sclo-rh,centos-sclo-centos seafile-seahub seafile-server

this will at least pull :

  • ccnet-server          x86_64       5.1.3-4.el6.sme         smedev         91 k
  • fuse-libs             x86_64       2.8.3-5.el6             base           74 k
  • libarchive            x86_64       2.8.3-7.el6_8           base          127 k
  • libccnet              x86_64       5.1.3-4.el6.sme         smedev         38 k
  • libevent2             x86_64       2.0.21-2.el6            base          193 k
  • libevhtp              x86_64       1.2.11n-4.el6.sme       smedev        125 k
  • libsearpc             x86_64       3.0.7-3.el6.sme         smedev         27 k
  • libzdb                x86_64       3.1-4.el6.sme           smedev         63 k
  • postgresql-libs       x86_64       8.4.20-8.el6_9          updates       202 k
  • python-ccnet          noarch       5.1.3-4.el6.sme         smedev         37 k
  • python-seafile        noarch       5.1.3-1                 smedev         42 k
  • seafile-lib x86_64       5.1.3-1                 smedev         36 k

NB: you will need new version of sqlite 3.7.17-9.el6.sme from smecontribs.; need to add this in Requires of the seafile-server rpms

yum update sqlite --enablerepo=smedev,smecontribs

also will need to update spec file of seafile server : Requires: /usr/bin/ccnet-init

yum install ccnet --enablerepo=smecontribs,smedev

NOT TO DO as already compiled :

install prerequesites for seafile -server is still missing. maybe not necessary

yum install libevent libcurl4-openssl libglib  uuid  intltool   libsqlite  libmysqlclient  libarchive    libtool  libjansson   valac   libfuse --enablerepo=epel,smedev,smecontribs

will miss this

  • libcurl4-openssl
  • libglib
  • libsqlite
  • libmysqlclient
  • libjansson
  • valac
  • libfuse

install python27

yum install python27-python sclo-python27-python-chardet python27-python-six  --enablerepo=centos-sclo-rh,epel,centos-sclo-centos

install prerequesite for seahub

yum install --enablerepo=epel pytz

will need pip install or create rpm :

install Django and other python related modules

scl enable python27 "pip install https://github.com/haiwen/django-constance/archive/bde7f7c.zip"
scl enable python27 "pip install django==1.8"
scl enable python27 "pip install django-statici18n"
scl enable python27 "pip install djangorestframework"
scl enable python27 "pip install openpyxl"
scl enable python27 "pip install pytz"
scl enable python27 "pip install django-post_office "
scl enable python27 "pip install django-picklefield "
scl enable python27 "pip install gunicorn "
scl enable python27 "pip install flup "
scl enable python27 "pip install jsonfield "
scl enable python27 "pip install Pillow  "
scl enable python27 "pip install python-dateutil"

NB, rpm installation of python-six is too old for dateutile :

  Downloading python_dateutil-2.6.1-py2.py3-none-any.whl (194kB)
    100% |████████████████████████████████| 194kB 1.2MB/s 
Collecting six>=1.5 (from python-dateutil)
  Downloading six-1.11.0-py2.py3-none-any.whl
Installing collected packages: six, python-dateutil
  Found existing installation: six 1.3.0
    DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
    Uninstalling six-1.3.0:

the following needs gcc

yum install gcc intltool libtool glib2-devel
yum install python27-python-devel --enablerepo=centos-sclo-rh
scl enable python27 "pip install django-compressor "
yum remove gcc cpp cloog-ppl mpfr ppl autoconf automake gettext-devel gettext-libs libart_lgpl libgcj glib2-devel
yum remove python27-python-devel scl-utils-build

well I got some errors and the files in github says different from doc

scl enable python 27: test-requirements.txt and  	requirements.txt for 5.1 branch


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

I also see some memcached service is needed... seahub/avatar/sql/migration.md

startup scripts and sme related db

config set seafile service TCPPort 8000 status enabled access private

signal-event remoteaccess-update

configuration

Start server

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
mkdir /opt/seafile/; 
cd  /opt/seafile/; 
mkdir seafile-server/
mkdir seafile-server/runtime
mkdir -p /opt/seafile/seafile-data/library-template
cd seafile-server/
ln /usr/share/seafile-seahub seahub -s
cd /opt/seafile/

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

python seafile-server/seahub/manage.py syncdb

issue: seafile-admin setup makes creation of seahub.db in /usr

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

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

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

Your seafile server configuration has been finished successfully.

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

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

To start/stop seafile server:

$ cd /opt/seafile

$ seafile-admin { start | stop }

If you have any problem, refer to

Seafile server manual:      https://github.com/haiwen/seafile/wiki

Seafile discussion group:   https://groups.google.com/forum/?fromgroups#!forum/seafile

Seafile website:            http://www.seafile.com

for more information.

# seafile-admin start

Starting seafile-server...
Starting seahub...
Seahub running on port 8000
Done

configure httpd reverse proxy

the easy way is :

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

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

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

Installation

for now you need to do :

latter you will be able to do this:

yum --enablerepo=smecontribs install smeserver-seafile-server smeserver-seafile

Uninstall

yum remove smeserver-seafile  seafile

Bugs

Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-seafile component or use this link


Below is an overview of the current issues for this contrib:

IDProductVersionStatusSummary
10527SME Contribs9.2IN_PROGRESSrebuild with sqlite3 notify support

Changelog

Only released version in smecontrib are listed here.


References