Instalar Seafile 6.3.2 dentro de ISPConfig 3.1

Seafile es un sistema de almacenamiento de archivos de código abierto basado en la nube, similar a Dropbox y Box. La diferencia es que Seafile puede desplegarse en el propio sistema del cliente. Esto proporciona un mayor factor de seguridad, ya que las contraseñas sólo se intercambian entre el cliente que configura el sistema y sus propios usuarios, en lugar de una empresa de alojamiento en la nube.

Hay unos cuantos tutoriales de configuración del servidor Seafile para ISPConfig, pero ninguno que no requiriera una buena mayoría de edición de los archivos que realmente deberían dejarse en paz según las recomendaciones de los desarrolladores de ISPConfig. Aunque esta configuración está escrita para Ubuntu 18.04 LTS e ISPConfig 3, puede seguirse para otras distribuciones. Esta solución funciona para mí, pero no hay garantía expresa o implícita.

Se asume que el lector quiere desplegar Seafile usando MySQL y Apache (también https). También se asume que puedes utilizar funcionalmente ISPConfig, ya que éste no es un tutorial de ISPConfig.

1 Configurar el sitio web

Abre el panel de control de tu hosting ISPConfig, haz clic en la pestaña Sitios, y crea un nuevo sitio web. Querrás asegurarte de que seleccionas Ninguno para Auto-Subdominio, SSL, Let’s Encrypt SSL, y Fast-CGI para PHP. Aunque técnicamente puedes utilizar un sitio web existente, crear uno nuevo funciona mejor, ya que nos permite mantener todos los archivos de la nube separados de otros sitios. Esto también es necesario para utilizar el panel ISPConfig para los cambios de configuración.

En el panel de configuración del sitio web, haz clic en la pestaña Opciones e inserta lo siguiente en la sección Directivas de Apache:

Alias /media /var/www/seafile.myseafile.com/private/seafile/seafile-server-latest/seahub/media
RewriteEngine On

<Location /media>
Require all granted
</Location>

# seafile httpserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub # SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 ProxyPass / http://127.0.0.1:8000/ ProxyPassReverse / http://127.0.0.1:8000/

Directrices Nginx
También debes crear un usuario shell para este sitio, ya que será necesario en breve.

Usuario SSH

2 Crear bases de datos

En el panel Sitios de ISPConfig, selecciona Usuario de base de datos y Añadir nuevo usuario. Crea un único usuario por cliente que gestionará las bases de datos seafile de ese cliente.

Usuario de la base de datos

Una vez creado el usuario de base de datos, haz clic en Bases de datos y en Añadir nueva base de datos. Tendrás que añadir tres bases de datos distintas: ccnetdb, seafiledb, seahubdb

Primera base de datos

Base de datos

tercera base de datos

3 Descarga e Instala el software Seafile

Hay algunos paquetes necesarios que debemos instalar. Inicia sesión SSH en tu servidor con un usuario que tenga permisos suficientes para instalar software.

apt-get install python2.7 python-setuptools python-simplejson python-pil python-mysqldb python-flup

Yo prefiero que todos mis servidores se ejecuten dentro del directorio privado en lugar del directorio web, así que lo configuraremos como tal. Accede mediante SSH al servidor con el nombre de usuario que hemos creado anteriormente.

cd private
mkdir seafile
cd seafile
wget https://download.seadrive.org/seafile-server_6.3.2_x86-64.tar.gz
or for 32bit
wget https://download.seadrive.org/seafile-server_6.2.5_i386.tar.gz

tar zxvf seafile-server_6.3.2_x86-64.tar.gz
mkdir installed
mv seafile-server_* installed

cd seafile-server-*
./setup-seafile-mysql.sh

En este punto, tendrás que responder a las preguntas que se te hagan en relación con tu sistema e instalación. Cuando llegues a la sección titulada Por favor, elige una forma de inicializar las bases de datos seafile, tendrás que seleccionar 2 e introducir la información de la base de datos de tu configuración de ISPConfig.

4 Ejecución Inicial

Es hora de iniciar seafile y comprobar que la configuración inicial funciona.

./seafile.sh start
./seahub.sh start

Después de iniciar los servicios, abre tu navegador web y navega a la dirección del sitio web que creaste anteriormente con el puerto 8000.

http://192.168.1.111:8000/

5 Configuración de Apache

Ahora modifica el SERVICE_URL en /ruta/a/seafile-server/ccnet/ccnet.conf

SERVICE_URL = https://www.myseafile.com

También tendremos que modificar el FILE_SERVER_ROOT en /ruta/a/seafile-server/seahub_settings.py

FILE_SERVER_ROOT = 'https://www.myseafile.com/seafhttp'

Reinicia Apache.

sudo service apache2 restart

Reinicia los servicios de Seafile.

./seafile.sh start
./seahub.sh start

6 Iniciar los servicios automáticamente

Como el objetivo aquí es mantener todo contenido con ISPConfig, en lugar de crear un servicio de inicio, vamos a añadir el script seafile a las tareas cron de los usuarios. Naturalmente, tendrás que asegurarte de que el cliente tiene la capacidad de añadir trabajos cron completos.

Crea un archivo de inicio:

cd ~/private/seafile
touch startSeafile.sh
chmod +x startSeafile.sh
Pega el siguiente código en el archivostartSeafile.sh script:
#!/bin/bash

# Change the value of «seafile_dir» to your path of seafile installation
seafile_dir=/var/www/clients/client1/web2/private/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

## Sleep command is necessary to prevent MYSQL errors if
## this script runs before MYSQL is fully operational
sleep 60 &
wait %1

case «$1» in
start)
${script_path}/seafile.sh start >> ${seafile_init_log} &
wait %1
${script_path}/seahub.sh start >> ${seahub_init_log} &
wait %1
;;
restart)
${script_path}/seafile.sh restart >> ${seafile_init_log} &
wait %1
${script_path}/seahub.sh restart >> ${seahub_init_log} &
wait %1
;;
stop)
${script_path}/seafile.sh $1 >> ${seafile_init_log} &
${script_path}/seahub.sh $1 >> ${seahub_init_log}
;;
*)
echo «Usage: /etc/init.d/seafile {start|stop|restart}»
exit 1
;;
esac

Para asegurarte de que los archivos cron se escriben correctamente, hay algunas cosas que deben comprobarse. Haz clic en Cliente -> [tu cliente] -> Límites. Asegúrate de que los Límites del Trabajo Cron están configurados como Cron Completo con 0 retardo entre ejecuciones. Después de eso solo necesitarás añadir el único trabajo cron startServer.sh en la sección Comandos a Ejecutar de ISPConfig.

/var/www/clients/client1/web42/private/seafile/startSeafile.sh start

Cronjob

¡Ya está!

Enlaces

Scroll al inicio