Open-source project
mickael-kerjean/filestash avatar
mickael-kerjean/filestash

Filestash: A Self-Hosted Browser-Based File Manager for 20+ Storage Protocols

:file_folder: Universal File Storage Client

14,733 stars1,005 forksGoAGPL-3.0

At a glance

What is it?
Filestash is an open-source, Go-based file management platform that connects a browser-based interface to FTP, SFTP, S3, SMB, WebDAV, IPFS, and about 20 other storage protocols through a plugin architecture. It also includes native sync clients and protocol gateways for exposing storage over additional protocols.
Who is it for?
Filestash is the right choice for teams that need a single browser-based interface to heterogeneous storage backends, particularly when the backends span multiple protocols and the team wants to extend behavior through plugins rather than by forking. The AGPL-3.0 license means companies that modify Filestash and run it as a network service must publish those modifications.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Filestash solves and who it is for

Enterprise and team storage environments often involve a mix of protocols: an S3 bucket in one region, SFTP servers for legacy systems, SMB shares on internal Windows machines, and FTP endpoints from external vendors. Getting engineers, operators, and non-technical users to work with all of these through separate dedicated clients is operationally difficult. Filestash provides a single browser-based interface that connects to any of these through one URL.

The primary audience is infrastructure teams and power users who manage data across multiple storage systems and want one consistent interface. A secondary audience is organizations that want to expose storage to non-technical users (like a marketing team accessing an S3 bucket of assets) through a browser interface without giving them AWS console access.

The README describes Filestash as having started as a storage-agnostic Dropbox-like file manager and grown into a broader file management platform. The ambition is large: the README states the goal is to support 100% of storage and authentication technologies on the market. In practice, the documented support covers about 20 protocols at the core, with more available through the plugin ecosystem.

A live demo is available at demo.filestash.app for trying the interface before installing.

The three products inside Filestash

The README structures Filestash as three distinct products rather than one monolithic application.

The web client is a browser-based file manager, built in vanilla JavaScript, that connects to configured storage backends. This is what most users interact with: a Dropbox-like interface that lists files, supports upload and download, provides previews, and integrates with file apps for specialized formats.

The native client (fdrive) is a separate repository at github.com/mickael-kerjean/fdrive that syncs data to the user's device. Screenshots for macOS, Windows, Linux, Android, and iPhone are linked in the README, indicating cross-platform support. fdrive is a companion to the web client rather than a replacement.

The gateways expose storage backends over additional protocols. The README lists SFTP, S3, FTP, WebDAV, MCP, and AS2 as supported gateway protocols. A working SFTP gateway example is linked in the documentation. This means Filestash can sit between a client that speaks SFTP and an underlying storage backend that uses a different protocol, translating between them.

The plugin-driven philosophy is described in the README with this principle: 'anything that's not a fundamental truth of the universe lives in a plugin'. This keeps the core lean and allows the behavior to be extended or replaced through plugins rather than by modifying the core codebase.

Building Filestash from source

The Makefile provides the build workflow. The full build runs two steps: initialization and compilation.

Initialization downloads dependencies and generates code:

bash
make init

The compilation step builds the binary:

bash
make build

The build command in the Makefile is:

bash
go build --tags "fts5" -o dist/filestash cmd/main.go

This produces a `dist/filestash` binary (or `dist/filestash.exe` on Windows when GOOS=windows). The `fts5` build tag enables full-text search support through SQLite's FTS5 extension.

The go.mod file specifies `go 1.26` as the required Go version. Dependencies include AWS SDK for Go, Azure SDK, go-redis, go-ldap, mattn/go-sqlite3, gorilla/mux, and numerous other packages for protocols, storage, and authentication.

The Docker deployment path is documented at filestash.app/docs/install-and-upgrade. The README links to that documentation rather than reproducing it in the repository, which means the detailed Docker Compose setup and environment configuration are in the project's external documentation.

The plugin architecture and file apps

Plugins in Filestash can implement storage backends, authentication providers, file apps, and workflow automation. The README describes the architecture as keeping the core lean by moving everything that is not fundamental into plugins.

The documentation at filestash.app/docs/plugin lists the plugin ecosystem. Storage backends include the standard protocols (FTP, SFTP, S3, WebDAV, SMB, IPFS) plus more specialized ones. The README gives an example of a virtual filesystem that delegates authentication to a WordPress site and uses WordPress roles for RBAC authorization, illustrating the depth of customization the plugin system supports.

