Skip to content

Instantly share code, notes, and snippets.

@murilogteixeira
Last active July 26, 2025 19:14
Show Gist options
  • Save murilogteixeira/b2e3045f8cdd93335f4888c8f51516ae to your computer and use it in GitHub Desktop.
Save murilogteixeira/b2e3045f8cdd93335f4888c8f51516ae to your computer and use it in GitHub Desktop.
FileBrowser install script

Script de Instalação do File Browser no Container LXC

Este script automatiza a instalação, configuração e execução do File Browser em um container LXC Linux.


Funcionalidades

  • Instala o File Browser na última versão disponível
  • Configura o diretório raiz para navegação (padrão: /home/murilo)
  • Define usuário admin com senha configurável
  • Cria e habilita serviço systemd para iniciar automaticamente o File Browser
  • Expõe o File Browser na porta 8080 e acessível em todas as interfaces (0.0.0.0)
  • Verifica e instala o curl, se necessário
  • Limpa instalações anteriores antes de configurar

Como usar

  1. Salve o script em um arquivo, por exemplo, instalar-filebrowser.sh

  2. Ajuste as variáveis no topo do script, se desejar:

RAIZ_ARQUIVOS="/home/murilo"     # Diretório raiz para o File Browser  
PORTA=8080                       # Porta para acessar via navegador  
SENHA_ADMIN="admin123"           # Senha do usuário admin  
  1. Dê permissão de execução:
chmod +x instalar-filebrowser.sh
  1. Execute o script como root no container LXC:
./instalar-filebrowser.sh
  1. Após a execução, acesse via navegador:
http://<IP_DO_CONTAINER>:8080

Usuário: admin
Senha: conforme configurada no script


Requisitos

  • Container Linux com acesso à internet
  • Permissão root para instalação e criação do serviço
  • Diretório raiz configurado deve existir e ter permissões adequadas

Observações

  • Caso o diretório raiz não exista, o script aborta
  • O serviço roda como root para garantir acesso ao diretório raiz
  • Você pode modificar o script para rodar com outro usuário se preferir

Exemplo de uso com Gist

curl -fsSL https://gist.githubusercontent.com/murilogteixeira/b2e3045f8cdd93335f4888c8f51516ae/raw/cfe2f780a2f9447591726892109599a99babb565/filebrowser-installer.sh | bash
#!/bin/bash
# Variáveis configuráveis
RAIZ_ARQUIVOS="/home"
PORTA=8080
SENHA_ADMIN="admin12345678"
echo "🧹 Limpando instalação anterior do File Browser..."
systemctl stop filebrowser 2>/dev/null
systemctl disable filebrowser 2>/dev/null
rm -f /etc/systemd/system/filebrowser.service
rm -f /usr/local/bin/filebrowser
rm -rf ~/.config/filebrowser
rm -f /root/filebrowser.db
systemctl daemon-reload
echo "🔍 Verificando se curl está instalado..."
if ! command -v curl &> /dev/null
then
echo "curl não encontrado! Instalando curl..."
apt-get update && apt-get install -y curl
else
echo "curl já está instalado."
fi
echo "📁 Verificando existência do diretório $RAIZ_ARQUIVOS..."
if [ ! -d "$RAIZ_ARQUIVOS" ]; then
echo "❌ Diretório $RAIZ_ARQUIVOS não existe! Abortando."
exit 1
fi
echo "⬇️ Instalando File Browser..."
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
echo "⚙️ Inicializando configuração do File Browser..."
filebrowser config init
filebrowser users add admin "$SENHA_ADMIN" --perm.admin
echo "🛠 Criando serviço systemd..."
cat <<EOF > /etc/systemd/system/filebrowser.service
[Unit]
Description=File Browser
After=network.target
[Service]
User=root
ExecStart=/usr/local/bin/filebrowser -r $RAIZ_ARQUIVOS -p $PORTA --address 0.0.0.0
Restart=always
WorkingDirectory=/root
[Install]
WantedBy=multi-user.target
EOF
echo "🚀 Iniciando serviço File Browser..."
systemctl daemon-reload
systemctl enable --now filebrowser
echo "✅ Instalação e configuração concluídas!"
echo "Acesse: http://$(hostname -I | awk '{print \$1}'):$PORTA"
echo "Usuário: admin"
echo "Senha: $SENHA_ADMIN"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment