Cómo Instalar y Configurar Seafile en Ubuntu 18.04

Seafile es un servicio de almacenamiento gratuito, de código abierto y auto-hospedado, muy similar a DropBox y NextCloud. Con Seafile, puedes sincronizar y compartir archivos, contactos y datos en cualquier dispositivo con enlaces protegidos por contraseña. Está escrito en lenguaje Python y usa MySQL para almacenar los datos. Seafile se puede instalar en los sistemas operativos Linux y Windows y clientes GUI para OS X, Android, Linux, iOS y Windows. Seafile viene con un amplio conjunto de características que incluyen multiplataforma, control de versiones, autenticación en dos factores, instantáneas, WebDAV, cifrado y muchos más.

En este tutorial, aprenderemos cómo instalar y configurar Seafile en un servidor cloud corriendo con Ubuntu 18.04.

Prerequisitos

  • Un servidor vps cloud corriendo con Ubuntu 18.04.
  • Un password root en tu servidor cloud vps.

Empezamos

Comencemos actualizando tu sistema a la última versión. Ejecuta el siguiente comando para actualizar tu sistema:

# apt-get update -y
# apt-get upgrade -y

Una vez actualizado, reinicia tu sistema para aplicar todas las actualizaciones.

A continuación, deberás instalar Python con todas las dependencias requeridas en tu servidor. Puedes instalarlas todas ejecutando el siguiente comando:

# apt-get install python2.7 libpython2.7 python-setuptools python-pil python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-requests unzip wget

Una vez que estén instaladas todas las dependencias, ya puedes proceder al siguiente paso.

Instalar Apache y MariaDB

Primero necesitarás instalar Apache y MariaDB en tu servidor. Puedes instalar ambos con el siguiente comando:

# apt-get install apache2 mariadb-server mariadb-client -y

Una vez que ambos paquetes estén instalados, inicia Apache y MariaDB y permite que se inicien después de reiniciar el sistema con el siguiente comando:

# systemctl start apache2
# systemctl enable apache2
# systemctl start mariadb
# systemctl enable mariadb

Configuración de la Base de Datos para Seafile

A continuación, necesitarás crear bases de datos para los componentes de Seafile. Primero, entra en el shell de MariaDB con el siguiente comando:

# mysql -u root -p

Proporciona tu contraseña de root cuando se te solicite, luego crea tres bases de datos con el siguiente comando:

# MariaDB [(none)]> CREATE DATABASE seafile;
# MariaDB [(none)]> CREATE DATABASE ccnet;
# MariaDB [(none)]> CREATE DATABASE seahub;

Después, crear un usuario para Seafile con el siguiente comando:

# MariaDB [(none)]> CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'password';

A continuación, concede todos los privilegios a las bases de datos arriba creadas:

# MariaDB [(none)]> GRANT ALL ON seafile.* TO 'seafile'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
# MariaDB [(none)]> GRANT ALL ON ccnet.* TO 'seafile'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
# MariaDB [(none)]> GRANT ALL ON seahub.* TO 'seafile'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

A continuación, elimina los privilegios y sal del shell MariaDB con el siguiente comando:

# MariaDB [(none)]> FLUSH PRIVILEGES;
# MariaDB [(none)]> EXIT;

Instala Seafile

Primero, deberás descargar la última versión del instalador de Seafile desde su sitio web oficial. Puede descargarlo con el siguiente comando:

# wget https://download.seadrive.org/seafile-server_7.0.4_x86-64.tar.gz

Una vez descargado, extrae el archivo descargado con el siguiente comando:

# tar -xvzf seafile-server_7.0.4_x86-64.tar.gz

A continuación, copia el directorio extraído en el directorio raíz de Apache con el siguiente comando:

# cp -r seafile-server-7.0.4 /var/www/html/seafile

A continuación, ejecuta el script de instalación de Seafile para iniciar la instalación:

# cd /var/www/html/seafile
./setup-seafile-mysql.sh

Durante la instalación, deberás responder una serie de preguntas.

Comprobando python en esta máquina …

Comprobando el módulo de Python: python-mysqldb … Listo.

—————————————————————–

Este script te guiará para configurar tu servidor Seafile utilizando MySQL.

