Plugins

Our goal is to build the “best web file manager ever made”. Early on we learned that “best” means different things to different people and use cases. That’s why Filestash is fully modular: anything that is an opinion and not an absolute truth lives in a plugin, so you can choose only what suits your needs.

Plugin Inventory

Viewer Apps

They control what is going on when opening a particular file type like .dll, .dylib, ...

plg_override_download

Disable all the default viewer apps to show only the base download button or prevent user from opening a file entirely

plg_application_3d

It knows how to open 3d related files like: fbx, gltf, obj, stl, step, mesh, ifc, dae

plg_application_adobe

It knows how to open adobe files like: psd, ai, xd, dng, postscript, aco, ase, swf

plg_application_autodesk

It knows how to open files like dwg and dxf files

plg_application_biomed

It knows how to open files like: dicom, sam, bam, cif, pdb, xyz, sdf, mol, mol2 and mmtf

plg_application_creative

It knows how to open files like: svg, psd, ai, sketch, cdr, woff, woff2, ttf, otf, eot, exr, tga, pgm, ppm, dds, ktx, dpx, pcx, xpm, pnm, xbm, aai, xwd, cin, pbm, pcd, sgi, wbmp and rgb

plg_application_dev

It knows how to open files like: .a, .so, .o, .dylib, .dll, .har, .cap, .pcap, .pcapng and sqlite

plg_application_embroidery

It knows how to open embroidery files like: .dgt, .dst, .dsb, .dsz, .edr, .exp, .10o, .col, .hus, .inf, .jef, .ksm, .pcm, .pcs, .pes, .sew, .shv, .sst, .tap, .u01, .vip, .vp3. and .xxx

plg_application_engineering

It knows how to open files like: .parquet, .arrow, .feather, .avro, .orc, .hdf5, .h5, .netcdf, .nc, .rds, .rda and .rdata

plg_application_gis

It knows how to open files like: .geojson, .shp, .gpx, .wms and .dbf

plg_application_musician

It knows how to open files like: .mid, .midi, .gp4 and .gp5

plg_application_office

There are many way to open office document, this particular version handles through wasm file like: .doc, .docx, .rtf, .odt, .xlsx, .xls, .ods, .ppt, .pptx and .odp

plg_application_photography

It knows how to open files like: .heif, .nef, .raf, .tiff, .raw, .fits, .xisf, .arw, .sr2, .srf, .nrw, .cr2, .crw, .x3f, .pef, .rw2, .orf, .mrw, .mdc, .mef, .mos, .dcr, .kdc, .3fr, .erf and .srw

plg_application_science

It knows how to compile files through latex, pandoc, plantuml

Starter Plugin [doc]

They dictate how Filestash expose itself, either via HTTP, HTTPS with self signed certificate, let's encrypt or even TOR

plg_starter_http

Default starter plugin using a HTTP server with a configurable port with the default being 8334. It is intended to be used behind a reverse proxy with SSL termination being done at the proxy level

plg_starter_web

Expose your instance over HTTPS with an automatic letsencrypt certificate. It is intended for those who want to spin off an instance with all the certificates stuff being handled witout any maintenance work

plg_starter_https

Default starter plugin using a HTTPS server and a self signed certificate

plg_starter_httpsfs

Expose your instance over HTTPS where your certificates must be mounted manually in case you already have those

plg_starter_http2

Default starter plugin using a HTTP2 server and a self signed certificate

plg_starter_tor

Expose your Filestash instance as a .onion service

Storage Plugin

The storage connectors you want to connect to

plg_backend_ftp

Support for FTP and FTPS server

plg_backend_artifactory

Support for Artifactory

plg_backend_azure

Support for Azure Blob Storage

plg_backend_backblaze

Support for Backblaze B2 Storage

plg_backend_dav

Support for WebDAV

plg_backend_dropbox

Support for Dropbox

plg_backend_gcloud

Support for Google Cloud Storage

plg_backend_gdrive

Support for Google Drive

plg_backend_git

Support for GIT remote

plg_backend_ldap

Support for LDAP Directories. It shows xx as folder and xx as files which you can fill

plg_backend_local

Local File Storage

plg_backend_mysql

Support for Mysql

plg_backend_nfs

Support for NFS server

plg_backend_nop

In memory test server handy for performance testing

plg_backend_s3

Support for AWS S3 and S3 compatible servers like minio, Dell ECS, backblaze, cloudflare, versity, ...

plg_backend_sharepoint

Support for Microsoft Sharepoint

plg_backend_smb

Support for SMB servers

plg_backend_sftp

Support for SFTP servers

plg_backend_storj

Support for Storj Storage

plg_backend_tmp

To create temporary storage

plg_backend_url

Support for opendirectories

plg_backend_webdav

Support for WebDAV servers

Authorization Plugin

How you want to manage authorisation

nothing

Default doesn't have specific authorization framework

