{"id":1695,"date":"2026-09-23T11:33:46","date_gmt":"2026-09-23T14:33:46","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=1695"},"modified":"2026-09-23T11:34:35","modified_gmt":"2026-09-23T14:34:35","slug":"filestash-no-ubuntu-e-debian-instalacao-por-binario-e-comparacao-com-o-file-browser","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/filestash-no-ubuntu-e-debian-instalacao-por-binario-e-comparacao-com-o-file-browser\/","title":{"rendered":"Filestash on Ubuntu and Debian: binary installation and comparison with File Browser"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/filestash-v1.webp\" alt=\"Mascote LinuxPro conectando cabos coloridos a um monitor com o Filestash, ligado a servidor, NAS, balde de objetos, nuvem e HD externo, com o cachorro caramelo cyborg deitado ao lado\" width=\"1486\" height=\"856\" \/><\/p>\n<p>O <a href=\"\/2026\/09\/filebrowser-quantum-o-sucessor-do-file-browser-que-foi-arquivado\">fim do File Browser<\/a> deixou muita gente procurando um gerenciador de arquivos web para colocar no servidor. O FileBrowser Quantum \u00e9 o substituto direto, mas n\u00e3o \u00e9 a \u00fanica op\u00e7\u00e3o. O <strong>Filestash<\/strong> parte de outra ideia: em vez de mostrar uma pasta do disco, ele \u00e9 um cliente web para quase qualquer armazenamento, de SFTP e FTP a S3, SMB, WebDAV, NFS e Git. Neste guia, voc\u00ea vai compilar o Filestash a partir do c\u00f3digo, instalar o bin\u00e1rio no Debian ou no Ubuntu com systemd e Nginx, e comparar as tr\u00eas op\u00e7\u00f5es para saber qual faz sentido no seu caso.<\/p>\n<p><!-- more --><\/p>\n<h2>O que \u00e9 o Filestash<\/h2>\n<p>O <a href=\"https:\/\/github.com\/mickael-kerjean\/filestash\">Filestash<\/a> \u00e9 mantido por Mickael Kerjean desde 2017, escrito em Go, com a interface web em JavaScript puro, e tem cerca de 14,7 mil estrelas no GitHub. A licen\u00e7a \u00e9 a <strong>AGPL-3.0<\/strong>: voc\u00ea pode usar e modificar \u00e0 vontade, mas se oferecer uma vers\u00e3o modificada como servi\u00e7o na rede, precisa publicar o c\u00f3digo dessas modifica\u00e7\u00f5es.<\/p>\n<p>A arquitetura gira em torno de plugins. O pr\u00f3prio README resume a filosofia: tudo o que n\u00e3o \u00e9 uma &#8220;verdade fundamental do universo&#8221; vive num plugin. Na pr\u00e1tica, isso se traduz em tr\u00eas tipos de pe\u00e7a:<\/p>\n<ul>\n<li><strong>Armazenamento (backends)<\/strong>: disco local, SFTP, FTP, S3 e compat\u00edveis, SMB, NFS, WebDAV, Git, Dropbox, Google Drive, Backblaze, Storj, Artifactory e outros.<\/li>\n<li><strong>Autentica\u00e7\u00e3o<\/strong>: s\u00f3 o administrador, arquivo <code>htpasswd<\/code> no estilo Apache, usu\u00e1rios locais com MFA, LDAP\/Active Directory, <em>passthrough<\/em> (o login \u00e9 repassado ao pr\u00f3prio armazenamento) e at\u00e9 usu\u00e1rios de um WordPress.<\/li>\n<li><strong>Aplicativos de visualiza\u00e7\u00e3o<\/strong>: editor de c\u00f3digo, imagens RAW, PDF, v\u00eddeo com transcodifica\u00e7\u00e3o sob demanda, documentos de escrit\u00f3rio via Collabora\/WOPI e, como plugins extras, visualizadores para formatos de \u00e1reas como GIS, CAD e dados.<\/li>\n<\/ul>\n<p>Vale saber desde j\u00e1 onde fica a linha entre o que \u00e9 aberto e o que \u00e9 pago. A documenta\u00e7\u00e3o oficial marca como recursos da edi\u00e7\u00e3o comercial o login por <strong>OpenID Connect e SAML<\/strong>, as regras de autoriza\u00e7\u00e3o por papel (RBAC) e o HTTPS nativo com certificado pr\u00f3prio ou ACME. Na build AGPL que voc\u00ea compila, esses plugins n\u00e3o v\u00eam inclu\u00eddos; LDAP, <code>htpasswd<\/code> e usu\u00e1rios locais v\u00eam.<\/p>\n<h2>Como funciona<\/h2>\n<p>O Filestash n\u00e3o guarda os seus arquivos: ele se conecta aos armazenamentos que voc\u00ea habilitar e mostra todos na mesma interface. A configura\u00e7\u00e3o, o banco de metadados, o \u00edndice de busca e o cache ficam num diret\u00f3rio de estado. No nosso guia, o bin\u00e1rio roda com systemd, escuta na porta 8334 e fica atr\u00e1s do Nginx com TLS.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/filestash-arquitetura.webp\" alt=\"Diagrama: o navegador acessa o Nginx com TLS, que repassa para o Filestash na porta 8334; o Filestash guarda o estado em \/var\/lib\/filestash e se conecta a disco local, SFTP, FTP, S3, SMB, NFS, WebDAV, Git, Dropbox e Google Drive\" width=\"1200\" height=\"640\" loading=\"lazy\" \/><\/p>\n<h2>Por que compilar<\/h2>\n<p>O Filestash <strong>n\u00e3o publica bin\u00e1rio pronto<\/strong>. A instala\u00e7\u00e3o oficial \u00e9 o <code>docker-compose.yml<\/code> da <a href=\"https:\/\/www.filestash.app\/docs\/install-and-upgrade\/\">documenta\u00e7\u00e3o<\/a>, com a imagem <code>machines\/filestash:latest<\/code>, e a \u00faltima tag numerada no GitHub \u00e9 a <code>v0.4<\/code>, de 2019: o projeto \u00e9 distribu\u00eddo como <em>rolling release<\/em>, a partir do ramo principal. Para rodar sem Docker, o caminho \u00e9 compilar, exatamente como o <code>Dockerfile<\/code> oficial faz: Go para o servidor, bibliotecas C para miniaturas de imagem e FFmpeg para v\u00eddeo.<\/p>\n<p>Testamos o procedimento abaixo em cont\u00eaineres limpos de <strong>Debian 13<\/strong> e <strong>Ubuntu 24.04<\/strong>, com o c\u00f3digo de 21 de setembro de 2026. H\u00e1 uma diferen\u00e7a importante entre os dois:<\/p>\n<ul>\n<li>No <strong>Debian 13<\/strong>, a mesma base do <code>Dockerfile<\/code> oficial, a compila\u00e7\u00e3o sai completa.<\/li>\n<li>No <strong>Ubuntu 24.04<\/strong>, o plugin de transcodifica\u00e7\u00e3o de v\u00eddeo n\u00e3o compila: ele usa fun\u00e7\u00f5es do FFmpeg 7.1, e o 24.04 traz o FFmpeg 6.1. A solu\u00e7\u00e3o \u00e9 tirar esse plugin da build, com uma linha de <code>sed<\/code>. O resto da aplica\u00e7\u00e3o compila e funciona normalmente; s\u00f3 a convers\u00e3o de v\u00eddeo sob demanda fica de fora.<\/li>\n<\/ul>\n<h2>Depend\u00eancias de compila\u00e7\u00e3o<\/h2>\n<p>Instale as ferramentas e as bibliotecas de desenvolvimento, as mesmas que o <code>Dockerfile<\/code> oficial usa:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt install -y git curl make gcc g++ pkg-config ca-certificates apache2-utils \\\n  libjpeg-dev libtiff-dev libpng-dev libwebp-dev libraw-dev libheif-dev libgif-dev libvips-dev \\\n  libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev \\\n  libswresample-dev libswscale-dev libavutil-dev ffmpeg poppler-utils<\/code><\/pre>\n<p>O <code>go.mod<\/code> do projeto exige <strong>Go 1.26<\/strong>, mais novo do que o dos reposit\u00f3rios do Debian e do Ubuntu. Instale a vers\u00e3o oficial em <code>\/usr\/local\/go<\/code>:<\/p>\n<pre><code class=\"language-bash\">GO_VERSION=1.26.8\ncurl -fsSL \"https:\/\/go.dev\/dl\/go${GO_VERSION}.linux-amd64.tar.gz\" | sudo tar -C \/usr\/local -xz\nexport PATH=\/usr\/local\/go\/bin:$PATH\ngo version<\/code><\/pre>\n<p>Em servidor ARM, troque <code>amd64<\/code> por <code>arm64<\/code>.<\/p>\n<h2>Compilando o bin\u00e1rio<\/h2>\n<pre><code class=\"language-bash\">git clone --depth 1 https:\/\/github.com\/mickael-kerjean\/filestash ~\/filestash-src\ncd ~\/filestash-src\n\n# Somente no Ubuntu 24.04 (FFmpeg 6.1): remove o plugin de transcodifica\u00e7\u00e3o\nsed -i '\/plg_video_transcoder\/d' server\/plugin\/index.go\n\nmake init\nmake build\nls -lh dist\/<\/code><\/pre>\n<p><code>make init<\/code> baixa os m\u00f3dulos Go e gera o c\u00f3digo embutido; <code>make build<\/code> produz <code>dist\/filestash<\/code> com a interface web dentro do bin\u00e1rio. Avisos do compilador C durante o build s\u00e3o normais; o que importa \u00e9 o arquivo existir no final.<\/p>\n<p>O bin\u00e1rio \u00e9 din\u00e2mico: ele depende das bibliotecas de imagem e v\u00eddeo instaladas no passo anterior. Por isso, o jeito mais simples \u00e9 compilar no pr\u00f3prio servidor. Se for compilar em outra m\u00e1quina, use a mesma vers\u00e3o da distribui\u00e7\u00e3o e instale no servidor as bibliotecas de execu\u00e7\u00e3o correspondentes (as listadas por <code>ldd dist\/filestash<\/code>).<\/p>\n<h2>Instalando com systemd<\/h2>\n<p>Crie um usu\u00e1rio de sistema, copie o conte\u00fado de <code>dist\/<\/code> para <code>\/opt\/filestash<\/code> e reserve <code>\/var\/lib\/filestash<\/code> para o estado. A vari\u00e1vel <code>FILESTASH_PATH<\/code> diz ao Filestash onde gravar configura\u00e7\u00e3o, banco, \u00edndice de busca e cache; sem ela, ele usa <code>data\/<\/code> relativo ao diret\u00f3rio de trabalho.<\/p>\n<pre><code class=\"language-bash\">sudo useradd --system --home-dir \/var\/lib\/filestash --shell \/usr\/sbin\/nologin filestash\nsudo install -d -o root -g root -m 0755 \/opt\/filestash\nsudo cp -a ~\/filestash-src\/dist\/. \/opt\/filestash\/\nsudo install -d -o filestash -g filestash -m 0750 \/var\/lib\/filestash\nsudo install -d -o root -g filestash -m 0750 \/etc\/filestash<\/code><\/pre>\n<h3>Senha do administrador antes de subir<\/h3>\n<p>Este \u00e9 o cuidado mais importante do guia. Enquanto n\u00e3o existe senha de administrador, o Filestash redireciona tudo para <code>\/admin\/setup<\/code>, e <strong>qualquer pessoa que chegar primeiro vira administradora<\/strong>. Conferimos no c\u00f3digo: sem senha definida, a verifica\u00e7\u00e3o de sess\u00e3o do painel devolve &#8220;autenticado&#8221; para qualquer um. E o servidor HTTP escuta em todas as interfaces, n\u00e3o s\u00f3 em <code>127.0.0.1<\/code>.<\/p>\n<p>Por isso, defina a senha antes da primeira execu\u00e7\u00e3o, pela vari\u00e1vel <code>ADMIN_PASSWORD<\/code>. Ela n\u00e3o recebe a senha em texto: recebe o <strong>hash bcrypt<\/strong>, que o <code>htpasswd<\/code> gera:<\/p>\n<pre><code class=\"language-bash\">read -rsp 'Senha do admin: ' SENHA; echo\nHASH=$(htpasswd -bnBC 10 \"\" \"$SENHA\" | tr -d ':\\n')\nunset SENHA\nprintf 'FILESTASH_PATH=\/var\/lib\/filestash\/\\nADMIN_PASSWORD=%s\\n' \"$HASH\" | sudo tee \/etc\/filestash\/filestash.env &gt;\/dev\/null\nsudo chown root:filestash \/etc\/filestash\/filestash.env\nsudo chmod 0640 \/etc\/filestash\/filestash.env<\/code><\/pre>\n<p>Na inicializa\u00e7\u00e3o, o Filestash grava esse hash na pr\u00f3pria configura\u00e7\u00e3o. Mantenha a vari\u00e1vel no arquivo: se um dia voc\u00ea trocar a senha pelo painel, lembre que a vari\u00e1vel volta a valer no pr\u00f3ximo restart.<\/p>\n<h3>A unit<\/h3>\n<p>Crie <code>\/etc\/systemd\/system\/filestash.service<\/code>:<\/p>\n<pre><code class=\"language-ini\">[Unit]\nDescription=Filestash\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nUser=filestash\nGroup=filestash\nWorkingDirectory=\/var\/lib\/filestash\nEnvironmentFile=\/etc\/filestash\/filestash.env\nExecStart=\/opt\/filestash\/filestash\nRestart=on-failure\n\nNoNewPrivileges=true\nPrivateTmp=true\nProtectSystem=strict\nProtectHome=true\nReadWritePaths=\/var\/lib\/filestash\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>Com <code>ProtectSystem=strict<\/code>, o servi\u00e7o s\u00f3 grava em <code>\/var\/lib\/filestash<\/code>. Se voc\u00ea for usar o armazenamento <strong>local<\/strong> para servir uma pasta do servidor, acrescente essa pasta em <code>ReadWritePaths<\/code> e d\u00ea permiss\u00e3o ao usu\u00e1rio <code>filestash<\/code>; para SFTP, S3 e os demais, nada muda.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable --now filestash\ncurl -s http:\/\/127.0.0.1:8334\/healthz; echo\njournalctl -u filestash -f<\/code><\/pre>\n<p>O <code>\/healthz<\/code> responde com um JSON de status, \u00fatil para monitorar. Para o b\u00e1sico de units e logs, veja o guia de <a href=\"\/2026\/09\/dominando-o-systemd-comandos-essenciais\">comandos essenciais do systemd<\/a>.<\/p>\n<h3>Feche a porta 8334<\/h3>\n<p>Como o Filestash escuta em todas as interfaces, bloqueie a porta 8334 no firewall e deixe o acesso externo s\u00f3 pelo Nginx:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw allow 'Nginx Full'\nsudo ufw deny 8334\/tcp\nsudo ufw enable\nsudo ufw status<\/code><\/pre>\n<h2>Nginx com HTTPS<\/h2>\n<p>A configura\u00e7\u00e3o segue a que o autor publica para a <a href=\"https:\/\/demo.filestash.app\/\">demo oficial<\/a>: sem buffer, com timeout longo para uploads e transfer\u00eancias grandes.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name arquivos.exemplo.com.br;\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    server_name arquivos.exemplo.com.br;\n\n    ssl_certificate     \/etc\/letsencrypt\/live\/arquivos.exemplo.com.br\/fullchain.pem;\n    ssl_certificate_key \/etc\/letsencrypt\/live\/arquivos.exemplo.com.br\/privkey.pem;\n\n    client_max_body_size 0;\n\n    location \/ {\n        proxy_pass http:\/\/127.0.0.1:8334;\n        proxy_buffering off;\n        proxy_cache off;\n        proxy_read_timeout 86400;\n        proxy_set_header Host $host:$server_port;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}<\/code><\/pre>\n<p>Emita o certificado com <code>sudo certbot --nginx -d arquivos.exemplo.com.br<\/code> e recarregue o Nginx. <code>client_max_body_size 0<\/code> tira o limite de tamanho de upload no proxy; se preferir um teto, use algo como <code>10G<\/code>.<\/p>\n<h2>Primeira configura\u00e7\u00e3o<\/h2>\n<p>Abra <code>https:\/\/arquivos.exemplo.com.br\/admin<\/code> e entre com a senha definida no hash. O painel tem tr\u00eas \u00e1reas principais:<\/p>\n<ul>\n<li><strong>Storage<\/strong>: marque os armazenamentos que os usu\u00e1rios podem usar (por exemplo, s\u00f3 SFTP e S3). Cada um vira uma op\u00e7\u00e3o na tela de login.<\/li>\n<li><strong>Authentication<\/strong>: escolha quem entra. Sem plugin de autentica\u00e7\u00e3o, o usu\u00e1rio digita os dados do pr\u00f3prio armazenamento (host, porta, usu\u00e1rio), como num cliente FTP. Com <strong>passthrough<\/strong>, voc\u00ea fixa host e porta e o usu\u00e1rio s\u00f3 digita login e senha do SFTP. Com <strong>htpasswd<\/strong>, <strong>local<\/strong> ou <strong>LDAP<\/strong>, o Filestash autentica e depois conecta ao armazenamento com credenciais definidas por voc\u00ea, inclusive com caminho diferente por usu\u00e1rio.<\/li>\n<li><strong>Settings<\/strong>: nome do site, <code>host<\/code> p\u00fablico (usado em links), porta e recursos opcionais. O console web (<code>\/admin\/tty\/<\/code>) vem <strong>desligado<\/strong> por padr\u00e3o; deixe assim.<\/li>\n<\/ul>\n<p>Um exemplo comum para servidor Linux: habilitar s\u00f3 o <strong>SFTP<\/strong>, usar <strong>passthrough<\/strong> com <code>hostname<\/code> fixo em <code>127.0.0.1<\/code>, e cada pessoa entra com o pr\u00f3prio usu\u00e1rio do sistema. As permiss\u00f5es s\u00e3o as do Linux, e o Filestash vira uma interface web para o SSH que voc\u00ea j\u00e1 administra.<\/p>\n<h2>Atualizando<\/h2>\n<p>Sem vers\u00f5es numeradas, atualizar significa recompilar a partir do ramo principal. Guarde uma c\u00f3pia do bin\u00e1rio anterior e do diret\u00f3rio de estado antes:<\/p>\n<pre><code class=\"language-bash\">sudo tar czf \/root\/filestash-estado-$(date +%F).tar.gz -C \/var\/lib filestash\nsudo cp -a \/opt\/filestash \/opt\/filestash.anterior\n\ncd ~\/filestash-src\ngit pull\nsed -i '\/plg_video_transcoder\/d' server\/plugin\/index.go   # s\u00f3 no Ubuntu 24.04\nmake init &amp;&amp; make build\nsudo systemctl stop filestash\nsudo cp -a dist\/. \/opt\/filestash\/\nsudo systemctl start filestash\ncurl -s http:\/\/127.0.0.1:8334\/healthz; echo<\/code><\/pre>\n<p>No Ubuntu, o <code>git pull<\/code> pode reclamar da altera\u00e7\u00e3o local em <code>server\/plugin\/index.go<\/code>; rode <code>git checkout server\/plugin\/index.go<\/code> antes do <code>pull<\/code> e aplique o <code>sed<\/code> de novo depois.<\/p>\n<h2>File Browser, FileBrowser Quantum e Filestash lado a lado<\/h2>\n<p>Os tr\u00eas s\u00e3o gerenciadores de arquivos web em Go, mas resolvem problemas diferentes:<\/p>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>File Browser<\/th>\n<th>FileBrowser Quantum<\/th>\n<th>Filestash<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Situa\u00e7\u00e3o<\/strong><\/td>\n<td>Arquivado em 1\u00ba\/9\/2026, sem corre\u00e7\u00f5es<\/td>\n<td>Ativo: stable v1.5.x, beta v2.0<\/td>\n<td>Ativo, <em>rolling release<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>Licen\u00e7a<\/strong><\/td>\n<td>Apache 2.0<\/td>\n<td>Apache 2.0<\/td>\n<td>AGPL-3.0<\/td>\n<\/tr>\n<tr>\n<td><strong>Bin\u00e1rio oficial<\/strong><\/td>\n<td>Sim<\/td>\n<td>Sim (amd64, arm64, armv6, armv7)<\/td>\n<td>N\u00e3o; Docker ou compila\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>O que ele acessa<\/strong><\/td>\n<td>Uma pasta do disco<\/td>\n<td>V\u00e1rias pastas do disco<\/td>\n<td>Disco, SFTP, FTP, S3, SMB, NFS, WebDAV, Git, nuvens<\/td>\n<\/tr>\n<tr>\n<td><strong>Login<\/strong><\/td>\n<td>Usu\u00e1rio e senha, proxy, hook<\/td>\n<td>Senha + 2FA, OIDC, LDAP, JWT, proxy<\/td>\n<td>htpasswd, local + MFA, LDAP, passthrough; OIDC e SAML s\u00f3 na edi\u00e7\u00e3o paga<\/td>\n<\/tr>\n<tr>\n<td><strong>Busca<\/strong><\/td>\n<td>Simples<\/td>\n<td>Indexada, em tempo real<\/td>\n<td>Por varredura na build padr\u00e3o; \u00edndice full-text \u00e9 plugin \u00e0 parte<\/td>\n<\/tr>\n<tr>\n<td><strong>Compartilhamento<\/strong><\/td>\n<td>Links com validade e senha<\/td>\n<td>Links com validade, senha e permiss\u00f5es<\/td>\n<td>Links com validade, senha, usu\u00e1rios e permiss\u00f5es de leitura, escrita e upload<\/td>\n<\/tr>\n<tr>\n<td><strong>Execu\u00e7\u00e3o de comandos<\/strong><\/td>\n<td>Existe, com falhas que n\u00e3o ser\u00e3o corrigidas<\/td>\n<td>Removida<\/td>\n<td>Console web opcional, desligado por padr\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>Configura\u00e7\u00e3o<\/strong><\/td>\n<td>Flags e banco<\/td>\n<td><code>config.yaml<\/code><\/td>\n<td>Painel <code>\/admin<\/code> (grava <code>config.json<\/code>)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Os dados de login, busca e compartilhamento v\u00eam da documenta\u00e7\u00e3o e do c\u00f3digo de cada projeto; recursos da edi\u00e7\u00e3o comercial do Filestash est\u00e3o marcados na <a href=\"https:\/\/www.filestash.app\/docs\/install-and-upgrade\/\">documenta\u00e7\u00e3o de instala\u00e7\u00e3o<\/a>.<\/p>\n<h3>Qual escolher<\/h3>\n<ul>\n<li><strong>File Browser original<\/strong>: nenhum projeto novo deve come\u00e7ar com ele. Se ainda roda, trate como software sem manuten\u00e7\u00e3o e planeje a sa\u00edda. Os motivos est\u00e3o no post sobre <a href=\"\/2026\/09\/filebrowser-quantum-o-sucessor-do-file-browser-que-foi-arquivado\">o fim do File Browser e o FileBrowser Quantum<\/a>.<\/li>\n<li><strong>FileBrowser Quantum<\/strong>: a escolha natural quando os arquivos est\u00e3o no disco do servidor e voc\u00ea quer uma experi\u00eancia &#8220;Google Drive&#8221; com usu\u00e1rios, compartilhamentos, busca e SSO por OIDC sem pagar nada. \u00c9 tamb\u00e9m a migra\u00e7\u00e3o mais curta para quem vem do File Browser.<\/li>\n<li><strong>Filestash<\/strong>: a escolha quando os arquivos <em>n\u00e3o<\/em> est\u00e3o todos num disco local. Um bucket S3, um servidor SFTP legado, um compartilhamento SMB e um reposit\u00f3rio Git na mesma tela, com login repassado ao pr\u00f3prio armazenamento. O pre\u00e7o \u00e9 a instala\u00e7\u00e3o mais trabalhosa sem Docker e a licen\u00e7a AGPL, que pede aten\u00e7\u00e3o se voc\u00ea for modificar e oferecer o servi\u00e7o a terceiros.<\/li>\n<\/ul>\n<p>Se o seu armazenamento de objetos \u00e9 um MinIO, o post sobre o <a href=\"\/2026\/09\/openobserve-ubuntu-servidor-dedicado-s3-gcs-minio\">OpenObserve com S3 e MinIO<\/a> mostra como preparar o bucket e as credenciais que o Filestash vai usar. E para acompanhar a disponibilidade de qualquer uma das tr\u00eas op\u00e7\u00f5es, o <a href=\"\/2026\/09\/go-uptime-monitoramento-self-hosted-derivado-do-gatus\">Go Uptime<\/a> pode checar o endpoint de sa\u00fade e avisar quando o servi\u00e7o cair.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>O Filestash n\u00e3o compete com o FileBrowser Quantum no mesmo terreno: ele \u00e9 um cliente web universal de armazenamento, n\u00e3o um explorador de uma pasta. Compilado no Debian ou no Ubuntu, vira um \u00fanico bin\u00e1rio gerenciado pelo systemd, sem Docker. Os dois cuidados que n\u00e3o podem faltar s\u00e3o a senha de administrador definida antes da primeira execu\u00e7\u00e3o e a porta 8334 fechada no firewall. Documenta\u00e7\u00e3o e plugins est\u00e3o em <a href=\"https:\/\/www.filestash.app\/docs\/\">filestash.app<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Compile Filestash from source, install the binary on Debian 13 or Ubuntu 24.04 with systemd and Nginx, and compare it with File Browser and FileBrowser Quantum to choose the right web file manager.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,21,2,111,120,3],"tags":[480,481,483,58,240,460,203,484,123],"class_list":["post-1695","post","type-post","status-publish","format-standard","hentry","category-debian","category-infra","category-linux","category-opensource","category-servidores","category-ubuntu","tag-filebrowser","tag-filebrowser-quantum","tag-filestash","tag-go","tag-nginx","tag-s3","tag-self-hosted","tag-sftp","tag-systemd"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/1695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=1695"}],"version-history":[{"count":2,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/1695\/revisions"}],"predecessor-version":[{"id":1698,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/1695\/revisions\/1698"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=1695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=1695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=1695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}