Deploy Filestash

Web file manager for SFTP, S3, FTP, WebDAV and SMB storage

Deploy Filestash

Just deployed

Just deployed

/app/data

Deploy and Host Filestash on Railway

An open-source web file manager, Filestash stores nothing itself. It is a browser front end speaking the protocols your data already lives on — SFTP, FTP, S3, Backblaze B2, WebDAV, SMB, NFS, Git, Dropbox and about twenty more — with one Dropbox-style interface over all of them. IT teams and agencies use it to give colleagues a normal file browser for a legacy FTP share or S3 bucket, with no access keys handed out.

Self-host Filestash on Railway: this template wires up the two services upstream's own compose file runs. The filestash service is the app, on a persistent volume holding its configuration, SQLite metadata, search index and a ready-to-use storage folder. The collabora service is Collabora Online, the LibreOffice document server that opens Word, Excel and PowerPoint files from any connected backend: Filestash hands the browser a Collabora iframe, which fetches the file back over WOPI.

Filestash and Collabora services on Railway with a volume

Getting Started with Filestash on Railway

Set FILESTASH_ADMIN_PASSWORD when you deploy — the only value the template asks for, and the password for both the browser and the admin console. Open the deployed URL and you land on a single password prompt. Enter it and you are in the file manager, pointed at a folder on the Railway volume, so you can create folders and upload files to confirm it works before connecting anything external.

The interesting part is /admin. Sign in with the same password and the Storage tab lists every backend the build ships with. Add an SFTP host, an S3 bucket or a WebDAV endpoint, label it, and it appears as a tab on the login page. The Authentication Middleware section swaps the shared password for LDAP, OpenID, htpasswd or Filestash's own user list, with rules scoping which paths each role sees.

To check the office integration, upload a .docx or .xlsx and click it. Collabora takes a few seconds on the first document, then the editor loads in place and saving writes back to whichever backend the file came from.

Filestash listing project files stored on a Railway volume Editing a Word document inside Filestash with Collabora Online Filestash admin console showing its storage backend choices

About Hosting Filestash

Most file-sharing platforms want to own your data: you migrate everything into their storage layer and are then responsible for backing it up. Filestash inverts that. It authenticates a user, opens a connection to storage you already run, and streams bytes. Its only state is its configuration, a small SQLite database for share links and tags, and a thumbnail cache — so one modest volume suffices however many terabytes sit behind it.

Key features:

  • Around twenty-five storage backends: SFTP, FTP, S3, Backblaze B2, Storj, WebDAV, SMB, NFS, Git, Dropbox, Google Drive
  • Shareable links with expiry, passwords and read-only or read-write access
  • In-browser viewers for images, video, audio, Markdown, code, PDF, CSV and office formats
  • Pluggable auth — LDAP, OpenID Connect, SAML, htpasswd or a built-in user list — with path-scoped authorization
  • Gateways re-exporting a connected backend over SFTP, S3, FTP or WebDAV

The Railway architecture is small. filestash serves the UI and API on port 8334 and owns the volume. collabora runs coolwsd on port 9980 with a public domain of its own, because the browser loads the editor iframe directly rather than through the app. WOPI joins them: Filestash reads Collabora's discovery document for the extensions it opens, and Collabora calls back to read and write the file.

Why Deploy Filestash on Railway

Railway removes the fiddly parts:

  • TLS and a public hostname for both services, provisioned automatically
  • The persistent volume attached and mounted, with no host paths to manage
  • Collabora's large image pulled and run with no capability tuning
  • Config, admin credential and storage preset applied on first boot — no setup wizard
  • Memory and CPU on a slider, which matters once several people edit at once

Common Use Cases

  • Give a marketing or operations team a browser interface to an S3 bucket without issuing AWS credentials
  • Put a modern UI in front of a legacy FTP or SMB share a supplier uploads to, and share folders by link
  • Run an internal document workspace where files stay on your own storage and editing happens in Collabora

Dependencies for Filestash

  • filestashmachines/filestash:latest, built through the source repository at gridalpha/filestash-railway, which adds the boot-time setup this platform needs
  • collaboracollabora/code:latest, the Collabora Online Development Edition document server