plg_authorization

Add an authorization field to your storage which give control over: ls,cat,mkdir,save,rm,mv,touch. This enables role based access control (RBAC)

plg_external_authorization

Use an external authorization solution such as IAM or cerbos

plg_authorisation_readonly

Enforce storage to be read only with no option to mutate anything

custom

We can help you get much further authorization wide with a custom plugin

Authentication Plugin

How you want to manage authorisation

nothing

If you only use the builtin authentication mechanism from your storage

plg_authenticate_admin

Authenticate as a Filestash admin user

plg_authenticate_htpasswd

Authenticate through an htpasswd file

plg_authenticate_ldap

Authenticate through an LDAP directory + make action based on user attributes

plg_authenticate_local

Filestash handles the authentication internally with an MFA step. It has a UI for an admin to manage users

plg_authenticate_openid

SSO Authentication via OIDC. You can then use the oidc attributes to bind any attribute from your storage

plg_authenticate_passthrough

To passthrough details entered by the user in your storage

plg_authenticate_proxy

Authenticate through HTTP headers sent by a proxy

plg_authenticate_saml

SSO Authentication via SAML. You can then use the attributes

plg_authenticate_sql

Authenticate by connecting to a SGBD like Mysql / Postgres or Oracle

plg_authenticate_url

Authenticate via URL parameters with optional URL signature

Configuration Plugin

How configuration is being pulled and pushed

default

By default, configuration is stored on config.json file

pg_config_s3

You can push / pull configuration in a S3 bucket

plg_config_env

You can configure everything from a environment variable

Search Plugin

How search is being handled

nothing

The search feature only show if you have a search plugin installed. If you don't have any search plugin installed, the search feature disappear entirely

plg_search_stateless

Recursive search when the user search for something

plg_search_sqlitefts

A complete full text search solution with its own crawlers, indexer, search engine

plg_search_es

Query search through elastic search

plg_search_solr

Query search results through solr

custom

If you don't have what you want as an off the shelf part, we can customise something for your needs

Thumbnail Plugin

How thumbnail are being generated

nothing

If you don't want to generate any thumbnails at all

plg_image_c

Our fastest thumbnailer build with custom C code made to be fast

plg_image_c

Our fastest thumbnailer build with custom C code made to be fast and supporting a wide range of image format: webp, tiff, raw, psd, png, jpeg, heif, gif

plg_image_golang

Another thumbnailer that's much slower but implemented in a memory safe language: golang

plg_image_bimg

Another thumbnailer using the bimg library

plg_video_thumbnail

Generate video thubmanil from video files

plg_image_light

The legacy thumbnailer built of libvips

Transcoding Plugin

Converting file from / to various formats

nothing

You don't need to have any transcoding plugin installed

plg_image_transcode

To transcode image in various format like bmp, dicom, svg, and tiff

plg_video_transcoder

To transcode your video files onto HLS stream

Office Plugin

Support office documents like docx, xlsx, pptx, etc..

plg_editor_onlyoffice

Support for the only office editor

plg_editor_msoffice

Support for a readonly microsoft edited solution

plg_application_office

A solution based of libre office wasm, running entirely from the browser

plg_editor_wopi

Implement the WOPI protocol that's compatible with ms word online

Security & Compliance

Tighten the security around your instance

plg_security_killswitch

Add a killswitch if we were to discover a major security flow like xxx

plg_security_captcha

Enforce a captcha for people using the app

plg_admin_nil

Disable the entire admin console

plg_audit_log

A complete auditing interface

plg_compliance_fips

Change the default list of ciphers to FIPS compliant ones

plg_security_scanner

Automatic detection of unwanted activity

plg_security_block

Block connections based on euristics like IP location, IP blacklist

plg_security_clamav

Run your files through the clamav antivirus solution

plg_security_steganography

Create fingerprints of your files through Steganography

Other Plugin

Plugins that won't fit on any previous category

plg_handler_mcp

Use Filestash as a tool for AI agent with its MCP capabilities

plg_application_signature

Enable the generation of electronic signatures and seals as per eidas

plg_handler_console

Adds a web based terminal to control your instance via the admin console

other

We have ton of other small plugins available, things like changing sending notifications, changing cookie policies, use other implementation of the zip algorithm based of fastzip, ...

Custom plugin development

Need something not in this list? Get in touch, we do provide bespoke plugin development and custom builds.

Examples we’ve delivered:

  • MIT - integrate their Samba file sharing server with LDAP and Duo two factor authentication.
  • DHL - lets employees browse and manage workspaces Artifactory
  • Schneider Electric - enables the documentation team to push updates to embedded help pages
  • Monash University - to enable their users to access their archives with some recovering functionalities powered by versity
  • UCI - gives students access to the multi PB campus cluster running IBM GPFS
  • USZ - connects Filestash to a DELL ECS based storage cluster
  • and many more …