mickael-kerjean
filestash
Go

:file_folder: File Management Platform / Universal Data Access Layer (without FUSE)

Last updated Jul 10, 2026
14.4k
Stars
994
Forks
112
Issues
+7
Stars/day
Attention Score
96
Language breakdown
No language data available.
Files click to expand
README

screenshot

What is this?

It started as a storage agnostic Dropbox-like file manager that works with every storage protocol: FTP, SFTP, S3, SMB, WebDAV, IPFS, and about 20 more.

It grew into what we want to be the world's best file management platform. Around the core engine sit 3 pillars: the web client, a native drive client, and gateways to expose storages over any protocol.

The engine follows one rule: everything that's not a fundamental truth of the universe lives in a plugin. Where other platforms are take-it-or-leave-it, ours gives you a rock solid core and a plugin system to handle opinions, so however deep requirements go, the only limit won't be technical but your own creativity.

storage + auth architecture

Key Features

    • Universal Access: the web client is just one way to access your data (albeit an awesome one, handcrafted in vanilla JS). APIs and Gateways let you also expose your data over protocols like SFTP, S3, FTP, WebDAV, MCP, and AS2.
    • Workflow Engine: automate anything that happens to your files by chaining actions on events, from simple notifications via Slack or email to full on MFT pipelines and everything in between.
    • Themes:
    • ... and much much more (versioning, audit, public site, antivirus, quota, chat, chromecast support, on demand video transcoding, mounting shared links as network drive, ....)
      As a rule of thumb, if your problem involves files, we either already have a plugin for it or can make a plugin for it

    Getting Started

    To install Filestash, head to the Getting started guide. If you want to leverage plugins, head over to the inventory, or learn about developing your own plugins.

    If you want guidance and expert help on your file management problem, book a call and let's figure out if Filestash is the right platform for you.

    Vision & Philosophy

    Our goal is simple: to build the best file management platform ever made. Period. But "best" means different things to different people, so we made everything pluggable. The core defines interfaces, plugins implement them. Disagree with our implementation? Write your own. Anything that isn't a fundamental truth of the universe and might spark a debate belongs in a plugin. Literally every piece listed in the key features is a plugin you can swap for another implementation or remove entirely.

    Say you want to give your users a Dropbox like experience on top of your existing FTP server (remember the FTP guy during the Dropbox launch on HN?). All the FTP plugin does is implement this interface:

    type IBackend interface { 	Ls(path string) ([]os.FileInfo, error)           // list files in a folder 	Stat(path string) (os.FileInfo, error)           // file stat 	Cat(path string) (io.ReadCloser, error)          // download a file 	Mkdir(path string) error                         // create a folder 	Rm(path string) error                            // remove something 	Mv(from string, to string) error                 // rename something 	Save(path string, file io.Reader) error          // save a file 	Touch(path string) error                         // create a file

    // I have omitted 2 other methods, a first one to enable connections reuse and // another one to declare what should the login form be like. }

    There are interfaces you can implement for every key component of Filestash: from storage, to authentication, authorisation, custom apps, search, thumbnailing, frontend patches, middleware, endpoint creation and a few others documented in the plugin development guide.

    To see what's currently installed in your instance, head over to /about. The inventory of plugins is documented here

    Support

  • Commercial Users → support contract
  • For individuals:
- #filestash on IRC (libera.chat) - Bitcoin: 3LX5KGmSmHDj5EuXrmUvcg77EJxCxmdsgW - Open Collective

Credits

Filestash stands on the shoulder of: contributors, folks developing awesome libraries, a whole bunch of C stuff (the C standard library, libjpeg, libpng, libgif, libraw and many more), fontawesome, material, Browser stack to let us test on real devices, and the many guys from Nebraska and elsewhere who have been thanklessly maintaining the critical pieces that Filestash sits on top:

credit to the nebraska guy on xkcd

🔗 More in this category

© 2026 GitRepoTrend · mickael-kerjean/filestash · Updated daily from GitHub