Herramienta para compartir archivos en Ubuntu 20.04

Este tutorial te enseñará cómo instalar FileRun, una herramienta para compartir archivos, en Ubuntu 20.04 LTS con un servidor web Apache/Nginx. FileRun es una alternativa auto-alojada de Google Drive/Fotos/Música.

herramienta para compartir archivos

Características de FileRun

  • Puede acceder a los archivos del sistema de archivos directamente.
  • Compatible con NextCloud.
  • Versionado automático de archivos.
  • 100% personalizable. Sube tu propio logo.
  • Ampliable. Plugins que permiten crear y editar archivos de oficina, archivos CAD, etc.
  • Usuarios invitados.
  • Organiza, sincroniza y comparte tus fotos.
  • Reproductor y organizador de música incorporado.

Requisitos para instalar la herramienta para compartir archivos

Para seguir este tutorial, necesitarás un nombre de dominio y un servidor. Yo registré mi nombre de dominio en NameCheap porque el precio es bajo y dan protección de privacidad whois gratis de por vida. Un servidor con 1G de RAM es suficiente para ejecutar FileRun. Una vez que tengas un servidor, instala Ubuntu en él y sigue las siguientes instrucciones.

FileRun está escrito en PHP y utiliza la base de datos MySQL/MariaDB. Para seguir este tutorial, se asume que ya has configurado la pila LAMP o LEMP en Ubuntu 20.04. Si no es así, aqui te dejos los tutoriales de como hacerlo:

Cuando hayas terminado de configurar la pila LAMP o LEMP, vuelve aquí y sigue leyendo.

Paso 1: Descargar FileRun en Ubuntu 20.04

Inicie sesión en su servidor a través de SSH. Siempre puede utilizar el siguiente comando para descargar la última versión de FileRun en su servidor.

sudo wget -O FileRun.zip https://filerun.com/download-latest

Una vez descargado, extrae el archivo con unzip.

sudo apt install unzip
sudo mkdir -p /var/www/filerun/
sudo unzip FileRun.zip -d /var/www/filerun/

La opción -d especifica el directorio de destino. Los archivos web de FileRun se extraerán a /var/www/filerun/. Entonces necesitamos cambiar el propietario de este directorio a www-data para que el servidor web pueda escribir en este directorio.

sudo chown www-data:www-data /var/www/filerun/ -R

Paso 2: Crear una base de datos y un usuario en MariaDB

Inicie sesión en el servidor de bases de datos MariaDB con el siguiente comando.

sudo mysql

También puedes utilizar este comando para iniciar la sesión.

sudo mariadb

A continuación, cree una base de datos para FileRun. Este tutorial nombra la base de datos filerun. Puedes usar el nombre que quieras.

create database filerun;

Crea el usuario de la base de datos. De nuevo, puedes utilizar el nombre que prefieras para este usuario. Reemplaza tu-contraseña con tu contraseña preferida.

create user filerun@localhost identified by 'tu-contraseña';

Concede a este usuario todos los privilegios sobre la base de datos filerun.

grant all privileges on filerun.* to filerun@localhost;

Limpiar los privilegios y salir.

flush privileges;
exit;

Paso 3: Crear el archivo de configuración de Apache o Nginx

Apache

Si prefieres usar el servidor web Apache, entonces crea un archivo de configuración de host virtual en el directorio /etc/apache2/sites-available/.

sudo nano /etc/apache2/sites-available/filerun.conf

Pon el siguiente texto en el archivo. Sustituye filerun.tu-dominio.com por tu propio nombre de dominio. No olvides establecer un registro A para el nombre de dominio en tu gestor de DNS.

<VirtualHost *:80>
        ServerName filerun.tu-dominio.com

        DocumentRoot /var/www/filerun

        <Directory "/var/www/filerun">
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/filerun.error.log
        CustomLog ${APACHE_LOG_DIR}/filerun.access.log combined
</VirtualHost>

Guarda y cierra el archivo. A continuación, habilita el módulo de reescritura.

sudo a2enmod rewrite

A continuación, habilita este host virtual.

sudo a2ensite filerun.conf

Reinicia el servidor web Apache para que el cambio surta efecto.

sudo systemctl restart apache2

Nginx

Si prefieres usar el servidor web Nginx, entonces crea un archivo filerun.conf en el directorio /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/filerun.conf

