129 lines
5.6 KiB
Markdown
129 lines
5.6 KiB
Markdown
---
|
|
title: File Browser
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, file-management, go, web-ui, self-hosted, single-binary]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=File+Management, https://github.com/filebrowser/filebrowser]
|
|
---
|
|
|
|
# File Browser 📂
|
|
|
|
> Gestionnaire de fichiers web écrit en Go, léger et autonome : il transforme n'importe quel répertoire du serveur en explorateur web manipulable (upload, download, édition, partage, gestion d'utilisateurs). Le classique de la catégorie.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | https://filebrowser.org |
|
|
| **GitHub** | https://github.com/filebrowser/filebrowser |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | Go |
|
|
| **Étoiles** | 3 868 ⭐ |
|
|
| **Dernière MAJ** | 2026-05 |
|
|
| **Catégorie** | [[cat-file-management]] |
|
|
|
|
## Description
|
|
|
|
File Browser est né en 2018 comme un projet personnel de Filipe Freire avant de devenir la référence absolue des file managers self-hostés. L'idée est simple : un **binaire Go unique** (~15 Mo) qui se lance, scanne un répertoire local, et expose une interface web moderne (Vue.js) avec gestion des utilisateurs, partage de fichiers, et même un mini-éditeur de texte. Pas de base de données externe : tout est stocké dans une **SQLite** embarquée (`filebrowser.db`).
|
|
|
|
L'interface propose un treeview à gauche, un listing à droite, des opérations classiques (copier, déplacer, renommer, zipper, supprimer), un viewer intégré pour images/texte, un lecteur audio/vidéo HTML5, et un **terminal web** optionnel par utilisateur. L'authentification est basique (utilisateur + mot de passe hashé) mais extensible via **OAuth2** (Google, GitHub) et on peut brancher en amont un SSO comme [[app-authelia]] ou [[app-authentik]].
|
|
|
|
C'est l'outil idéal pour qui veut **partager des fichiers ponctuellement** avec des proches, donner accès à un disque de sauvegarde, ou remplacer un `python -m http.server` par quelque chose de propre. Le projet est mature, le rythme de publication est régulier (release tous les 1-3 mois), et la communauté est large. Il existe plusieurs forks améliorés, dont [[app-filebrowser-quantum]] qui apporte un éditeur Monaco.
|
|
|
|
## Installation
|
|
|
|
### Option 1 : Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
services:
|
|
filebrowser:
|
|
image: filebrowser/filebrowser:latest
|
|
container_name: filebrowser
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:80"
|
|
volumes:
|
|
- /srv/data:/srv # répertoire à exposer (adapter le chemin)
|
|
- ./config:/config # configuration + base SQLite
|
|
- ./database:/database
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- FB_AUTH_ADMIN=admin
|
|
- FB_AUTH_PASSWORD=***REMPLACER***
|
|
```
|
|
|
|
UI sur `http://localhost:8080`. Identifiants par défaut : `admin` / `admin` (**à changer immédiatement**).
|
|
|
|
### Option 2 : Binaire unique
|
|
|
|
```bash
|
|
# Téléchargement direct
|
|
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/install.sh | bash
|
|
# ou via Go
|
|
go install github.com/filebrowser/filebrowser/v2@latest
|
|
|
|
# Initialisation
|
|
filebrowser config init
|
|
filebrowser config set --address 0.0.0.0 --port 8080 --root /srv/data
|
|
|
|
# Lancement
|
|
filebrowser
|
|
```
|
|
|
|
## Configuration
|
|
|
|
- **Premier accès** : se connecter en `admin/admin` puis changer le mot de passe (⚠️ critique).
|
|
- **Scopes utilisateur** : chaque utilisateur peut avoir un sous-répertoire racine différent (`scope`).
|
|
- **Partage de fichiers** : générer des liens avec expiration (`share` subcommand).
|
|
- **Commandes personnalisées** : ajouter des actions contextuelles (ex. `git pull`, conversion d'images).
|
|
- **ACL granulaires** : lecture seule, écriture, admin par utilisateur.
|
|
- **Reverse proxy** : derrière [[app-caddy]] ou [[app-traefik]] avec HTTPS, ajouter `X-Forwarded-*` headers.
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
- [[app-filebrowser-quantum]] — Fork avec éditeur Monaco et thèmes
|
|
- [[app-openlist]] — Plus complet, multi-backends (S3, SFTP, etc.)
|
|
- [[app-filestash]] — UI plus moderne, multi-protocoles
|
|
- [[app-filegator]] — PHP, multi-utilisateurs
|
|
- [[app-cloud-commander]] — Node.js, double panneau type midnight-commander
|
|
- [[app-chibisafe]] — Spécialisé upload
|
|
- [[app-filerun]] — UX plus riche, PHP commercial
|
|
- [[app-nextcloud]] — Pour qui veut un cloud complet
|
|
|
|
### Propriétaires
|
|
- Google Drive
|
|
- Dropbox
|
|
- OneDrive
|
|
- Box
|
|
|
|
## Sécurité
|
|
|
|
- **Changer le mot de passe `admin/admin` immédiatement** après installation.
|
|
- **Ne JAMAIS exposer File Browser directement sur Internet** sans reverse proxy + authentification forte (SSO recommandé).
|
|
- HTTPS obligatoire ([[app-caddy]] génère les certifs Let's Encrypt automatiquement).
|
|
- Restreindre le scope par utilisateur : ne pas donner accès à `/` ou `/etc`.
|
|
- Activer la journalisation d'accès (logs) et superviser via [[app-dozzle]] ou [[app-loki]].
|
|
- Mettre à jour régulièrement : les CVEs sur les file managers sont critiques.
|
|
- Sauvegarder `./config` et `./database` (la base SQLite contient tous les utilisateurs et partages).
|
|
|
|
## Ressources
|
|
|
|
- [Site officiel](https://filebrowser.org)
|
|
- [Documentation](https://filebrowser.org/docs/)
|
|
- [GitHub](https://github.com/filebrowser/filebrowser)
|
|
- [Docker Hub](https://hub.docker.com/r/filebrowser/filebrowser)
|
|
- [selfh.st/apps/?tag=File+Management](https://selfh.st/apps/?tag=File+Management)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-file-management]] — Catégorie parente
|
|
- [[app-filebrowser-quantum]] — Fork amélioré
|
|
- [[app-openlist]] — Alternative multi-backends
|
|
- [[app-caddy]] / [[app-traefik]] — Reverse proxy HTTPS
|
|
- [[app-authelia]] — SSO pour protéger l'accès
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|