Asegúrate de haber leído el manual del servidor Seafile en

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

Presiona ENTER para continuar

—————————————————————–

¿Cuál es el nombre del servidor? Se mostrará en el cliente.

3 – 15 letras o dígitos

[nombre del servidor] seafile

¿Cuál es la ip o dominio del servidor?

Por ejemplo: www.mycompany.com, 192.168.1.101

[IP o dominio de este servidor] 38.143.68.184

¿Dónde deseas poner tus datos de Seafile?

Utiliza un volumen con suficiente espacio libre.

[predeterminado “/ var / www / html / seafile-data”]

¿Qué puerto deseas utilizar para el servidor de archivos de Seafile?

[predeterminado “8082”]

——————————————————-

Elige una forma de iniciar las bases de datos de Seafile:

——————————————————-

[1] Crea nuevas bases de datos ccnet / seafile / seahub

[2] Utiliza las bases de datos ccnet / seafile / seahub existentes

[1 o 2] 2

¿Cuál es el host del servidor mysql?

[predeterminado “localhost”]

¿Cuál es el puerto del servidor mysql?

[predeterminado “3306”]

¿Qué usuario de mysql usar para Seafile?

[usuario de mysql para seafile] seafile

¿Cuál es la contraseña para el usuario “seafile” de mysql?

[contraseña para seafile]

Verificando la contraseña del usuario seafile … Hecho.

Ingresa el nombre de la base de datos existentes para ccnet:

[base de datos ccnet] ccnet

Verificación del acceso del usuario “seafile” a la base de datos ccnet … hecho.

Ingresa el nombre de la base de datos existente para seafile:

[base de datos seafile] seafile

Verificación del acceso del usuario “seafile” a la base de datos seafile … hecho.

Ingresa el nombre de la base de datos existente para seahub:

[base de datos seahub] seahub

verificar el acceso de seafile del usuario a la base de datos seahub … hecho.

———————————

Ésta es tu configuración

———————————

nombre del servidor: seafile

IP / dominio del servidor: 38.143.68.184

dir de datos de seafile: / var / www / html / seafile-data

puerto del servidor de archivos: 8082

base de datos: uso existente

base de datos ccnet: ccnet

base de datos seafile: seafile

base de datos seahub: seahub

usuario de la base de datos: seafile

———————————

Presiona ENTER para continuar, o Ctrl-C para cancelar.

Verifica toda la configuración y presiona ENTER para continuar la instalación. Una vez que la instalación se haya completado con éxito, deberías ver el siguiente resultado:

—————————————————————–

La configuración del servidor seafile se ha completado correctamente.

—————————————————————–

ejecuta el servidor seafile: ./seafile.sh {inicio | parar | reiniciar }

ejecuta el servidor seahub: ./seahub.sh {start <port> | parar | reiniciar <puerto>}

—————————————————————–

Si estás detrás de un firewall, recuerda permitir la entrada / salida de estos puertos tcp:

—————————————————————–

servidor de archivos del puerto de seafile: 8082

puerto de seahub: 8000

Si ocurre un problema, consulta:

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

para información.

A continuación, configura los permisos correctos para Seafile con el siguiente comando:

# chown -R www-data:www-data /var/www/html/

A continuación, deberás establecer el valor de FILE_SERVER_ROOT. Puedes hacerlo editando el archivo seahub_settings.py:

 nano /var/www/html/conf/seahub_settings.py 

Añade la siguiente línea:

 FILE_SERVER_ROOT = 'http://38.143.68.184/seafhttp'

Guarda y cierra el archivo cuando hayas terminado.

Configura Apache para Seafile

A continuación, deberás configurar Apache como proxy inverso para Seafile. Puedes hacerlo creando el siguiente archivo:

 nano /etc/apache2/sites-available/seafile.conf 

Añade las siguientes líneas:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/seafile/
     ServerName 38.143.68.184 
Alias /media "/var/www/html/seahub/media"
 <Directory /var/www/html/seafile/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/html/seafile
        SetEnv HTTP_HOME /var/www/html/seafile
     </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
        <Proxy *>
          Order deny,allow
          Allow from all
        </Proxy>
     ProxyPass / http://127.0.0.1:8000/
     ProxyPassReverse / http://127.0.0.1:8000/
