MCPSERV.CLUB
IFM - improved file manager

IFM - improved file manager

Self-Hosted

Web‑based, self‑hosted file manager

Active(70)
360stars
0views
Updated Sep 2, 2025
IFM - improved file manager screenshot

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 FileSystem abstraction that can be swapped out for custom implementations (e.g., SFTP, cloud storage) by overriding the class in config.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, and bz2 archives 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 in Auth.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, and LDAP_DSN control most aspects of the app. The documentation includes a comprehensive wiki with examples for each setting, and inline comments in config.php aid 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

  1. Developer portals – Expose a sandboxed file system to remote developers for testing or debugging without opening full FTP access.
  2. Continuous integration – Use the API to upload build artifacts, trigger extraction, or clean up after tests.
  3. Educational environments – Provide students with a web‑based file manager that supports syntax highlighting and permission controls.
  4. 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 FileSystem abstraction 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

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
360
Technical Specs
Pricing
Open Source
Database
None
Docker
Official
Supported OS
LinuxDocker
Author
misterunknown
misterunknown
Last Updated
Sep 2, 2025