Overview
Discover what makes IFM - improved file manager powerful
IFM (Improved File Manager) is a lightweight, self‑hosted web application that exposes a full‑featured file system interface over HTTP. Built as a single PHP entry point, it bundles all front‑end assets (Bootstrap 4, jQuery, Mustache, ACE Editor) into one distributable file or can pull them from a CDN for minimal footprint. The core logic is written in PHP 7+, leveraging standard extensions such as `bz2`, `zip`, `curl` and optional LDAP for authentication. From a developer’s standpoint, the application is intentionally modular: configuration is driven entirely by environment variables or a small `config.php`, and the UI layer is templated with Mustache, allowing easy theme or layout replacement without touching PHP code.
Backend
Frontend
Data persistence
File manipulation
Overview
IFM (Improved File Manager) is a lightweight, self‑hosted web application that exposes a full‑featured file system interface over HTTP. Built as a single PHP entry point, it bundles all front‑end assets (Bootstrap 4, jQuery, Mustache, ACE Editor) into one distributable file or can pull them from a CDN for minimal footprint. The core logic is written in PHP 7+, leveraging standard extensions such as bz2, zip, curl and optional LDAP for authentication. From a developer’s standpoint, the application is intentionally modular: configuration is driven entirely by environment variables or a small config.php, and the UI layer is templated with Mustache, allowing easy theme or layout replacement without touching PHP code.
Technical Stack & Architecture
- Backend – Pure PHP (≥ 7.0) with procedural style and a small set of helper classes for file operations, permission handling, and archive extraction. All I/O passes through a
FileSystemabstraction that can be swapped out for custom implementations (e.g., SFTP, cloud storage) by overriding the class inconfig.php. - Frontend – Single‑page application powered by jQuery for DOM manipulation, ACE Editor for in‑browser editing with syntax highlighting, and Mustache templates that render the file table. Bootstrap 4 supplies responsive layout while Fontello‑generated icons provide a consistent visual language.
- Data persistence – None beyond the file system itself; metadata such as user sessions and configuration are stored in PHP’s session storage or environment variables. This makes the app “stateless” from a database perspective, simplifying deployment.
Core Capabilities & APIs
- File manipulation – Create, rename, delete, copy, move, and change permissions via AJAX endpoints (
/api/file). Each operation returns JSON status objects that the UI consumes. - Archive handling – The backend supports extraction of
tar,tgz,zip, andbz2archives using native PHP extensions, exposing a simple/api/extract. - Remote upload – A curl‑based API (
/api/upload_remote) accepts a URL and streams the file directly to disk, bypassing local memory limits. - Authentication – A pluggable auth layer allows either cookie‑based session login or LDAP via
ldap_bind. The authentication code is isolated inAuth.php, making it straightforward to inject OAuth or JWT logic. - Extensibility hooks – PHP hooks (
before_file_operation,after_file_operation) are available for custom plugins; the front‑end also emits custom events (fileDeleted,fileCreated) that developers can listen to for real‑time UI updates or integration with external services.
Deployment & Infrastructure
IFM is designed for zero‑configuration deployments. A single PHP file can be dropped into any directory of a web server (Apache, Nginx, or even PHP‑built‑in server). For containerized environments, the official Docker image exposes a ROOT_DIR volume and optional environment variables for LDAP or custom root paths. Because the application is stateless, scaling horizontally is trivial: multiple container instances behind a load balancer will share the same underlying file system (e.g., NFS or SMB). The minimal PHP footprint also means it runs comfortably on low‑resource hosts such as Raspberry Pi or lightweight VPS instances.
Integration & Extensibility
The modular design encourages integration with existing workflows:
- Webhooks – By listening to the front‑end events, external services (e.g., CI pipelines) can trigger actions when files are added or removed.
- Plugin system – Developers can drop a PHP file into the
plugins/directory; IFM will automatically register it, allowing custom UI panels or API endpoints. - API consumption – The JSON‑based file operations can be consumed by other applications (e.g., a custom IDE, CI tool) to programmatically manage files without exposing the UI.
Developer Experience
- Configuration – Environment variables such as
ROOT_DIR,AUTH_METHOD, andLDAP_DSNcontrol most aspects of the app. The documentation includes a comprehensive wiki with examples for each setting, and inline comments inconfig.phpaid discovery. - Documentation quality – The GitHub wiki covers installation, configuration, and advanced use cases. Issue templates and a responsive issue tracker foster community support.
- Community & licensing – Released under the MIT license, IFM encourages contributions and modifications. The active issue list demonstrates quick maintainer response times.
Use Cases
- Developer portals – Expose a sandboxed file system to remote developers for testing or debugging without opening full FTP access.
- Continuous integration – Use the API to upload build artifacts, trigger extraction, or clean up after tests.
- Educational environments – Provide students with a web‑based file manager that supports syntax highlighting and permission controls.
- IoT management – Host on a local device to allow users to upload firmware or configuration files via the browser.
Advantages Over Alternatives
- Zero‑dependency – No database or external services required; a single PHP file suffices.
- Performance – Native PHP extensions for archive handling and permission checks keep latency low, even under load.
- Flexibility – The
FileSystemabstraction and hook system let developers swap out storage backends
Open SourceReady to get started?
Join the community and start self-hosting IFM - improved file manager today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
OnionShare
Secure, anonymous file sharing via Tor
Passbolt
Secure, collaborative password manager for teams
gobookmarks
Personal landing page with GitHub‑backed bookmarks
Corteza
Open-source low‑code platform for building CRM and business workflows
Mindustry
Strategic tower‑defense with automated resource processing
bewCloud
Simple, lightweight web cloud built with Deno and Fresh