ProxyPass /seafhttp http://127.0.0.1:8082
     ProxyPassReverse /seafhttp http://127.0.0.1:8082
     RewriteRule ^/seafhttp - [QSA,L]
</VirtualHost>

Guarda y cierra el archivo. Luego, habilita el archivo de host virtual Seafile y otros módulos necesarios con el siguiente comando:

# a2ensite seafile.conf
# a2enmod rewrite
# a2enmod proxy
# a2enmod proxy_http
# a2enmod headers
# a2enmod env
# a2enmod dir
# a2enmod mime

Finalmente, reinicia el servicio Apache para cargar todas las configuraciones:

# systemctl restart apache2

Crea un Usuario Administrador para Seafile

A continuación, deberás crear un usuario administrador y establecer una contraseña para ello.

Primero, inicia el servicio Seafile con el siguiente comando:

# su -p -l www-data -s /bin/bash -c "./seafile.sh start"

A continuación, inicia el servicio Seahub para crear una cuenta de administrador con el siguiente comando:

# su -p -l www-data -s /bin/bash -c "./seahub.sh start"

Se te pedirá que crees una cuenta de administrador como se muestra a continuación:

LC_ALL no está configurado en ENV, configurado en en_US.UTF-8

Iniciando seahub en el puerto 8000 …

—————————————-

Es la primera vez que inicias el servidor de seafile. Ahora creamos la cuenta de administrador

—————————————-

¿Cuál es el correo electrónico para la cuenta de administrador?

[correo electrónico del administrador] [email protected]

¿Cuál es la contraseña de la cuenta de administrador?

[ clave de administrador ]

Ingresa la contraseña nuevamente:

[contraseña de administrador nuevamente]

—————————————-

Creado con éxito el admin seafile

—————————————-

Seahub se ha iniciado.

Hecho.

Crea el archivo de servicio Systemd para Seafile y Seahub

A continuación, deberás crear un archivo de servicio systemd para administrar los servicios Seafile y Seahub.

Primero, crea un archivo de servicio seafile con el siguiente comando:

# nano /etc/systemd/system/seafile.service

Añade las siguientes líneas:

[Unit]
Description=Seafile
After= mysql.service
After=network.target
[Service]
User=www-data
Group=www-data[/php

Type=forking
ExecStart=/var/www/html/seafile-server-latest/seafile.sh start
ExecStop=/var/www/html/seafile-server-latest/seafile.sh stop
[Install]
WantedBy=multi-user.target 

Guarda y cierre el archivo. Luego, crea un archivo de servicio systemd para Seahub con el siguiente comando:

# nano /etc/systemd/system/seahub.service

Añade las siguientes líneas:

[Unit]
Description=Seafile
After= mysql.service
After=network.target
 [Service]
User=www-data
Group=www-data
Type=forking
ExecStart=/var/www/html/seafile-server-latest/seahub.sh start
ExecStop=/var/www/html/seafile-server-latest/seahub.sh stop
[Install]
WantedBy=multi-user.target

Guarda y cierre el archivo. Luego, vuelve a cargar el demonio systemd con el siguiente comando:

# systemctl daemon-reload

A continuación, reinicia el servicio Seafile y Seahub y permite que se inicien después de reiniciar el sistema con el siguiente comando:

# systemctl restart seafile
# systemctl enable seafile
# systemctl restart seahub
# systemctl enable seahub

Accede a la Interfaz Web de Seafile

Ahora abre tu navegador web y escribe la URL http: // your-server-ip. Serás redirigido a la página de inicio de sesión de Seafile:

Proporciona tu nombre de usuario y contraseña de administrador, y haz clic en el botón Iniciar Sesión. Deberías ver el panel predeterminado de Seafile en la siguiente pantalla:

¡Felicidades! Has instalado y configurado correctamente Seafile en el servidor  cloud corriendo conUbuntu 18.04.

Ya puedes compartir archivos, contactos y datos con cualquier usuario 🙂

 

To write a comment on this article, fill out the form below. Fields marked with an asterisk (*) are required.