GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Seafile para sincronizar y compartir archivos en CentOS 8

Seafile es una solución gratuita, de código abierto y autohospedada para compartir archivos para Linux. Es un software de alojamiento de archivos multiplataforma que se puede utilizar para almacenar archivos en un servidor central y sincronizarlos con su computadora personal o dispositivo móvil. Seafile está escrito con el marco Python Django y es funcionalmente muy similar a Dropbox y Google Drive. Tiene muchas características que incluyen encriptación de archivos, control de versiones, autenticación de dos factores, edición en línea, bloqueo de archivos y muchas más.

En este tutorial, le mostraremos cómo instalar Seafile con Nginx como proxy inverso en CentOS 8.

Requisitos

  • Un nuevo CentOS 8 VPS en la plataforma en la nube Atlantic.Net
  • Un nombre de dominio válido dirigido a la IP de su servidor
  • Una contraseña de root está configurada en su servidor

Paso 1:crear un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

yum update -y

Paso 2:instalar las dependencias requeridas

Primero, deberá instalar el repositorio EPEL en su sistema. Puede instalarlo con el siguiente comando:

yum install epel-release -y

Una vez instalado el repositorio EPEL, instale otras dependencias con el siguiente comando:

yum install python3 python3-devel python3-setuptools gcc gcc-c++ freetype-devel python3-pip 
python3-ldap memcached java-1.8.0-openjdk libmemcached libreoffice-headless libreoffice-pyuno 
libffi-devel pwgen curl tar -y

Una vez que todas las dependencias estén instaladas, use el comando pip para instalar otras dependencias:

pip3 install Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-
captcha

Una vez que todos los paquetes estén instalados, habilite el servicio de Memcached para que se inicie al reiniciar el sistema:

systemctl enable --now memcached

Paso 3:instalar Nginx y MariaDB

A continuación, deberá instalar el servidor Nginx y MariaDB en su sistema. Puede instalar ambos paquetes con el siguiente comando:

yum install nginx mariadb-server -y

Una vez instalado, inicie los servicios Nginx y MariaDB y habilítelos para que se inicien al reiniciar el sistema:

systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb

Paso 4:crear una base de datos para Seafile

Primero, deberá configurar la contraseña raíz de MariaDB y proteger la instalación de MariaDB. Puedes hacerlo usando el siguiente script:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

A continuación, inicie sesión en el shell de MariaDB con el siguiente comando:

mysql -u root -p

Una vez que haya iniciado sesión, cree una base de datos para Seafile con el siguiente comando:

create database `ccnetdb` character set = 'utf8';
create database `seafiledb` character set = 'utf8';
create database `seahubdb` character set = 'utf8';

A continuación, cree un usuario para Seafile con el siguiente comando:

create user 'seafile'@'localhost' identified by 'yourpassword';

A continuación, otorgue todos los privilegios a ccnetdb, seafiledb y seahubdb con el siguiente comando:

GRANT ALL PRIVILEGES ON `ccnetdb`.* to `seafile`@localhost;
GRANT ALL PRIVILEGES ON `seafiledb`.* to `seafile`@localhost;
GRANT ALL PRIVILEGES ON `seahubdb`.* to `seafile`@localhost;

A continuación, elimine los privilegios y salga del shell de MariaDB con el siguiente comando:

FLUSH PRIVILEGES;
EXIT;

Paso 5:instalar Seafile

Primero, descargue la última versión de Seafile con el siguiente comando:

wget https://s3.eu-central-1.amazonaws.com/download.seadrive.org/seafile-server_7.1.5_x86-
64.tar.gz

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

tar -xvzf seafile-server_7.1.5_x86-64.tar.gz

A continuación, mueva el directorio extraído a /opt con el siguiente comando:

mv seafile-server-* /opt/seafile
cd /opt/seafile

A continuación, cambie el directorio a /opt/seafile y configure el servidor Seafile ejecutando el siguiente script:

./setup-seafile-mysql.sh

Se le pedirá que proporcione el nombre del servidor, el nombre de dominio válido y los detalles de la base de datos como se muestra a continuación.

Checking python on this machine ...

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

https://download.seafile.com/published/seafile-manual/home.md

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 ] seafile.example.com

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

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

Which mysql user to use for seafile?
[ mysql user for seafile ] seafile

What is the password for mysql user "seafile"?
[ password for seafile ]

verifying password of user seafile ... done

Enter the existing database name for ccnet:
[ ccnet database ] ccnetdb

verifying user "seafile" access to database ccnetdb ... done

Enter the existing database name for seafile:
[ seafile database ] seafiledb

verifying user "seafile" access to database seafiledb ... done

Enter the existing database name for seahub:
[ seahub database ] seahubdb

verifying user "seafile" access to database seahubdb ... done

Proporcione cada detalle cuidadosamente. Una vez que se haya completado la instalación, debería ver el siguiente resultado:

---------------------------------
This is your configuration
---------------------------------

server name: seafile
server ip/domain: seafile.example.com

seafile data dir: /opt/seafile-data
fileserver port: 8082

database: use existing
ccnet database: ccnetdb
seafile database: seafiledb
seahub database: seahubdb
database user: seafile

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

