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.
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
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
Gracias por el aporte! 😉
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.
Buenas, no he probado nunca eso.
Pero si saco tiempo y puedo probarlo, lo pruebo y te digo por aquí
Gracias y un saludo.
Buenas, he instalado Seafile pero solo me funciona para la red interna. Como hago para gestionar los archivos desde fuera de mi red?
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}]