Búsqueda de sitios web

Instalación de Seafile (almacenamiento seguro en la nube) con base de datos MySQL en RHEL/CentOS/SL 7.x/6.x


Seafile es una aplicación avanzada de almacenamiento colaborativo en la nube de código abierto escrita en Python con soporte para compartir y sincronizar archivos, colaboración en equipo y protección de la privacidad mediante cifrado del lado del cliente. Está construido como una sincronización de archivos multiplataforma con clientes que se ejecuta en todas las plataformas principales (Linux, Raspberry Pi, Windows, Mac, iPhone y Android) y se puede integrar fácilmente con servicios locales como LDAP y WebDAV o se puede implementar usando aplicaciones avanzadas. servicios de red y bases de datos como MySQL, SQLite, PostgreSQL, Memcached, Nginx o Apache Web Server.

Este tutorial lo guiará paso a paso en la instalación de Seafile Server en RHEL/CentOS/Scientific Linux 7.x/6.x implementado con la base de datos MySQL, con inicio init scripts para ejecutar el servidor en el puerto Seafile predeterminado (8000/TCP) y el puerto de transacción HTTP predeterminado (80/TCP), crean las reglas de firewall necesarias para abrir los puertos requeridos.

Requisitos

  1. Instalación mínima de CentOS 6.5 con dirección IP estática.
  2. Base de datos MySQL/MariaDB
  3. Python 2.6.5+ o 2.7
  4. Herramientas de configuración de Python
  5. Python-simplejson
  6. Imágenes de Python
  7. Python-mysqldb

Este procedimiento de instalación se probó en el sistema CentOS 6.4 de 64 bits, pero también se puede utilizar en otras distribuciones de Linux con la especificación de que los scripts de inicio init difieren de una distribución a otra. .

Paso 1: instalar los módulos de Python

1. Primero realice una Actualización del sistema, luego instale todos los módulos de Python necesarios usando los siguientes comandos.

yum upgrade
yum install python-imaging MySQL-python python-simplejson python-setuptools

2. Si utiliza un servidor Debian o Ubuntu, instale todos los módulos de Python con los siguientes comandos.

sudo apt-get update
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

Paso 2: Instale el servidor Seafile

3. Después de instalar todos los módulos de Python, cree un nuevo usuario del sistema con una contraseña segura que se utilizará para alojar la configuración del servidor Seafile y todos los datos en su directorio de inicio, luego cambie a la cuenta de usuario recién creada.

adduser seafile
passwd seafile
su - seafile

4. Luego inicie sesión en la base de datos MySQL y cree tres bases de datos, una para cada componente del servidor Seafile: servidor ccnet, servidor seafile y seahub. con un único usuario para todas las bases de datos.

mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

5. Ahora es el momento de descargar e instalar Seafile Server. Vaya a la página de descarga oficial de Seafile y obtenga la última versión del archivo .Tar de Linux para la arquitectura de su servidor usando el comando wget, luego extráigalo a su usuario principal de Seafile creado anteriormente e ingrese Seafile. directorio extraído.

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
tar xfz seafile-server_3.0.4_x86-64.tar.gz
cd seafile-server_3.0.4/

6. Para instalar Seafile Server usando la base de datos MySQL, ejecute el script de inicialización setup-seafile-mysql.sh y responda todas las preguntas usando las siguientes opciones de configuración, después de que el script verifique la existencia de todos los módulos requeridos por Python.

./setup-seafile-mysql.sh
  1. ¿Cuál es el nombre de su servidor?=elija un nombre descriptivo (no se permiten espacios).
  2. ¿Cuál es la IP o dominio del servidor?=ingrese la dirección IP de su servidor o su nombre de dominio válido.
  3. ¿Qué puerto desea utilizar para el servidor ccnet?=presiona [Entrar] – déjalo predeterminado – 10001.
  4. ¿Dónde desea colocar los datos de Seafile?=presione [Entrar] – la ubicación predeterminada será su directorio $HOME/seafile-data.
  5. ¿Qué puerto desea utilizar para el servidor seafile?=presiona [Entrar] – déjalo predeterminado – 12001.

  1. ¿Qué puerto desea utilizar para el servidor https de seafile?=presiona [Entrar] – déjalo predeterminado – 8082.
  2. Elija una forma de inicializar las bases de datos de Seafile:=elija 1 y proporcione las credenciales MySQL predeterminadas: localhost, 3306 y contraseña de root.
  3. Ingrese el nombre del usuario MySQL de seafile:=seafile (si creó otro nombre de usuario, ingrese ese nombre de usuario) y la contraseña de usuario de seafile MySQL.
  4. En las bases de datos de ccnet-server, seafile-server y seahub, simplemente presione la tecla [Enter] (predeterminada).