-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server: ./seafile.sh { start | stop | restart }
run seahub server: ./seahub.sh { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver: 8082
port of seahub: 8000

When problems occur, Refer to

https://download.seafile.com/published/seafile-manual/home.md

for information.

Paso 6:configurar la cuenta de administrador

A continuación, deberá configurar una cuenta de administrador para acceder a Seafile. Primero, inicie el servicio Seafile con el siguiente comando:

/opt/seafile/seafile.sh start

A continuación, inicie el servicio Seahub para establecer una contraseña de administrador:

/opt/seafile/seahub.sh start

Se le pedirá que establezca un nombre de usuario y contraseña de administrador como se muestra a continuación.

LC_ALL is not set in ENV, set to en_US.UTF-8
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 ] [email protected]

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

Enter the password again:
[ admin password again ]

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

A continuación, detenga los servicios de Seafile y Seahub con el siguiente comando:

/opt/seafile/seafile.sh stop
/opt/seafile/seahub.sh stop

Paso 7:cree un archivo de servicio de Systemd para Seafile

A continuación, deberá crear archivos de servicio systemd para que Seafile y Seahub administren los servicios. Primero, cree un archivo de servicio para Seafile usando el siguiente comando:

nano /etc/systemd/system/seafile.service

Agregue las siguientes líneas:

[Unit]
Description=Seafile
After= mysql.service
After=network.target

[Service]
Type=forking
ExecStart=/opt/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile-server-latest/seafile.sh stop

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo, luego cree un archivo de servicio para Seahub con el siguiente comando:

nano /etc/systemd/system/seahub.service

Agregue las siguientes líneas:

[Unit]
Description=Seafile
After= mysql.service
After=network.target

[Service]
Type=forking
ExecStart=/opt/seafile-server-latest/seahub.sh start
ExecStop=/opt/seafile-server-latest/seahub.sh stop

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie el servicio Seafile y Seahub y habilítelos para que se inicien al reiniciar el sistema con el siguiente comando:

systemctl start seafile
systemctl enable seafile
systemctl start seahub
systemctl enable seahub

En este punto, el servidor Seafile se inicia y escucha en el puerto 8000. Puede verificarlo con el siguiente comando:

ss -tunelp | grep 8000

Deberías obtener el siguiente resultado:

tcp LISTEN 0 128 127.0.0.1:8000 0.0.0.0:* 
users:(("python3",pid=44925,fd=8),("python3",pid=44924,fd=8),("pyt
hon3",pid=44923,fd=8),("python3",pid=44922,fd=8),("python3",pid=44921,fd=8),("python3",pid=44916,fd=8)) ino:77620 sk:9 
<->

Paso 8:configurar Nginx para Seafile

A continuación, deberá configurar Nginx como proxy inverso para acceder a Seafile mediante el puerto 80. Puede configurarlo con el siguiente comando:

nano /etc/nginx/conf.d/seafile.conf

Agregue las siguientes líneas:

server {
listen 80;
listen [::]:80;
server_name seafile.example.com;
autoindex off;
client_max_body_size 100M;
access_log /var/log/nginx/seafile.com.access.log;
error_log /var/log/nginx/seafile.com.error.log;

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
}

location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}

location /media {
root /opt/seafile-server-latest/seahub;
}
}

Guarde y cierre el archivo, luego reinicie el servicio Nginx con el siguiente comando:

systemctl restart nginx

Si tiene algún error, edite el archivo Nginx.conf:

nano /etc/nginx/nginx.conf

Agregue la siguiente línea debajo de http {:

server_names_hash_bucket_size 64;

Guarde y cierre el archivo, luego reinicie el servicio Nginx:

systemctl restart nginx

Paso 9:acceda a la interfaz web de Seafile

En este punto, Nginx está configurado para servir a Seafile. Ahora, abra su navegador web y acceda a la interfaz web de Seafile usando la URL http://seafile.example.com . Será redirigido a la página de inicio de sesión de Seafile:

Proporcione su nombre de usuario y contraseña de administrador y haga clic en Iniciar sesión botón. Debería ver el panel de control de Seafile en la siguiente página:

Conclusión

En el tutorial anterior, aprendió cómo instalar el servidor Seafile con Nginx como proxy inverso en CentOS 8. Ahora puede cargar sus archivos y fotos personales en el servidor Seafile, compartirlos con sus amigos y acceder a ellos desde su computadora o dispositivo móvil. ¡Pruebe Seafile en VPS Hosting de Atlantic.Net utilizando el tutorial anterior!


Linux
  1. ¿Cómo instalar y configurar Fail2ban en CentOS 8?

  2. Cómo instalar MongoDB en Ubuntu 20.04 y CentOS 8

  3. Cómo instalar DenyHost en CentOS 6.7

  4. Cómo instalar el servidor PostgreSQL en CentOS 8

  5. Cómo instalar y asegurar MongoDB 4 en CentOS 8

Cómo instalar y usar Docker en CentOS 8

Cómo instalar Java en CentOS 8

Cómo instalar Yarn en CentOS 8

Cómo instalar Metabase en CentOS 8

Cómo instalar Jenkins en CentOS 8

Cómo instalar Seafile para sincronizar y compartir archivos en CentOS 8