Pon el siguiente texto en el archivo. Sustituye filerun.tu-dominio.com por tu propio nombre de dominio. No olvides establecer un registro A para el nombre de dominio en tu gestor de DNS.

server {
    listen [::]:80;
    listen 80;
    server_name filerun.tu-dominio.com;

    access_log /var/log/nginx/filerun.access.log;
    error_log /var/log/nginx/filerun.error.log;
  
    root /var/www/filerun/;
    index index.php index.html;

   location / {
      try_files $uri $uri/ /index.php;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    client_max_body_size 500M;

    location = /50x.html {
      root /usr/share/nginx/html;
    }

    location ~ \.php$ {
      fastcgi_pass unix:/run/php/php7.4-fpm.sock;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
      include snippets/fastcgi-php.conf;
    }

    #enable gzip compression
    gzip on;
    gzip_vary on;
    gzip_min_length 1000;
    gzip_comp_level 5;
    gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
    gzip_proxied any;

    # A long browser cache lifetime can speed up repeat visits to your page
    location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
         access_log        off;
         log_not_found     off;
         expires           360d;
    }

    # disable access to hidden files
    location ~ /\.ht {
        access_log off;
        log_not_found off;
        deny all;
    }
}

Guarde y cierre el archivo. Pruebe la configuración de Nginx y vuelva a cargar Nginx para que los cambios surtan efecto.

sudo nginx -t

sudo systemctl reload nginx

Paso 4: Instalar y habilitar los módulos PHP

Ejecuta los siguientes comandos para instalar los módulos de PHP requeridos o recomendados por FileRun.

sudo apt install imagemagick ffmpeg php-imagick php7.4-mysql php7.4-fpm php7.4-common php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl

Filerun utiliza ionCube para encriptar su archivo PHP, por lo que necesitamos instalar el cargador ionCube PHP para desencriptar los archivos PHP. Descargue los cargadores de ionCube.

wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Extrae el archivo a /usr/lib/php/.

sudo tar -xzf ioncube_loaders_lin_x86-64.tar.gz -C /usr/lib/php

Ahora tenemos que habilitar la extensión ioncube PHP.

Apache

Si utilizas Apache, entonces crea el archivo PHP ini para ionCube.

sudo nano /etc/php/7.4/apache2/conf.d/00-ioncube.ini

Añade la siguiente línea a este archivo.

zend_extension = /usr/lib/php/ioncube/ioncube_loader_lin_7.4.so

Guarda y cierra el archivo. Necesitamos crear un segundo archivo PHP ini.

sudo nano /etc/php/7.4/apache2/conf.d/filerun.ini

Añade las siguientes líneas. Esto es para cambiar algunas de las configuraciones por defecto de PHP.

expose_php = Off
error_reporting = E_ALL & ~E_NOTICE
display_errors = Off
display_startup_errors = Off
log_errors = On
ignore_repeated_errors = Off
allow_url_fopen = On
allow_url_include = Off
variables_order = "GPCS"
allow_webdav_methods = On
memory_limit = 128M
max_execution_time = 300
output_buffering = Off
output_handler = ""
zlib.output_compression = Off
zlib.output_handler = ""
safe_mode = Off
register_globals = Off
magic_quotes_gpc = Off
upload_max_filesize = 20M
post_max_size = 20M
enable_dl = Off
disable_functions = ""
disable_classes = ""
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_httponly = 1
date.timezone = "UTC"

Guarda y cierra el archivo. Vuelve a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Nginx

Si usas Nginx, edita el archivo php.ini.

sudo nano /etc/php/7.4/fpm/php.ini

Añade la siguiente línea justo debajo de la línea [PHP].

zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_7.4.so

Guarda y cierra el archivo. Necesitamos crear un segundo archivo PHP ini.

sudo nano /etc/php/7.4/fpm/conf.d/10-ioncube.ini

Añade las siguientes líneas. Esto es para cambiar algunas de las configuraciones por defecto de PHP.

expose_php = Off
error_reporting = E_ALL & ~E_NOTICE
display_errors = Off
display_startup_errors = Off
log_errors = On
ignore_repeated_errors = Off
allow_url_fopen = On
allow_url_include = Off
variables_order = "GPCS"
allow_webdav_methods = On
memory_limit = 128M
max_execution_time = 300
output_buffering = Off
output_handler = ""
zlib.output_compression = Off
zlib.output_handler = ""
safe_mode = Off
register_globals = Off
magic_quotes_gpc = Off
upload_max_filesize = 20M
post_max_size = 20M
enable_dl = Off
disable_functions = ""
disable_classes = ""
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_httponly = 1
date.timezone = "UTC"

