Con un ejemplo vamos a configurar Filebrowser y Caddy en el mismo servidor para dar acceso vía web a la vista y edición del fichero Caddyfile y a la consola del servidor. De este modo podremos modificar desde web el fichero de configuración de Caddy y aplicar la nueva configuración vía systemctl desde la consola de Filebrowser
1.- Instalamos Filebrowser, damos por hecho que Caddy ya está instalado.
>curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
2.- Iniciamos Filebrowser apuntando a la carpeta de entrada que queremos hacer visible vía web, en nuestro caso la carpeta donde se encuentra el fichero de configuración de Caddy
>filebrowser -r /etc/caddy
Con este comando Filebrowser levanta el servidor web en 127.0.0.1:8080 y muestra el contenido de la carpeta /etc/caddy
3.- Editamos el fichero, en mi caso, /etc/caddy/Caddyfile para configurar la redirección del proxy para una determinada ip/cname y puerto hacia la dirección donde está escuchando Filebrowser, localhost:8080
(basic-auth) {
basicauth /* {
bob $2a$14$0Lh5yt4z7JzdafFIixLO8ehRN7hRmkJNPm1Jwy5TIuv6JcszRfjeG
}
}
caddy.mydns.dev {
import basic-auth
reverse_proxy
localhost:8080
}
4.- Hemos configurado además del usuario y contraseña propio de Filebrowser (admin admin por defecto) una validación básica previa con usuario bob en este caso.
5.- Ya podremos navegar por caddy.mydns.dev y editar el fichero Caddyfile. Además, para poder aplicar los cambios que hagamos en el mismo desde la misma web, configuraremos los comandos necesarios (systemctl en este caso para hacer restar de caddy.service) desde los settings del filebrowser, para el usuario admin.
Settings >> User Management >> admin >> Commands >> systemctl
6.- Y por último configuramos Filebrowser como servicio que pueda arrancar con systemctl
Primero creamos el fichero de servicio:
nano /etc/systemd/system/caddy_filebrowser.service
con el siguiente contenido:
[Unit]
Description=Run Caddy Filebrowser at startup
[Service]
# Replace with your actual username
User=username
# Substitute the paths to your storage folder and Filebrowser database file
# Make sure to use full paths instead of ~/filebrowser.db etc
ExecStart=/usr/local/bin/filebrowser -r /home/username/caddy_filebrowser -d /home/username/filebrowser.db
Type=simple
[Install]
WantedBy=multi-user.target
Guardamos desde nano y habilitamos el servicio con la sentencia:
sudo systemctl enable caddy_filebrowser.service
Y es todo, Filebrowser arrancará de forma automática en los reinicios de servidor.