prasathmani / tinyfilemanager

Single-file PHP file manager, browser and manage your files efficiently and easily with tinyfilemanager
https://tinyfilemanager.github.io
GNU General Public License v3.0
4.61k stars 1.63k forks source link
code-editor file-browser file-explorer file-management-system file-manager file-upload filemanager folder-viewer ftp-client online-ide php tinyfilemanager url-upload web-file-storage zero-configuration

Tiny File Manager

Live demo Live demo GitHub Release GitHub License Paypal GitHub Sponsors

TinyFileManager is web based PHP file manager and it is a simple, fast and small size in single-file PHP file that can be dropped into any folder on your server, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Caution! 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.

Demo

Demo

Documentation

Tinyfilemanager is highly documented on the wiki pages.

Tiny File Manager

Requirements

How to use

Download ZIP with latest version from master branch.

Just copy the tinyfilemanager.php to your webspace - thats all :) You can also change the file name from "tinyfilemanager.php" to something else, you know what i meant for.

Default username/password: admin/admin@123 and user/12345.

:warning: Warning: Please set your own username and password in $auth_users before use. password is encrypted with password_hash(). to generate new password hash here

To enable/disable authentication set $use_auth to true or false.

:information_source: Add your own configuration file config.php in the same folder to use as additional configuration file.

:information_source: To work offline without CDN resources, use offline branch

:loudspeaker: Features

Deploy by Docker

Make sure you have already installed docker, Install reference

Notice: Your need an absolute path, and it will be served by tinyfilemanager.

If you want to serve this project at raspberry pi or another special platform, you can download project and build image by yourself.

You can execute this following commands:

$ docker run -d -v /absolute/path:/var/www/html/data -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master
$ docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED         STATUS         PORTS                                       NAMES
648dfba9c0ff   tinyfilemanager/tinyfilemanager:master   "docker-php-entrypoi…"   4 minutes ago   Up 4 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp           tinyfilemanager

Access http://127.0.0.1/ and enter default username and password, then enjoy it.

DockerHub: https://hub.docker.com/r/tinyfilemanager/tinyfilemanager

How to change config within docker

Origin:

// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'];

// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = '';

Modified:

// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
$root_path = $_SERVER['DOCUMENT_ROOT'].'/data';

// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = 'data/';

Then, change another config what you want, and add a new volume -v /absolute/path/index.php:/var/www/html/index.php in docker run command, like this:

$ docker run -d -v /absolute/path:/var/www/html/data -v /absolute/path/index.php:/var/www/html/index.php -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master

Stop running

If you want to stop a running docker service, or you want to restart a service, you should stop it first, or you got docker: Error response from daemon: Conflict. The container name "/tinyfilemanager" is already in use by container ... problem. You can execute this command:

$ docker rm -f tinyfilemanager

License, Credit