Cómo crear un sitio web para compartir archivos con Jirafeau en Debian 10

Jirafeau es una sencilla aplicación web de alojamiento y compartición de archivos construida en PHP. No requiere una base de datos y proporciona una interfaz de usuario limpia y fácil de usar, con soporte para protección por contraseña, caducidad programada, descargas únicas (autodestrucción) y vista previa en el navegador, entre otras funciones útiles.

Este artículo te guiará en la instalación y configuración de Jirafeau en Debian 10 desde cero, con Nginx y PHP-FPM.

Requisitos

  • Un sistema Debian 10 en el que tengas acceso root.
  • Un nombre de dominio que apunte a tu servidor.
  • La variable de entorno $EDITOR debe estar activada.

Si has iniciado sesión como usuario sudo no root, utiliza un shell privilegiado para ejecutar los comandos que se muestran en esta guía. Puedes iniciar un shell root con:

sudo -s

Instalación de Jirafeau

Actualizar el sistema e instalar dependencias

Empieza por actualizar tu sistema:

apt update
apt upgrade -y
reboot

Una vez que el sistema esté de nuevo en funcionamiento, instala los paquetes de software necesarios con el siguiente comando:

apt install -y nginx php php-fpm certbot git

A continuación, asegúrate de que Nginx y PHP-FPM están activados y en ejecución:

systemctl enable --now nginx.service php7.3-fpm.service

Obtener certificado SSL

Antes de configurar el servidor web, tendrás que obtener un certificado SSL para tu dominio. Para ello, utiliza la herramienta certbot como se muestra:

certbot certonly --webroot -m [email protected] -d your_domain --agree-tos

Tras ejecutar este comando, primero se te preguntará si deseas recibir correos electrónicos del FEP. A continuación, cuando se te pida que introduzcas el webroot de tu dominio, introduce /var/www/html:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Input the webroot for example.com: (Enter 'c' to cancel): /var/www/html

Se verificará la propiedad del dominio y tu certificado y los archivos relacionados se guardarán en /etc/letsencrypt/live/your_domain/. Ahora podemos configurar Nginx.

Configuración de Nginx

Desactiva el archivo de configuración por defecto, ya que no es necesario:

rm /etc/nginx/sites-enabled/default

A continuación, crea un nuevo archivo de configuración:

$EDITOR /etc/nginx/sites-available/your_domain.conf

E introduce lo siguiente:

server {
    listen 80;
    listen [::]:80;
    server_name your_domain;
    return 301 https://your_domain$request_uri;
}
 server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name your_domain;
    root /var/www/html/jirafeau;
    index index.php;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
    location ~ \.php$ {
    fastcgi_split_path_info  ^(.+\.php)(/.+)$;
    fastcgi_index            index.php;
    fastcgi_pass             unix:/var/run/php/php7.3-fpm.sock;
    include                  fastcgi_params;
    fastcgi_param   PATH_INFO       $fastcgi_path_info;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

NOTA: Con la configuración proporcionada, todas las peticiones HTTP serán redirigidas a HTTPS.

A continuación, habilita el nuevo archivo de configuración creando un enlace simbólico en el directorio /etc/nginx/sites-enabled/:

ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Comprueba si hay algún error de configuración con:

nginx -t

A continuación, cárgalo emitiendo el comando

systemctl reload nginx.service

Instalar Jirafeau

Descarga Jirafeau desde su repositorio en Gitlab:

mkdir /var/www/html/jirafeau
git clone https://gitlab.com/mojo42/Jirafeau.git /var/www/html/jirafeau

Crea un directorio de datos para Jirafeau. Este directorio no debe ser accesible a través de tu servidor web (es decir, debe residir fuera del directorio raíz web, que es /var/www/html con nuestra configuración). Nosotros utilizaremos /var/data/jirafeau.

mkdir -p /var/data/jirafeau

Da al usuario Nginx la propiedad de los directorios de configuración y datos utilizados por Jirafeau. Lo ideal es que ajustes los permisos de los archivos una vez finalizada la configuración.

chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeau

A continuación, abre tu navegador web y navega hasta https://your_domain/install.php. Primero se te pedirá que elijas una contraseña para la interfaz de administración. Introduce una contraseña segura y pasa al siguiente paso. Para la dirección base, introduce https://your_domain/, y /var/data/jirafeau/ para el directorio de datos. Continúa con el siguiente paso, durante el cual el instalador creará un archivo de configuración básica para Jirafeau.

Configurar Jirafeau

El script incorporado del instalador sólo configura lo esencial. Para una configuración más completa, abre el archivo correspondiente:

$EDITOR /var/www/html/jirafeau/lib/config.local.php

Sustituye el nombre de organización por defecto y configura las claves de persona de contacto y título. Los valores de organización y persona de contacto aparecerán en tus condiciones de servicio(https://your_domain/tos.php).

  'organisation' => 'Your Organisation/Company',
  'contactperson' => 'Your Name <[email protected]>',
  'title' => 'Title of your choice',

Por defecto, el acceso a la función de carga no está restringido. Puedes establecer una o varias contraseñas para restringir este acceso. Utiliza la sintaxis que se muestra:

  'upload_password' =>
  array (
          'password1',
          'password2',
  ),

Al subir un archivo, existen diferentes límites de tiempo en el formulario de subida. Por defecto, Jirafeau permite límites de tiempo de hasta un mes, tras el cual se eliminan los archivos subidos. Para cambiar los plazos disponibles, modifica la matriz de disponibilidades. Por ejemplo, para permitir todos los periodos de caducidad, utiliza lo siguiente:

  array (
    'minute' => true,
    'hour' => true,
    'day' => true,
    'week' => true,
    'month' => true,
    'quarter' => true,
    'year' => true,
    'none' => true,
  ),

Una vez que estés satisfecho con tu configuración, no es necesaria ninguna acción para aplicar los cambios.

Tu sitio web de alojamiento de archivos ya está listo para ser utilizado. Puedes acceder a la interfaz de administración en https://your_domain/admin.php

jirafeau upload interface

También te podría gustar...