Files
2026-06-09 18:40:21 +02:00

118 lines
5.4 KiB
Markdown

---
title: Filestash
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, file-management, go, react, s3, sftp, modern-ui]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=File+Management, https://github.com/mickael-kerjean/filestash]
---
# Filestash 🪣
> File manager web moderne écrit en Go avec frontend React/TypeScript : se connecte à **S3, SFTP, FTP, WebDAV, S3-compatible, Git, LDAP, Google Drive** et expose une UX soignée (drag&drop, preview Office/PDF/images, partage public). L'alternative design aux projets chinois.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://www.filestash.app |
| **GitHub** | https://github.com/mickael-kerjean/filestash |
| **License** | AGPL-3.0 |
| **Langage** | Go + React/TypeScript |
| **Étoiles** | 984 ⭐ |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-file-management]] |
## Description
Filestash est le projet d'un développeur français (Mickael Kerjean) qui a voulu réconcilier **design moderne** et **gestion de fichiers multi-protocoles**. L'idée est née d'un constat : les file managers classiques sont soit jolis mais mono-backend ([[app-file-browser]]), soit multi-backends mais moches (Alist, OpenList). Filestash vise les deux.
L'UI est **clairement la plus aboutie** de la catégorie : sidebar avec treeview, listing en grille ou liste, preview intégrée pour **PDF, images, vidéos, audio, ePub, Office** (via OnlyOffice ou Collabora optionnels), drag&drop natif, partage par lien avec expiration, recherche full-text côté serveur. Le frontend est en **React + TypeScript** avec un build webpack bien fait, et le backend en Go avec plugins par protocole (S3 via AWS SDK, SFTP via pkg/sftp, etc.).
Les **backends supportés** sont nombreux : filesystem local, S3, S3-compatible (MinIO, Wasabi, Backblaze B2), FTP, FTPS, SFTP, WebDAV, Git, **Google Drive**, **Dropbox**, **OneDrive**, et via plugins LDAP/AD. L'authentification peut se faire via **plusieurs backends** simultanément : local, LDAP, OAuth2 (Google/GitHub), OIDC, SAML.
L'architecture est modulaire : chaque "backend" est un plugin Go, et il existe un système d'**extensions** pour ajouter des viewers (OnlyOffice, Collabora) ou des fonctionnalités. La **version gratuite AGPL** est complète, une offre **Filestash Cloud** (SaaS) existe mais le projet reste 100% open source.
## Installation
### Option 1 : Docker Compose (recommandé)
```yaml
services:
filestash:
image: machines/filestash:latest
container_name: filestash
restart: unless-stopped
ports:
- "8334:8334"
volumes:
- ./data:/app/data
environment:
- APPLICATION_URL=http://localhost:8334
```
UI sur `http://localhost:8334`. Créer un compte admin au premier accès (wizard intégré).
### Option 2 : Binaire
```bash
wget https://github.com/mickael-kerjean/filestash/releases/latest/download/filestash_linux_amd64.tar.gz
tar xf filestash_linux_amd64.tar.gz
./filestash
```
## Configuration
- **Premier accès** : wizard web pour créer l'admin, puis ajouter un "connection" (backend de stockage).
- **Plugins** : aller dans Admin → Plugins pour activer OnlyOffice/Collabora, le chiffrement E2E, le partage, etc.
- **Auth** : configurer LDAP, OAuth2, ou OIDC dans Admin → Authentication.
- **Stockage des sessions** : SQLite par défaut, peut basculer sur PostgreSQL/MySQL pour la prod.
- **Reverse proxy** : subpath supporté, configurer `APPLICATION_URL` et `X-Forwarded-*`.
- **HTTPS** : en mode natif, Filestash peut gérer les certificats ACME automatiquement.
## Alternatives
### Open Source
- [[app-file-browser]] — Plus simple, mono-backend
- [[app-openlist]] — Beaucoup plus de backends (chinois)
- [[app-filebrowser-quantum]] — File Browser + éditeur de code
- [[app-filerun]] — UX riche, PHP commercial
- [[app-nextcloud]] — Cloud complet
- [[app-cloudreve]] — Cloud self-hosted
- [[app-filegator]] — PHP multi-user
### Propriétaires
- CloudFuze
- MultCloud
- Cyberduck (client, pas serveur)
- Mountain Duck
## Sécurité
- HTTPS obligatoire ([[app-caddy]] / [[app-traefik]] recommandé).
- **Chiffrement E2E optionnel** : Filestash supporte un mode "encrypted storage" où les fichiers sont chiffrés côté client (AES-GCM) avant d'être uploadés.
- **Auth forte** : brancher LDAP/AD ou OIDC pour les entreprises, sinon OAuth2.
- **Backends S3** : utiliser des **IAM roles** ou des clés à scope limité (pas la clé root du compte AWS).
- **Rate limiting** : activer dans la config (par défaut 100 req/min par IP).
- **CSRF** : Filestash gère les tokens CSRF par session, ne pas désactiver.
- **Logs d'audit** : activer dans Admin → Logs pour tracer les accès fichiers.
- Mettre à jour régulièrement, le projet a un rythme soutenu (1 release/mois).
## Ressources
- [Site officiel](https://www.filestash.app)
- [Documentation](https://www.filestash.app/docs/)
- [GitHub](https://github.com/mickael-kerjean/filestash)
- [Demo](https://demo.filestash.app)
- [selfh.st/apps/?tag=File+Management](https://selfh.st/apps/?tag=File+Management)
## Pages Liées
- [[cat-file-management]] — Catégorie parente
- [[app-file-browser]] — Concurrent plus simple
- [[app-openlist]] — Concurrent multi-backends
- [[app-onlyoffice]] / [[app-collabora]] — Office viewers intégrés
- [[app-caddy]] / [[app-traefik]] — Reverse proxy HTTPS
- [[recettes-docker-compose]] — Templates Docker
- [[securisation-home-lab]] — Bonnes pratiques