SeaFile: Guía Completa

SeaFile es un servicio de almacenamiento en red como OwnCloud, Dropbox, Drive… Pero tiene mas opciones y mejoras a la hora de trabajar en grupo como crear grupos, sincronización de archivos con el cliente, soporte para audio y video, encriptación de archivos, crear wikis, crear discusiones… La verdad que es una herramienta a tener en cuenta a la hora de instalar un servicio de almacenamiento en red.

Seafilelogo

Servidor

Agregar los repositorios de percona

 # vim /etc/apt/sources.list
        deb http://repo.percona.com/apt wheezy main
        deb-src http://repo.percona.com/apt wheezy main

Añadir la clave pública de percona

 # apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Actualizar repositorios

 # aptitude update

Para empezar, instalar las herramientas necesarias para instalar Seafile

 # aptitude install percona-server-server-5.6 python-imaging python-mysqldb python-setuptools

Crear la carpeta seafile en /opt e ir a ella

 # mkdir /opt/seafile && cd /opt/seafile

Descargar la última versión del programa ahora está en la 4.0.4

 # wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_4.0.4_x86-64.tar.gz

Descomprimir el archivo

 # tar -zxvf seafile-server*

Ir a la carpeta descomprimida para empezar con la instalación

 # cd seafile-server*

Ejecutar el script setup-seafile-mysql.shpara empezar con la instalación

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

        https://github.com/haiwen/seafile/wiki

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 ] seafile

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

Which port do you want to use for the ccnet server?
[ default "10001" ] 

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/opt/seafile/seafile-data" ] 

Which port do you want to use for the seafile server?
[ default "12001" ] 

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 "root" ] 

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:            seafile
    server ip/domain:       192.168.1.136
    ccnet port:             10001

    seafile data dir:       /root/seafile-data
    seafile port:           12001
    fileserver port:        8082

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

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

Iniciar los script para configurar seafile

 # ./seafile.sh start
 # ./seahub.sh start
Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] mail@operativoslinux.com

What is the password for the admin account?
[ admin password ] 

Enter the password again:
[ admin password again ] 

----------------------------------------
Successfully created seafile admin
----------------------------------------

Borrar el tar.gz descargado

 # rm /opt/seafile/seafile-server_*

(Opcional) Conectar Seafile con un LDAP

 # vim /opt/seafile/ccnet/ccnet.conf

Editar el archivo ccnet.conf

  [LDAP]
  HOST = ldap://192.168.1.1:389
  BASE = ou=users,dc=operativoslinux,dc=com
  USER_DN = cn=admin,dc=operativoslinux,dc=com
  PASSWORD = contraseña_admin
  LOGIN_ATTR = mail

Reiniciar seafile

 # bash /opt/seafile/seafile-server-4.0.4/seafile.sh restart

(Opcional) Realizar cambios en la configuración de Seafile

Editar el archivo settings.py

 # vim /opt/seafile/seafile-server-4.0.4/seahub/seahub/settings.py

Forzar el idioma a español. Cambiar “en” por “es”

   LANGUAGE_CODE = 'es'

Cambiar la zona horaria

   TIME_ZONE = 'Europe/Madrid'

Cambiar el logo de inicio

   LOGO_PATH = 'img/logo_nuestro.png'
La imagen tiene que estar en esta carpeta "/opt/seafile/seafile-server-4.0.4/seahub/media/img"

Reiniciar seahub

 # bash /opt/seafile/seafile-server-4.0.4/seahub.sh restart

(Opcional) Hacer que Seafile funcione con HTTPS en Apache

Asegurarse que /etc/hosts está bien configurado

Crear los certificados

 # mkdir /opt/seafile/certificados && cd /opt/seafile/certificados
 # openssl genrsa -out privkey.pem 2048
 # openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

En Debian habilitar los repositorios non-free

 # vim /etc/apt/sources.list
deb http://ftp.es.debian.org/pub/debian/ wheezy main non-free
deb-src http://ftp.es.debian.org/pub/debian/ wheezy main non-free
deb http://security.debian.org/ wheezy/updates main non-free
deb-src http://security.debian.org/ wheezy/updates main non-free