File apps are plugins that associate specific viewers and editors with file types. The README documents an extensive list: photography apps for RAW formats (heif, nef, raf, tiff, arw, cr2, and others), an astronomy app for FITS and XISF files, a science app with LaTeX and PlantUML compilers, a music app for MIDI and Guitar Pro files, a GIS app for GeoJSON, SHP, GPX, and WMS, a data engineering app for Parquet, Arrow, Feather, HDF5, NetCDF, and similar columnar formats, and a developer app for archive and network capture formats including pcap and sqlite.

This breadth of file apps means Filestash is not a general-purpose tool for one domain but rather a platform that teams can equip for their specific file types. The plugin ecosystem is the mechanism for that specialization.

The workflow engine and automation

Filestash includes a workflow engine documented at filestash.app/docs/guide/workflow-engine.html. The workflow engine allows automating actions that happen to files by chaining steps on file events.

The README describes the range from simple notifications via Slack or email to full Managed File Transfer pipelines. This positions the workflow engine as a tool for compliance-conscious environments where file movements need to trigger audit events, notifications, or transformations, not just for convenience automation.

The workflow engine is accessible through the web client interface rather than requiring separate configuration files or command-line tools. Teams that need to set up event-driven file processing can use it without writing code, provided the required actions are covered by the existing workflow components or available plugins.

Filestash versus Nextcloud and Filebrowser

Nextcloud is a full self-hosted collaboration suite: it includes file storage, calendar, contacts, document editing, and team communication features. Filestash is focused on file access and protocol translation. The distinction is scope: Nextcloud competes with Google Workspace, while Filestash competes with FTP clients and protocol-specific browser utilities.

Filebrowser is a lightweight self-hosted file manager focused on local filesystem access over a web interface. It does not support external storage protocols like S3, SFTP, or SMB natively in the way Filestash does. Filebrowser's model is simpler: expose a directory on the server. Filestash's model is more complex: connect to remote heterogeneous storage over multiple protocols.

The choice between them depends on the storage model. For a team that wants to manage local files on a server through a browser, Filebrowser is lighter and simpler to deploy. For a team that needs to aggregate access to multiple remote storage protocols through one interface, Filestash provides the protocol coverage and plugin architecture that Filebrowser does not.

AGPL-3.0 license and maintenance

Filestash is licensed under AGPL-3.0. This license requires that anyone who modifies the software and runs it as a network service must publish those modifications under the same license. For teams that use Filestash without modification, the license imposes no code-sharing requirement. For teams that modify Filestash, the obligation to publish those modifications is a real consideration.

This differs from the MIT or Apache-2.0 licenses used by many open-source tools, where modifications can remain private. Teams that need to add proprietary storage backends or authentication integrations should verify whether the AGPL terms are compatible with their policy before deploying.

The last push to the repository was on 2026-09-25. The repository is not archived. The go.mod specifies Go 1.26, which is a recent version. The project has no GitHub releases, meaning there are no formal versioned releases to track; deployment is from the main branch.

Editorial conclusion

Filestash is the right choice for teams that need a single browser-based interface to heterogeneous storage backends, particularly when the backends span multiple protocols and the team wants to extend behavior through plugins rather than by forking. The AGPL-3.0 license means companies that modify Filestash and run it as a network service must publish those modifications. Teams with a strong preference for permissive licensing should verify whether the AGPL terms fit their deployment before committing. The demo at demo.filestash.app provides a working preview before any installation.

Frequently asked questions

Is Filestash free to use?

The Filestash source code is open and available under the AGPL-3.0 license, which permits free use, modification, and deployment. Teams that modify the code and run it as a network service must publish those modifications under the same license.

What is the Filestash app?

Filestash is a self-hosted, browser-based file manager written in Go that connects to over 20 storage protocols including FTP, SFTP, S3, SMB, and WebDAV through a plugin architecture. It also includes native desktop and mobile sync clients (fdrive) and protocol gateway features.

What are the key differences between Filestash and Filebrowser?

Filestash connects to external storage over multiple protocols (FTP, SFTP, S3, SMB, WebDAV, and others) through a plugin architecture, while Filebrowser exposes a local filesystem directory through a browser interface. Filebrowser is simpler to deploy; Filestash covers multi-protocol remote storage access.

How do I install Filestash?

The README links to installation documentation at filestash.app/docs/install-and-upgrade for Docker-based deployment. Building from source requires Go 1.26 and runs through the Makefile: run `make init` then `make build` to produce the binary.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. mickael-kerjean/filestash on GitHub
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/mickael-kerjean-filestash.svg)](https://hysenlabs.com/projects/mickael-kerjean-filestash)