- Batchfile 75.7%
- Shell 16.1%
- Dockerfile 8.2%
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| cloudron-wrapper.bat | ||
| CloudronManifest.json | ||
| configure-cloudron.bat | ||
| deploy.bat | ||
| DESCRIPTION.md | ||
| Dockerfile | ||
| logo.png | ||
| README.md | ||
| start.sh | ||
Filestash for Cloudron
A Cloudron app package for Filestash — a self-hosted file management platform that turns any storage backend into a modern, Dropbox-like web interface.
What is Filestash?
Filestash is a universal file manager that connects to virtually any storage system and presents a clean, web-based interface for browsing, uploading, editing, and managing files.
Supported Storage Backends
| Protocol | Examples |
|---|---|
| Cloud Storage | S3, Google Drive, Dropbox, Azure Blob |
| File Transfer | FTP, SFTP, SCP |
| Network Shares | SMB/CIFS, WebDAV, NFS |
| Version Control | Git repositories |
| Distributed | IPFS |
| And more | LDAP, MySQL, CardDAV, CalDAV |
Key Features
- Web-based file browser with drag-and-drop uploads
- Built-in viewers for images, videos, PDFs, and text files
- Text editor with syntax highlighting
- Office document editing via Collabora/OnlyOffice integration
- Multiple authentication backends — LDAP, OpenID Connect, SAML, htpasswd, and more
- Configurable connections — expose only the backends you need
- Responsive design — works on desktop and mobile
Cloudron Integration
This package runs Filestash on Cloudron with:
- Automatic TLS — Cloudron handles HTTPS termination
- Automatic backups — persistent data at
/app/data/state/is backed up by Cloudron - Single sign-on ready — Filestash supports LDAP and OIDC which can integrate with Cloudron's user management
- Reverse proxy — Cloudron proxies HTTP traffic to Filestash on port 8334
Addons Used
| Addon | Purpose |
|---|---|
localstorage |
Persistent storage for config and app state |
Filestash uses a file-based configuration system — no database addon is required.
Installation
Prerequisites
- A running Cloudron instance
- Cloudron CLI installed (
npm install -g cloudron) - Docker Desktop running and logged in
- A Docker Hub account
Quick Start
-
Clone this repository:
git clone https://github.com/stalecontext/filestash-cloudron-app.git cd filestash-cloudron-app -
Login to Cloudron:
cloudron login -
Run the install script:
./install.batFollow the prompts to choose your subdomain (e.g.
filestash.example.com). -
Configure Filestash:
- Visit
https://your-subdomain/adminto set up storage backends and authentication.
- Visit
Updating
When you want to update to a newer version of Filestash:
-
Bump the version in
CloudronManifest.json -
Build and push:
./deploy.bat -
Update the running app:
./update-cloudron.bat
Project Structure
filestash-cloudron-app/
├── CloudronManifest.json # Cloudron app manifest
├── Dockerfile # Multi-stage build (upstream image → Cloudron base)
├── start.sh # Container startup script
├── DESCRIPTION.md # App description for Cloudron dashboard
├── CHANGELOG.md # Version history
├── deploy.bat # Build & push Docker image to Docker Hub
├── update-cloudron.bat # Update running Cloudron app
├── install.bat # First-time install to Cloudron
├── configure-cloudron.bat # One-time Docker Hub setup
├── cloudron-wrapper.bat # Windows env wrapper for Cloudron CLI
└── logo.png # App icon (256x256, user-provided)
How It Works
The Dockerfile uses a multi-stage build:
- Stage 1 — Pulls the official
machines/filestash:latestimage from Docker Hub - Stage 2 — Copies the Filestash binary and assets onto
cloudron/base:5.0.0, installs runtime dependencies (ffmpeg, image processing libraries), and sets up symlinks for persistent storage
The start.sh script runs on every container start:
- Creates the persistent data directory on first run
- Injects the Cloudron app URL into Filestash's config
- Sets correct file permissions
- Starts Filestash as the unprivileged
cloudronuser
Configuration
Filestash is configured through its built-in admin panel at /admin. Settings include:
- Connections — Which storage backends are available to users
- Authentication — How users log in (LDAP, OIDC, SAML, htpasswd, etc.)
- General — App name, host URL, features
- Log — Logging verbosity
All configuration is persisted in /app/data/state/config/config.json and survives container restarts and Cloudron backups.
Links
- Filestash — filestash.app
- Filestash Source — github.com/mickael-kerjean/filestash
- Filestash Docs — filestash.app/docs
- Cloudron Docs — docs.cloudron.io
- Docker Hub — hub.docker.com/r/stalecontext/filestash-cloudron
License
This Cloudron packaging is provided as-is. Filestash itself is licensed under the AGPLv3.