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