Guarda y cierra el archivo. A continuación, reinicie Nginx y PHP7.4-FPM.

sudo systemctl restart nginx php7.4-fpm

Ahora deberías poder visitar el asistente de instalación basado en la web de FileRun en http://filerun.tu-dominio.com, pero antes de introducir cualquier información, vamos a habilitar HTTPS.

Passo 5: Habilitar HTTPS

Para cifrar el tráfico HTTP cuando se visita la interfaz web de FileRun, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let’s Encrypt. Ejecuta los siguientes comandos para instalar el cliente Let’s Encrypt (certbot) en Ubuntu 20.04.

sudo apt update
sudo apt install certbot

Si usas Nginx, también necesitas instalar el plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecuta el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@tu-dominio.com -d filerun.tu-dominio.com

Si usas Apache, también necesitas instalar el plugin de Certbot para Apache.

sudo apt install python3-certbot-apache

A continuación, ejecuta este comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@tu-dominio.com -d filerun.tu-dominio.com

Explicación:

  • --nginx: Utilizar el plugin nginx.
  • --apache: Utilizar el plugin de Apache.
  • --agree-tos: Aceptar las condiciones del servicio.
  • --redirect: Forzar HTTPS mediante una redirección 301.
  • --hsts: Añadir la cabecera Strict-Transport-Security a cada respuesta HTTP. Obliga al navegador a utilizar siempre TLS para el dominio. Defiende contra el despojo de SSL/TLS.
  • --staple-ocsp: Activa el grapado OCSP. Una respuesta OCSP válida se grapa al certificado que el servidor ofrece durante TLS.

El certificado debería obtenerse e instalarse automáticamente.

Paso 6: Finalizar la instalación en el navegador web

Ve a https://filerun.tu-dominio.com para iniciar el asistente de instalación basado en la web. A continuación, haz clic en el botón Siguiente.

Comprobará si tu sistema cumple con los requisitos como las extensiones de PHP. Si se cumplen todos los requisitos, haz clic en Siguiente.

En el siguiente paso, introduzca el nombre de usuario de MariaDB, la contraseña y el nombre de la base de datos que creó en el paso 2.

Tras hacer clic en Siguiente, el asistente de instalación creará automáticamente una cuenta de usuario. Haz clic en Siguiente para continuar.

En la siguiente pantalla, puedes iniciar la sesión con la cuenta de superusuario. Al iniciar la sesión por primera vez, es necesario crear una carpeta de inicio para la cuenta de superusuario.

Puedes crear la carpeta de inicio para el superusuario con el siguiente comando.

sudo mkdir /var/www/superuser
sudo chown www-data /var/www/superuser/ -R

A continuación, introduce la ruta de la carpeta en la interfaz web de FileRun. Y guarda los cambios.

A continuación, ve a Seguridad -> API para habilitar la API, de modo que las aplicaciones cliente puedan sincronizarse con el servidor.

filerun enable api

Instalar el cliente de sincronización de escritorio FileRun

En el escritorio, FileRun utiliza el cliente Nextcloud para sincronizar con el servidor.  En el escritorio de Ubuntu, puede instalar el cliente Nextcloud con:

sudo apt install nextcloud-desktop

Para saber cómo instalar las aplicaciones cliente en otras plataformas, consulta la página de descargas de FileRun.

Cómo configurar las notificaciones por correo electrónico

Si hay más de un usuario, entonces es una buena idea hacer que FileRun sea capaz de enviar notificaciones por correo electrónico, como correos de restablecimiento de contraseña. Para saber cómo configurar un servidor de correo electrónico, consulte el siguiente tutorial. Hay que tener en cuenta que es muy recomendable ejecutar el servidor de correo de iRedMail en un sistema operativo fresco y limpio. Instalar iRedMail en un sistema operativo que tiene otras aplicaciones web puede fallar, y probablemente romper las aplicaciones existentes.

Si no quieres ejecutar tu propio servidor de correo electrónico, puedes configurar el relé SMTP en su lugar. Consulte el siguiente tutorial.

ahora ya tienes tu propia Nube para editar tus archivos incluso de forma colaborativa, no ha sido tan difícil, ¿verdad?. Hay muchas herramientas auto alojadas de las que puedes disfrutar, espero que te haya gustado.

¿Qué tengas un Ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...