The filestash service is the whole product: web UI, JSON API, storage drivers and share links. Collabora is optional — remove the OFFICE_* variables and office formats stop being offered — but it turns a file browser into a place work happens.

Environment Variables Reference

VariableServicePurpose
FILESTASH_ADMIN_PASSWORDfilestashPassword for /admin and the file browser
APPLICATION_URLfilestashPublic hostname, no scheme; builds share and document URLs
OFFICE_URLfilestashCollabora's URL; setting it enables office editing
OFFICE_REWRITE_URLfilestashCollabora URL for the iframe the browser loads
OFFICE_FILESTASH_URLfilestashFilestash's own URL, as Collabora sees it
server_namecollaboraHostname written into the discovery doc
extra_paramscollaboracoolwsd flags: TLS termination, prespawn

Deployment Dependencies

Hardware Requirements for Self-Hosting Filestash

Filestash itself is tiny. Collabora decides your plan, since every open document is a LibreOffice process.

ResourceMinimumRecommended
CPU1 vCPU2–4 vCPU
RAM512 MB without Collabora2–4 GB with Collabora
Storage1 GB volume5 GB, more if the local backend holds files
RuntimeGo binary on DebianSame, plus the Collabora container

Self-Hosting Filestash

Upstream publishes a Docker image and a compose file. The simplest run is:

docker run -d --name filestash -p 8334:8334 \
  -v filestash_state:/app/data/state \
  machines/filestash:latest

To add document editing, run Collabora beside it. This is a Docker Compose file:

services:
  app:
    image: machines/filestash:latest
    environment:
      - APPLICATION_URL=files.example.com
      - OFFICE_URL=http://wopi:9980
      - OFFICE_FILESTASH_URL=http://app:8334
      - OFFICE_REWRITE_URL=https://office.example.com
    ports: ["8334:8334"]
    volumes: ["filestash:/app/data/state"]
  wopi:
    image: collabora/code:latest
    environment: ["extra_params=--o:ssl.enable=false --o:ssl.termination=true"]
    ports: ["9980:9980"]
volumes: { filestash: {} }

On a plain server you then add a reverse proxy for TLS on both hostnames; the template does that for you.

Is Filestash Free to Self-Host?

Filestash is open source under AGPL-3.0 and the community build runs with no user limit and no feature key. The vendor sells a commercial edition with support and extra features, but nothing here depends on it. Collabora Online Development Edition is free too, so you pay only for the compute, memory and volume the two services use.

FAQ

What is Filestash? An open-source web file manager. Rather than storing files itself it connects to storage you already have — SFTP, FTP, S3, WebDAV, SMB, Git and more — and gives everyone one browser interface to it.

What does this Railway template deploy? Two services: the Filestash app on a persistent volume, and Collabora Online for in-browser document editing. Both get public HTTPS domains and are wired together over WOPI.

Why does the template include a volume if Filestash stores nothing? It still needs somewhere for its configuration, the SQLite database behind share links and tags, its search index and its thumbnail cache — and it gives you a local folder to try the app with before connecting an external backend.

How do I connect Filestash to my S3 bucket or SFTP server? Sign in at /admin, open the Storage tab, pick the backend, fill in the endpoint and credentials, and label it. It then appears as a choice on the login page.

Can I use LDAP or single sign-on instead of one shared password? Yes. The admin console's Authentication Middleware section ships LDAP, OpenID Connect, SAML, htpasswd and a built-in user list, with authorization rules that scope each role to particular paths.

Do I need Collabora, and why is the first document slow? Only for editing office documents — delete the three OFFICE_* variables and the feature switches off, freeing the memory Collabora reserves. It spawns LibreOffice on demand, so the first document after a deploy takes several seconds; later files open quickly, and raising the prespawn count in extra_params trades memory for a faster first open.


Template Content

More templates in this category

View Template
Garage S3 Storage
Ultra-light S3 server: fast, open-source, plug-and-play.

PROJETOS
8
View Template
Redis
Self Host Latest Redis with Railway

6
View Template
EasyImg
Simple self-hostable Nuxt.js personal image hosting system.

Muhammad Bilal
0