Jirafeau es una sencilla aplicación web de alojamiento y uso compartido de archivos construida en PHP. No requiere una base de datos y proporciona una interfaz de usuario limpia y fácil de usar compatible con protección de contraseña, caducidad programada, descargas únicas (autodestrucción) y vista previa en el navegador, entre otras características útiles.
Este artículo lo guiará a través de 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 tenga acceso de root.
- Un nombre de dominio que apunte a su servidor.
- Se debe establecer la variable de entorno $EDITOR.
Si ha iniciado sesión como usuario sudo no root, use un shell privilegiado para ejecutar los comandos que se muestran en esta guía. Puede iniciar un shell raíz con:
sudo -s
Instalación de Jirafeau
Actualizando el sistema e instalando dependencias
Comience por actualizar su sistema:
apt update apt upgrade -y reboot
Una vez que el sistema vuelva a funcionar, instale los paquetes de software necesarios con el siguiente comando:
apt install -y nginx php php-fpm certbot git
Luego, asegúrese de que Nginx y PHP-FPM estén habilitados y ejecutándose:
systemctl enable --now nginx.service php7.3-fpm.service
Obtener certificado SSL
Antes de configurar el servidor web, deberá obtener un certificado SSL para su dominio. Para hacerlo, use la herramienta certbot como se muestra:
certbot certonly --webroot -m [email protected] -d your_domain --agree-tos
Después de ejecutar este comando, primero se le preguntará si desea recibir correos electrónicos de la EFF. Luego, cuando se le solicite ingresar la webroot para su dominio, ingrese /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 su certificado y los archivos relacionados se guardarán en /etc/letsencrypt/live/your_domain/. Ahora podemos configurar Nginx.
Configuración de Nginx
Deshabilite el archivo de configuración predeterminado ya que no es necesario:
rm /etc/nginx/sites-enabled/default
Luego cree un nuevo archivo de configuración:
$EDITOR /etc/nginx/sites-available/your_domain.conf
E ingresa 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 solicitudes HTTP se redirigirán a HTTPS.
A continuación, habilite 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/
Compruebe si hay errores de configuración con:
nginx -t
Luego cárguelo emitiendo el comando:
systemctl reload nginx.service
Instalando Jirafeau
Descarga Jirafeau desde su repositorio Gitlab:
mkdir /var/www/html/jirafeau git clone https://gitlab.com/mojo42/Jirafeau.git /var/www/html/jirafeau
Cree un directorio de datos para Jirafeau. Este directorio no debe ser accesible a través de su servidor web (es decir, debe residir fuera del directorio raíz web, que es /var/www/html con nuestra configuración). Usaremos /var/data/jirafeau.
mkdir -p /var/data/jirafeau
Otorgue al usuario de Nginx la propiedad de los directorios de configuración y datos utilizados por Jirafeau. De manera óptima, debe ajustar los permisos de archivo una vez que se complete la configuración.
chown -R www-data:www-data /var/www/html/jirafeau/lib /var/data/jirafeau
Luego abra su navegador web y vaya a https://your_domain/install.php. Primero se le pedirá que elija una contraseña para la interfaz de administración. Ingrese una contraseña segura y continúe con el siguiente paso. Para la dirección base, ingresa https://tu_dominio/ y /var/data/jirafeau/ para el directorio de datos. Continúe con el siguiente paso, durante el cual el instalador creará un archivo de configuración básico para Jirafeau.
Configuración de Jirafeau
El script de instalación incorporado solo configura lo esencial. Para una configuración más completa, abra el archivo correspondiente:
$EDITOR /var/www/html/jirafeau/lib/config.local.php
Reemplace el nombre de la organización predeterminado y configure las claves de persona de contacto y título. Los valores de la organización y la persona de contacto se mostrarán en sus términos de servicio (https://su_dominio/tos.php).
'organisation' => 'Your Organisation/Company', 'contactperson' => 'Your Name <[email protected]>', 'title' => 'Title of your choice',
De forma predeterminada, el acceso a la función de carga no está restringido. Puede establecer una o más contraseñas para restringir este acceso. Utilice la sintaxis que se muestra:
'upload_password' => array ( 'password1', 'password2', ),
Al cargar un archivo, hay diferentes límites de tiempo disponibles en el formulario de carga. Jirafeau por defecto permite límites de tiempo de hasta un mes, después del cual se eliminan los archivos cargados. Para cambiar los períodos disponibles, modifique la matriz de disponibilidades. Por ejemplo, para permitir todos los períodos de vencimiento, use lo siguiente:
array ( 'minute' => true, 'hour' => true, 'day' => true, 'week' => true, 'month' => true, 'quarter' => true, 'year' => true, 'none' => true, ),
Una vez que esté satisfecho con su configuración, no se requiere ninguna acción para aplicar los cambios.
Su sitio web de alojamiento de archivos ahora está listo para usar. Se puede acceder a la interfaz de administración en https://your_domain/admin.php