Después de que Seafile Server se instale exitosamente, generará información útil, como qué puertos deben estar abiertos en su Firewall para permitir la conexión externa y qué scripts manejar para iniciar el servidor.

Paso 3: abra el firewall y cree el script de inicio de Seafile

7. Antes de iniciar el servidor Seafile desde el script local para realizar una prueba, vuelva a la cuenta root y abra la configuración del archivo de firewall iptables ubicado en . /etc/sysconfig/ ruta del sistema y agregue las siguientes reglas de línea antes de la primera línea REJECT, luego reinicie iptables para aplicar nuevas reglas.

su - root
nano /etc/sysconfig/iptables

Adjunte las siguientes reglas.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

Reinicie iptables para aplicar reglas usando el siguiente comando.

service iptables restart

NOTA: Si cambió los puertos estándar de Seafile durante el proceso de instalación, actualice las reglas de iptables de su Firewall en consecuencia.

8. Ahora es el momento de probar Seafile Server. Cambie al usuario de Seafile y al directorio seafile-server e inicie el servidor usando los scripts seafile.sh y seahub.sh.

La primera vez que inicie el script seahub.sh, cree una cuenta administrativa para Seafile Server utilizando su dirección de correo electrónico y elija una contraseña segura para la cuenta de administrador, especialmente si está implementando esta configuración en un entorno de producción.

su - seafile
cd seafile-server-latest/
./seafile.sh start
./seahub.sh start

9. Después de que el servidor se haya iniciado exitosamente, abra un navegador y navegue hasta la dirección IP de su servidor o el nombre de dominio en el puerto 8000 usando el protocolo HTTP, luego inicie sesión usando su cuenta de administrador creada. en el paso anterior.

http://system_IP:8000

OR 

http://domain_name:8000

10. Después de las primeras pruebas de configuración, detenga el servidor Seafile y cree un script init que le ayudará a gestionar más fácilmente todo el proceso, como cualquier otro proceso demonio del sistema Linux.

./seafile.sh stop
./seahub.sh stop
su - root
nano /etc/init.d/seafile

Agregue el siguiente contenido en este script init: si Seafile está instalado en otro usuario del sistema, asegúrese de actualizar el usuario y las rutas en consecuencia en las líneas su – $USER -c.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. Después de crear el archivo init, asegúrese de que tenga permisos de ejecución y administre el proceso usando start, stop y reiniciar. Ahora puede agregar el servicio Seafile al iniciar el sistema usando el comando chkconfig.

chmod +x /etc/init.d/seafile
service seafile start 
service seafile stop 
service seafile restart
chkconfig seafile on | off
chkconfig --list seafile

12. De forma predeterminada, el servidor Seafile utiliza el puerto HTTP 8000/TCP para transacciones web. Si desea acceder a Seafile Server desde el navegador en el puerto HTTP estándar, utilice el siguiente script init que inicia el servidor en el puerto 80 (tenga en cuenta que iniciar un servicio en los puertos inferiores a < b>1024 requiere privilegios de root).

nano /etc/init.d/seafile

Agregue el siguiente contenido en este script init para iniciar Seafile en el puerto HTTP estándar. Si Seafile está instalado en otro usuario del sistema, asegúrese de actualizar el usuario y las rutas en consecuencia en las líneas su – $USER -c y $HOME.

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. Si anteriormente inició Seafile en el puerto 8000, asegúrese de que todos los procesos estén finalizados, inicie el servidor en el puerto 80.

chmod +x /etc/init.d/seafile
service seafile start | stop | restart

Abra un navegador y diríjalo a la siguiente dirección.

http://system_ip 

OR

http://domain_name.tld

14. También puede verificar en qué puertos se ejecuta Seafile usando el comando netstat.

netstat -tlpn

¡Eso es todo! Seafile puede reemplazar felizmente otras plataformas colaborativas y de sincronización de archivos en la nube como Dropbox público, Owncloud, Pydio, OneDrive, etc. en su organización, al estar diseñado para un mejor trabajo en equipo y un control total sobre su almacenamiento con seguridad avanzada en el espacio del usuario.

En mi próximo artículo, cubriré cómo instalar el cliente Seafile en sistemas Linux y Windows y también le mostraré cómo conectarse a Seafile Server. Hasta entonces estad atentos a Tecmint y no olvidéis dejar vuestros valiosos comentarios.