Introduction
SuperFiles — self-hostable, S3-compatible file storage and media transformation service.
SuperFiles
SuperFiles is a self-hostable file storage and media transformation service — an open, privacy-first alternative to Cloudflare R2 + Images or AWS S3 + Lambda@Edge.
Quickstart
Upload your first file in under 5 minutes.
Core Concepts
Buckets, objects, CDN, and API keys.
JavaScript SDK
Type-safe client for Node.js and browsers.
MCP Server
AI-native file storage via the Model Context Protocol.
What SuperFiles does
| Capability | Description |
|---|---|
| File storage | Upload, download, and manage files with a simple REST API or S3-compatible endpoint |
| CDN transforms | Resize, crop, convert, and watermark images on the fly via URL parameters |
| Presigned uploads | Generate short-lived upload URLs — let clients upload directly without exposing your API key |
| Public/private buckets | Per-bucket visibility settings with per-object URL signing |
| WebDAV mount | Mount any bucket as a network drive in macOS Finder, Cyberduck, or rclone |
| Sharing | Create expiring share links for individual files or folder prefixes |
| AI-native | @superfiles/mcp exposes all operations as MCP tools so any AI assistant can manage your files |
Architecture
SuperFiles runs as a single Docker container with an embedded SQLite database. Blobs are stored on disk (or delegated to an S3-compatible backend). A separate CDN transform service handles image processing so the main API stays lightweight.
┌─────────────────────────────────────────────────────┐
│ SuperFiles API (port 3100) │
│ ┌─────────┐ ┌──────────┐ ┌────────────────────┐ │
│ │ REST API│ │ S3 Shim │ │ WebDAV (/webdav) │ │
│ └────┬────┘ └────┬─────┘ └────────┬───────────┘ │
│ └────────────┴─────────────────┘ │
│ ┌─────────────┐ │
│ │ SQLite DB │ (objects + metadata) │
│ └──────┬──────┘ │
│ ┌──────▼──────┐ │
│ │ Blob store │ (~/.superfiles/blobs) │
│ └─────────────┘ │
└─────────────────────────────────────────────────────┘
Self-hosting vs. managed
SuperFiles is fully open-source. You can:
- Self-host on any Linux machine with Docker — single
docker compose up, no external dependencies - Use the managed service at superfiles.montr.online — no setup, pay-as-you-go storage
The API is identical in both cases. Your API keys and bucket slugs are the only thing that changes.