selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
ifm logo

Self-host ifm

v4.1.2

Web-based file manager as a single PHP file

ReleaseOpen SourceMIT
Updated11 hours ago
LanguagePHP
Setup difficultyEasy
Stars
370
Port
80 (HTTP web interface)
Install with Docker
Desktop file list viewMobile file list viewDesktop remote upload dialogMobile file editing view

What is ifm?

IFM (Improved File Manager) is a web-based file manager delivered as a single PHP file. It handles creating and editing files and directories, copying and moving items, downloading, uploading (direct, remote via URL, drag & drop), extracting various archive formats, changing permissions, and previewing images. Authentication options include inline credentials, htpasswd files, and LDAP via ldap_bind. Deployment options are Docker, Docker Compose, or placing a PHP file on any PHP-enabled web server. The project is MIT-licensed open source.

Should you self-host ifm?

ifm scores 49/100 on selfhost.directory (how scoring works) and ranks #19 of 34 in File Management. It has 370 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v4.1.2, came out on 20 August 2026. New versions land roughly every 8 months.

Setup is easy: most people get it running in one sitting. It is MIT-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is AList (83/100, 50 366 stars). It scores higher overall, so compare the two before you pick. See ifm vs AList side by side.

Features

  • ACE Editor integration
  • Archive Extraction
  • Authentication
  • CDN or bundled assets
  • Directory download as ZIP
  • File Management
  • File Upload
  • Image Preview
  • Keyboard Shortcuts
  • Permission management
  • Search

ifm README

How to install ifm

Install ifm with Docker

Docker
Environment variables
IFM_DOCKER_UID, IFM_DOCKER_GID, IFM_AUTH, IFM_AUTH_SOURCE, IFM_ROOT_DIR, IFM_ROOT_PUBLIC_URL, IFM_TMP_DIR

docker run --rm -d --name ifm -p 8080:80 -v /path/to/data:/var/www ifm:latest

Exposes port 80, mounts data directory at /var/www

How to configure ifm

  • IFM_AJAXREQUESTControls if the user is allowed to perform an ajax request

    Controls if the user is allowed to perform an ajax request

    values: 0, 1

  • IFM_AUTHEnable authentication (1 = enabled)

    Enable authentication (1 = enabled)

    values: 0, 1

  • IFM_AUTH_SOURCEAuthentication source configuration (inline, file, or ldap)

    Authentication source configuration (inline, file, or ldap)

    values: inline;user:hash, file;/path/to/htpasswd, ldap;server;rootdn[;filter]

  • IFM_CHMODControls if the user is allowed to change permissions of files and directories

    Controls if the user is allowed to change permissions of files and directories

    values: 0, 1

  • IFM_COPYMOVEControls if the user is allowed to copy or move files and directories

    Controls if the user is allowed to copy or move files and directories

    values: 0, 1

  • IFM_CREATEDIRControls if the user is allowed to create directories

    Controls if the user is allowed to create directories

    values: 0, 1

  • IFM_CREATEFILEControls if the user is allowed to create files

    Controls if the user is allowed to create files

    values: 0, 1

  • IFM_DELETEControls if the user is allowed to delete files and directories

    Controls if the user is allowed to delete files and directories

    values: 0, 1

  • IFM_DOCKER_GID33Group ID for the container process

    Group ID for the container process

  • IFM_DOCKER_UID33User ID for the container process

    User ID for the container process

  • IFM_DOWNLOADControls if the user is allowed to download files

    Controls if the user is allowed to download files

    values: 0, 1

  • IFM_EDITControls if the user is allowed to edit files

    Controls if the user is allowed to edit files

    values: 0, 1

  • IFM_EXTRACTControls if the user is allowed to extract zip files

    Controls if the user is allowed to extract zip files

    values: 0, 1

  • IFM_FORBIDDENCHARS$:/&?'*Forbidden characters in filenames

    Forbidden characters in filenames

  • IFM_REMOTEUPLOADControls if the user is allowed to upload files remotely via an URL

    Controls if the user is allowed to upload files remotely via an URL

    values: 0, 1

  • IFM_RENAMEControls if the user is allowed to rename files and directories

    Controls if the user is allowed to rename files and directories

    values: 0, 1

  • IFM_ROOT_DIR/var/wwwSets a custom root directory

    Sets a custom root directory

  • IFM_ROOT_PUBLIC_URL/wwwCustom public URL for file access when using custom root_dir

    Custom public URL for file access when using custom root_dir

  • IFM_SHOWFILESIZEShow the filesize column

    Show the filesize column

    values: 0, 1

  • IFM_SHOWGROUPShow the group column (*nix only)

    Show the group column (*nix only)

    values: 0, 1

  • IFM_SHOWHIDDENFILESShow hidden files

    Show hidden files

    values: 0, 1

  • IFM_SHOWHTDOCSShow files starting with .ht

    Show files starting with .ht

    values: 0, 1

  • IFM_SHOWLASTMODIFIEDShow the last modified column

    Show the last modified column

    values: 0, 1

  • IFM_SHOWOWNERShow the owner column (*nix only)

    Show the owner column (*nix only)

    values: 0, 1

  • IFM_SHOWPATHShows the absolute path to the root_dir

    Shows the absolute path to the root_dir

    values: 0, 1

  • IFM_SHOWPERMISSIONSShow the permissions column

    Show the permissions column

    values: 0, 1

  • IFM_TIMEZONESets a custom timezone

    Sets a custom timezone

    values: PHP supported timezones

  • IFM_TMP_DIR/tmpSets a custom temporary directory for zip downloads

    Sets a custom temporary directory for zip downloads

  • IFM_UPLOADControls if the user is allowed to upload files

    Controls if the user is allowed to upload files

    values: 0, 1

  • IFM_ZIPNLOADControls if the user is allowed to download directories as zip files

    Controls if the user is allowed to download directories as zip files

    values: 0, 1

ifm releases & version history

More in File Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…