Tiny File Manager
Tiny File Manager lets you run web based File Manager in PHP, simple, fast and small file manager with a single file entirely on your own server.
Open-source web file management, honestly reviewed. One file, no database, and a security warning you need to read.
TL;DR
- What it is: A single PHP file (~500KB) that turns any web server directory into a browsable, uploadable, editable file manager — accessible from any browser [1][2].
- Who it’s for: Developers and technically-adjacent founders who need occasional, temporary file access to a web server without an FTP client or SSH. Not a permanent, public-facing file portal [1].
- Cost savings: Zero software cost (GPL-3.0). Runs on any existing PHP server. No additional VPS needed if you already have hosting. Compare that to Dropbox Business at $15–25/user/month for the same “access files from a browser” use case [2].
- Key strength: Genuinely requires one file. Drop
tinyfilemanager.phpinto a directory, load it in a browser, done. No npm, no Composer, no database, no daemon. 5,825 GitHub stars and 500K+ downloads confirm people actually use it this way [1][2]. - Key weakness: The project’s own README warns against running it permanently in public-facing environments. The default credentials are
admin/admin@123— publicly documented, trivially googleable. Security is your problem, not the tool’s built-in architecture [1].
What is Tiny File Manager
Tiny File Manager is a single-file PHP application that adds a web UI on top of your server’s filesystem. You drop tinyfilemanager.php into any directory on an Apache or Nginx server, point a browser at it, and you get a file manager: upload, download, rename, copy, move, delete, preview, and edit files directly in the browser [1][2].
The pitch — “web based file manager in a single PHP file” — is exactly what it delivers. There is no database. There are no dependencies to install. The file bundles jQuery, Bootstrap, and a code editor (Cloud9 IDE) either via CDN or, if you use the offline branch, all local [1]. You can rename the file to something non-obvious, configure user accounts and per-user root directories, and be up and running in under five minutes.
The project has been around long enough to accumulate 5,825 GitHub stars, 300+ contributors, and translations into 50+ languages [1][2]. It’s built on top of an older project by github.com/alexantr and has taken on a life of its own. The wiki is reasonably complete. There’s a live demo at tinyfilemanager.github.io/demo [2].
What it is not: a cloud storage platform, a sync solution, a team collaboration tool, or a permanent file portal you expose to the internet and forget about. The README says this with an explicit caution box: “Avoid utilizing this script as a standard file manager in public spaces. It is imperative to remove this script from the server after completing any tasks.” [1] That warning is load-bearing for any honest evaluation.
Why people choose it
The download and star count tell the story more clearly than any review: people choose Tiny File Manager because the deployment friction is effectively zero. Every alternative requires either a running process (Go binary, Node.js server, Docker container), a database, or both. Tiny File Manager requires PHP, which is already running on roughly 75–80% of shared hosting plans. If your hosting is on cPanel, Plesk, or any LAMP stack, you already have everything you need [2].
The second reason is the temporary-access use case. You need to move files on a server, you don’t have FTP configured, SSH scares your client. Drop in the PHP file, do the work, delete the file. This is the workflow the README is implicitly describing with its “remove this script after completing any tasks” warning — it’s designed to be disposable [1].
The code editor is a genuine differentiator at this weight class. The built-in Cloud9 IDE supports syntax highlighting for 150+ languages and 35+ themes [1]. For a tool that ships as a single file, having a capable in-browser editor is legitimately useful for editing config files, PHP scripts, or .htaccess without leaving the browser tab.
Multi-user support is more capable than you’d expect: each user account can be mapped to its own root directory, so user A cannot see user B’s files [1][2]. Combined with read-only user designation, this makes it viable for giving a non-technical client file access to their own upload folder without exposing the rest of the server.
Features
Based on the GitHub README and official website [1][2]:
Core file operations:
- Upload (single, multi-file, drag-and-drop, URL import)
- Download (individual files or bulk zip archives)
- Create, rename, copy, move, delete files and folders
- Extract and compress in zip and tar formats [1]
Viewing and editing:
- Preview images, video, audio, PDF, and text files in-browser
- Google/Microsoft document viewer for PDF, DOC, XLS, PPT (up to 25MB) [1]
- Cloud9 IDE with syntax highlighting for 150+ languages, 35+ themes
- Text file creation and editing with auto-save [2]
- Image property, thumbnail, and EXIF data display [2]
Access and security:
- User authentication with bcrypt password hashing (
password_hash()) [1][2] - Per-user root directory mapping
- Read-only user role
- IP blacklisting and whitelisting [1]
- CSRF protection [2]
- Configurable file upload extension filtering [2]
Navigation and usability:
- Full-text file search via DataTable.js [1]
- Exclude specific folders/files from directory view [1]
- Copy direct URLs for files [1]
- 50+ language translations [1][2]
- Mobile-responsive layout [2]
Deployment:
- Single PHP file — copy to server, done
- Docker image (
tinyfilemanager/tinyfilemanager) for containerized deployment [2] - Offline branch with all CDN assets bundled locally [1]
- External
config.phpfor configuration separation [1] - PHP 5.5+ compatibility (virtually any shared host) [1]
What’s missing: versioning, activity logs, LDAP/SSO, REST API, webhooks, sharing links with expiry, quota management, or anything resembling team governance. This is a file manager, not a file platform.
Pricing: SaaS vs self-hosted math
There is no commercial SaaS version of Tiny File Manager. The software is GPL-3.0, free to download and run [1]. The cost model is straightforward:
Tiny File Manager:
- Software license: $0 [1]
- If you already have PHP hosting: $0 additional (drop the file in, done)
- If you need a dedicated VPS: $5–10/month (Hetzner, Contabo, DigitalOcean)
What it replaces (if anything):
The honest answer is that Tiny File Manager doesn’t replace a proper cloud storage product — it replaces the use case of “I need to move files on a server without FTP.” If you’re currently paying for file-management adjacent tools:
- Dropbox Business: $16.58–$25/user/month for file storage + browser access
- Box Business: $15/user/month
- Google Workspace (for Drive access): $6/user/month per user
If your use case is genuinely “occasional admin file access to a web server,” Tiny File Manager is $0 plus your existing hosting cost. For a 5-person team each paying $6/month for Google Workspace storage they don’t fully use, that’s $360/year compared to nothing.
The caveat: these comparisons are only valid if your needs are minimal. Dropbox and Google Drive offer sync clients, version history, sharing links with access control, mobile apps, and team admin. Tiny File Manager offers none of that. This is not a Dropbox replacement — it’s a “get into your server from a browser” tool.
GPL-3.0 commercial implication: Unlike an MIT-licensed tool, GPL-3.0 means that if you distribute modified versions as part of a product, that product must also be GPL. For self-hosted internal use (a founder managing their own server), this is irrelevant. If you’re building a product that ships Tiny File Manager to customers, consult a lawyer [1].
Deployment reality check
The install path is genuinely as simple as the website claims [2]:
wget https://github.com/prasathmani/tinyfilemanager/raw/master/tinyfilemanager.php- Move the file to your web server directory
- Open in browser
- Change the default credentials immediately
For Docker: docker run -d -p 8080:80 -v /path/to/files:/var/www/html/data tinyfilemanager/tinyfilemanager [2]. That’s it.
Time estimate: 5–10 minutes for anyone who has touched a web server before. 30–60 minutes for a non-technical founder following documentation, including HTTPS setup.
What can go sideways:
The biggest risk is the default credentials: admin/admin@123 and user/12345 [1][2]. These are in the README, on the website, in the demo, and presumably indexed by every credential-stuffing database that exists. If you forget to change them and leave the file accessible, you’ve handed someone a browser-based interface to your server’s filesystem. This is not a hypothetical; it is the documented default.
The README warning to remove the script after use is real advice, not boilerplate. If you treat this as a permanent installation without hardening — custom credentials, HTTPS, IP whitelist, renamed file, restricted root path — you’re creating a vulnerability [1].
The CDN dependency is a minor practical concern: the default installation loads jQuery, Bootstrap, Font Awesome, Highlight.js, and others from external CDNs. On a server with restricted outbound access or for compliance scenarios requiring content integrity, you’ll need the offline branch [1].
PHP version compatibility cuts both ways. PHP 5.5+ support is a feature for people on old shared hosting. It’s also a signal that the code has to accommodate a decade-old PHP ecosystem. On modern PHP 8.x servers it runs fine, but the compatibility floor means you don’t get PHP 8.x-specific security features by default.
Docker caveats: The Docker deployment mounts a local path into the container. If you mount a broad path (say, /var/www/html), the file manager can access everything in that tree. Mount the narrowest path that satisfies your use case [2].
Pros and cons
Pros
- Zero-friction deployment. One file, existing PHP server, five minutes. Nothing else in this category comes close on setup simplicity [1][2].
- No moving parts. No daemon to restart, no database to backup, no Node.js process to keep alive. The file is the application. If your web server runs, the file manager runs [1][2].
- Surprisingly capable editor. Cloud9 IDE with 150+ language support in a single-file bundle is a genuine over-delivery [1].
- Per-user directory isolation. Multi-user support with individual root path mapping is more robust than you’d expect for this class of tool [1][2].
- 500K+ downloads, 5,825 stars. This isn’t vaporware. It’s a mature tool with 300+ contributors and a real user base [1][2].
- Works on ancient hosting. PHP 5.5+ compatibility means it runs on the cheap shared host your client bought in 2016 [1].
- Offline mode available. The offline branch bundles all CDN assets locally, removing external dependencies [1].
- Docker image exists. If you prefer containers over dropping PHP files into webroots, the official image is available [2].
Cons
- The project itself warns against permanent deployment. This is unusual in tool documentation and worth taking seriously. It’s not designed to live exposed to the internet indefinitely [1].
- Default credentials are public.
admin/admin@123is in the GitHub README. Forgetting to change this is a server compromise waiting to happen [1][2]. - GPL-3.0, not MIT. For anyone wanting to embed this in a distributed commercial product, the copyleft license creates legal complications that MIT doesn’t [1].
- No audit trail or activity logging. You won’t know who accessed what or when. For any scenario involving multiple users and sensitive files, that’s a problem.
- No sharing links. You can’t generate a time-limited link to share a file with someone who doesn’t have an account. You need to download and re-share manually.
- No file versioning. Delete or overwrite a file, it’s gone. No recovery.
- CDN-dependent by default. Core functionality loads assets from external servers unless you switch to the offline branch [1].
- No REST API. There’s no programmatic interface for external systems to interact with the file manager.
- Maintenance trajectory is unclear. The GitHub metadata in the provided data shows no last-commit date or recent activity statistics — worth checking the repository directly before committing to this for any production use.
Who should use this / who shouldn’t
Use Tiny File Manager if:
- You need occasional, temporary file access to a web server and don’t have FTP configured or don’t want to deal with an FTP client.
- You’re deploying to shared hosting where dropping a PHP file is the only option and you can’t run Docker or Node.
- You need a simple, isolated upload area for a non-technical client and you can map their account to a single restricted directory.
- You’re a developer who wants a quick admin panel for a side project and will be the only user.
- You already have PHP hosting and want zero additional cost.
Skip it if:
- You need a permanent, always-on, internet-facing file portal. The project explicitly warns against this use case [1].
- You need file versioning, activity logs, or any audit capability.
- You need sharing links — the ability to send someone a URL to download a file without giving them an account.
- You’re building something that embeds this in a distributed product and need a permissive license (MIT, Apache 2.0).
- You need integration with external systems via API.
- Your files contain anything sensitive and you want defense-in-depth beyond a PHP password gate.
Consider carefully if:
- You’re a non-technical founder who wants to give file access to clients or team members. The access control is there, but the security model requires active hardening (rename the file, HTTPS, IP restriction, strong passwords). If you’re not going to do that maintenance, a managed tool is safer.
Alternatives worth considering
- FileBrowser — A Go binary that runs as a standalone server. No PHP required, clean modern UI, user management, sharing links with expiry, and download quotas. More capable for permanent deployments and doesn’t carry the “temporary use only” caveat. Docker-first [primary knowledge].
- FileGator — PHP-based like Tiny File Manager but built as a proper multi-file application with a Vue.js frontend. More polished, more features, same PHP dependency. Better for permanent file portals [primary knowledge].
- elFinder — The older PHP file manager option, jQuery-based, integration-friendly (used in CMS admin panels). More mature for embedding in larger applications [primary knowledge].
- Nextcloud — The full-featured option. If you need sync clients, mobile apps, team folders, calendar, contacts, and Dropbox-level functionality, Nextcloud is the self-hosted answer. The trade-off is genuine complexity: proper server, database, SMTP, domain setup. For a non-technical founder, budget a full day of setup or hire someone [primary knowledge].
- Seafile — Simpler than Nextcloud, better performance, focused purely on file sync and sharing. A reasonable middle ground between “PHP file drop” and “full Nextcloud” [primary knowledge].
- Samba/WebDAV — If the use case is shared network file access, a Samba server or WebDAV mount is more appropriate infrastructure than a web-based file manager UI [primary knowledge].
For a non-technical founder, the practical shortlist is: Tiny File Manager for temporary/internal access on existing PHP hosting vs. FileBrowser for a permanent, containerized file access portal vs. Nextcloud for full Dropbox replacement. They serve genuinely different needs and don’t directly compete once you’re honest about scope.
Bottom line
Tiny File Manager is exactly what the name says: tiny, and a file manager. It solves one problem with remarkable efficiency — getting a browser-based UI onto a server filesystem with no setup overhead — and it does not try to be anything else. The 500K+ downloads and 5,825 GitHub stars reflect real utility in that specific use case.
The honest caveat is the one the project puts on itself: this is not a permanent, production-grade, internet-facing file management solution. It’s a surgical tool. Drop it in to do a job, configure it properly if you leave it running, and take the security warnings in the README seriously rather than clicking past them. If you need something that lives on your server indefinitely, serves clients, and doesn’t require active security hardening to be safe, FileBrowser or FileGator are more appropriate choices. If you need “I just need to move some files on this server right now, from a browser, with no setup,” Tiny File Manager remains one of the cleanest solutions in existence.
Sources
- GitHub — prasathmani/tinyfilemanager — README, feature documentation, license (GPL-3.0), deployment instructions, security warnings. https://github.com/prasathmani/tinyfilemanager
- Official Website — Tiny File Manager — Homepage, feature list, installation guide, Docker instructions, demo. https://tinyfilemanager.github.io
Features
Integrations & APIs
- Plugin / Extension System
Category
Related File Management & Sharing Tools
View all 133 →Syncthing
81KOpen-source continuous file synchronization — peer-to-peer, encrypted, no central server, no cloud account required.
LocalSend
77KAn open-source, cross-platform alternative to AirDrop — share files between nearby devices over your local network without the cloud.
MinIO
61KHigh-performance, S3-compatible object storage for AI, analytics, and cloud-native workloads. Deploy on-premises or in any cloud with a single binary.
Rclone
56KCommand-line tool that syncs, copies, and manages files across 70+ cloud storage providers. The rsync for cloud storage.
AList
49KFile list program that aggregates multiple storage backends into a single web interface with WebDAV support. Mount cloud drives, local storage, and S3 in one place.
copyparty
44KCopyparty is a portable, single-file Python file server with resumable uploads, deduplication, WebDAV, SFTP, FTP, media indexing, and audio transcoding — no dependencies required.