Luego actualizar repositorios

 # aptitude update

Instalar apache2 y los paquetes que necesite

# aptitude install apache2 python-flup libapache2-mod-fastcgi 

Habilitar módulos en apache

 # a2enmod rewrite
 # a2enmod fastcgi
 # a2enmod proxy_http
 # a2enmod ssl

Editar el fichero de configuración de apache

 # vim /etc/apache2/apache2.conf

Al final del todo pegar lo siguiente

 FastCGIExternalServer /var/www/seahub.fcgi -host 127.0.0.1:8000

Modificar el default de apache

 # vim /etc/apache2/sites-available/default
<VirtualHost *:443>
    ServerName seafile.operativoslinux.com
    DocumentRoot /var/www
    Alias /media  /opt/seafile/seafile-server-latest/seahub/media

    SSLEngine On
    SSLCertificateFile /opt/seafile/certificados/cacert.pem
    SSLCertificateKeyFile /opt/seafile/certificados/privkey.pem

    RewriteEngine On

    <Location /media>
        Order allow,deny
        Allow from all
    </Location>

       ProxyPass /seafhttp http://127.0.0.1:8082
    ProxyPassReverse /seafhttp http://127.0.0.1:8082
    RewriteRule ^/seafhttp - [QSA,L]
    <Location /seafhttp>
        Order allow,deny
        Allow from all
    </Location>    

    RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</VirtualHost>

Editar el archivo ports.conf y modificar NameVirtualHost

 # vim /etc/apache2/ports.conf
    NameVirtualHost *:443

Modificar ccnet.conf

# vim /opt/seafile/ccnet/ccnet.conf
SERVICE_URL = https://seafile.operativoslinux.com

Modificar seahub_settings.py

 # vim /opt/seafile/seahub_settings.py
FILE_SERVER_ROOT = 'https://seafile.operativoslinux.com/seafhttp'

Reiniciar todos los servicios

 # service apache2 restart
 # bash /opt/seafile/seafile-server-4.0.4/seafile.sh restart
 # bash /opt/seafile/seafile-server-4.0.4/seahub.sh restart-fastcgi

Una vez terminada la configuración solo queda abrir el navegador web y escribir la dirección IP de la máquina y el puerto 8000

 https://192.168.1.136:8000

Selección_004

Selección_005

Cliente

Descargar el precompilado del cliente

 # wget https://bitbucket.org/haiwen/seafile/downloads/seafile_4.0.6_amd64.deb

Instalar las dependencias necesarias

 # aptitude install libcurl3 libjansson4 libqt4-xmlpatterns libqtwebkit4

Instalar el paquete de seafile

 # dpkg -i seafile_4.0.6_amd64.deb

Iniciar seafile y configurarlo

 # seafile-applet

Ref:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-seafile-on-an-ubuntu-12-04-vps

5 comments

  1. Una duda, yo tengo corriendo el seafile, pero quiero que se vean en el app directorios de la maquina debian donde está instalado el sistema, pero no encuentro la manera. Solo puedo agregar archivos. Tu has hecho algo semejante?

    De antemano gracias, Saludos.

    1. Buenas, eso lo hice yo con un proxypass con el apache:

      # vim /etc/apache2/sites-available/default

      ServerName seafile.operativoslinux.com
      DocumentRoot /var/www
      Alias /media /opt/seafile/seafile-server-latest/seahub/media

      SSLEngine On
      SSLCertificateFile /opt/seafile/certificados/cacert.pem
      SSLCertificateKeyFile /opt/seafile/certificados/privkey.pem

      RewriteEngine On

      Order allow,deny
      Allow from all

      ProxyPass /seafhttp http://127.0.0.1:8082
      ProxyPassReverse /seafhttp http://127.0.0.1:8082
      RewriteRule ^/seafhttp – [QSA,L]

      Order allow,deny
      Allow from all

      RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *