{"id":13448072,"url":"https://github.com/misterunknown/ifm","last_synced_at":"2025-03-22T02:30:34.541Z","repository":{"id":12555972,"uuid":"15226271","full_name":"misterunknown/ifm","owner":"misterunknown","description":"Improved File Manager","archived":false,"fork":false,"pushed_at":"2024-01-26T23:19:03.000Z","size":5163,"stargazers_count":321,"open_issues_count":4,"forks_count":67,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-01-27T00:29:12.693Z","etag":null,"topics":["filemanager","html","ifm","javascript","php"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/misterunknown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2013-12-16T13:20:50.000Z","updated_at":"2024-04-15T15:46:53.033Z","dependencies_parsed_at":"2023-12-05T13:29:08.575Z","dependency_job_id":"791ad1eb-595e-4d63-baf0-db490a52680d","html_url":"https://github.com/misterunknown/ifm","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misterunknown%2Fifm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misterunknown%2Fifm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misterunknown%2Fifm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misterunknown%2Fifm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/misterunknown","download_url":"https://codeload.github.com/misterunknown/ifm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244897609,"owners_count":20528265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["filemanager","html","ifm","javascript","php"],"created_at":"2024-07-31T05:01:34.762Z","updated_at":"2025-03-22T02:30:34.038Z","avatar_url":"https://github.com/misterunknown.png","language":"JavaScript","readme":"# IFM - improved file manager\n\n## Contents\n\n * [about](#about)\n * [features](#features)\n * [requirements](#requirements)\n * [installation](#installation)\n * [security information](#security-information)\n * [keybindings](#keybindings)\n * [configuration](#configuration)\n * [docker](#docker)\n * [screenshots](#screenshots)\n * [issues](#issues)\n\n## About\n\nThe IFM is a web-based filemanager, which comes as a single file solution using HTML5, CSS3, JavaScript and PHP. You can test a [demo here](https://ifmdemo.gitea.de/).\n\n[![IFM](https://img.youtube.com/vi/owJepSas19Y/hqdefault.jpg)](https://youtu.be/owJepSas19Y)\n\nThe IFM uses the following resources:\n\n* [ACE Editor](https://ace.c9.io)\n* [Bootstrap v4](https://getbootstrap.com)\n* custom icon set generated with [Fontello](http://fontello.com/)\n* [jQuery](https://jquery.com)\n* [Mustache](https://mustache.github.io/)\n\n## Features\n\n* create/edit files and directories\n* copy/move files and directories\n* download files and directories\n* upload files directly, remotely via URL or per drag \u0026 drop\n* extract archives (tar, tgz, tar.gz, tar.bz2, zip)\n* change permissions\n* image preview\n* simple authentication (LDAP via `ldap_bind` possible)\n\n## Requirements\n\n* Client\n  + HTML5 and CSS3 compatible browser\n  + activated javascript\n* Server\n  + PHP \u003e= 7.0\n  + extensions\n    - bz2\n    - curl (for remote upload)\n    - fileinfo\n    - json\n    - ldap (only if LDAP based authentication is used)\n    - mbstring\n    - openssl (for remote uploads from https sources)\n    - phar\n    - posix\n    - zip\n    - zlib\n\n## Installation\n\nJust download the latest release of the IFM. You can find it [here](https://github.com/misterunknown/ifm/releases/latest). You can choose between the CDN version (dependencies like bootstrap, jquery etc. are loaded via CDN) or the \"simple\" version, which bundles all these dependencies.\n\nThe minified versions (`*.min.php`) are zipped via gzip. These versions are not recommended; if the filesize of the IFM is an issue for you, consider using the CDN versions.\n\n## Security information\n\nThe IFM is usually locked to it's own directory, so you are not able to go above. You can change that by setting the `root_dir` in the scripts [configuration](https://github.com/misterunknown/ifm/wiki/Configuration).\n\nBy default, it is not allowed to show or edit the `.htaccess` file. This is because you can configure the IFM via environment variables. Thus if anyone has the ability to edit the `.htaccess` file, he could overwrite the active\nconfiguration. [See also](https://github.com/misterunknown/ifm/wiki/Configuration).\n\n## Keybindings\n\n* \u003ckbd\u003ee\u003c/kbd\u003e - edit / extract current file\n* \u003ckbd\u003eh\u003c/kbd\u003e\u003ckbd\u003ej\u003c/kbd\u003e\u003ckbd\u003ek\u003c/kbd\u003e\u003ckbd\u003el\u003c/kbd\u003e - vim-style navigation (alternative to arrow keys)\n* \u003ckbd\u003eg\u003c/kbd\u003e - focus the path input field (i.e. \"goto\")\n* \u003ckbd\u003er\u003c/kbd\u003e - refresh file table\n* \u003ckbd\u003eu\u003c/kbd\u003e - upload a file\n* \u003ckbd\u003eo\u003c/kbd\u003e - remote upload a file\n* \u003ckbd\u003ea\u003c/kbd\u003e - show ajax request dialog\n* \u003ckbd\u003eF\u003c/kbd\u003e - new file\n* \u003ckbd\u003eD\u003c/kbd\u003e - new directory\n* \u003ckbd\u003ec\u003c/kbd\u003e\u003ckbd\u003em\u003c/kbd\u003e - show copy/move dialog\n* \u003ckbd\u003e/\u003c/kbd\u003e - search\n* \u003ckbd\u003ea\u003c/kbd\u003e - ajax request\n* \u003ckbd\u003en\u003c/kbd\u003e - rename file\n* \u003ckbd\u003eSpace\u003c/kbd\u003e - select a highlighted item\n* \u003ckbd\u003eDel\u003c/kbd\u003e - delete selected files\n* \u003ckbd\u003eEnter\u003c/kbd\u003e - open a file or change to the directory\n* \u003ckbd\u003eCtrl\u003c/kbd\u003e-\u003ckbd\u003eShift\u003c/kbd\u003e-\u003ckbd\u003ef\u003c/kbd\u003e - toggle fullscreen ace editor\n\n## Configuration\n\nSee [configuration](https://github.com/misterunknown/ifm/wiki/Configuration).\n\n### Authentication\n\nSee [authentication](https://github.com/misterunknown/ifm/wiki/Authentication).\n\n## Docker\n\nThe docker image is based on the official php docker images (alpine version)\nand exposes port 80.\n\n### Quickstart\n\nBuild the image with this command in the top source dir:\n\n```bash\ndocker build -t ifm .\n```\n\nAfterwards you can start the docker container as follows:\n\n```bash\ndocker run --rm -d --name ifm -p 8080:80 -v /path/to/data:/var/www ifm:latest\n```\n\n### Specify user/group\n\nBy default IFM runs as user www-data (uid/gid 33). If you need to change that, you can set the UID and GID with the following environment variables:\n\n```bash\ndocker run ... -e IFM_DOCKER_UID=1000 -e IFM_DOCKER_GID=100 ifm:latest\n```\n\n### Other configuration\n\nThe script is located at `/usr/local/share/webapps/ifm/index.php`. By default the `root_dir` is set to /var/www, so you can mount any directory at this location. If you want to bind the corresponding host directory, you can do the following:\n\n```bash\ndocker run --rm -i -p \"8080:80\" -v \"/var/www:/var/www\" ifm\n```\n\nThe scripts configuration can be changed by adjusting the corresponding environment variables. For example:\n\n```bash\ndocker run --rm -i -p \"8080:80\" -v /var/www:/var/www \\\n  -e IFM_AUTH=1 -e IFM_AUTH \\\n  -e IFM_AUTH_SOURCE=\"inline;admin:$2y$05$LPdE7u/5da/TCE8ZhqQ1o.acuV50HqB3OrHhNwxbXYeWmmZKdQxrC\" \\\n  ifm\n```\n\nYou can get a complete list of environment variables [here](https://github.com/misterunknown/ifm/wiki/Configuration#configuration-options).\n\n## Screenshots\n\n\u003ca href=\"https://misterunknown.de/static/ifm_screenshot_desktop_filelist.png\"\u003e\u003cimg src=\"https://misterunknown.de/static/ifm_screenshot_desktop_filelist.png\" height=\"300px\"\u003e\u003c/a\u003e\n\u003ca href=\"https://misterunknown.de/static/ifm_screenshot_mobile_filelist.png\"\u003e\u003cimg src=\"https://misterunknown.de/static/ifm_screenshot_mobile_filelist.png\" height=\"300px\"\u003e\u003c/a\u003e\n\u003ca href=\"https://misterunknown.de/static/ifm_screenshot_desktop_remote_upload.png\"\u003e\u003cimg src=\"https://misterunknown.de/static/ifm_screenshot_desktop_remote_upload.png\" height=\"300px\"\u003e\u003c/a\u003e\n\u003ca href=\"https://misterunknown.de/static/ifm_screenshot_mobile_editfile.png\"\u003e\u003cimg src=\"https://misterunknown.de/static/ifm_screenshot_mobile_editfile.png\" height=\"300px\"\u003e\u003c/a\u003e\n\n## Issues\n\nIf you happen to find an error or miss a feature, you can create an issue on Github.\n","funding_links":[],"categories":["PHP","Software","File Sharing and Synchronization"],"sub_categories":["File Transfer - Web-based File Managers","E-commerce"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisterunknown%2Fifm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisterunknown%2Fifm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisterunknown%2Fifm/lists"}