mirror of
https://github.com/prasathmani/tinyfilemanager.git
synced 2025-07-13 05:16:19 +02:00
Compare commits
80 Commits
Author | SHA1 | Date | |
---|---|---|---|
7103691048 | |||
85821736c0 | |||
e474ade92b | |||
ad30a3a1f3 | |||
bb1d1d3801 | |||
c3a2f1d604 | |||
154947ef83 | |||
bc9096fad3 | |||
3d28d8cb8e | |||
9b85951cfc | |||
d125c6736b | |||
f8d4d9cb17 | |||
08cb4b0fce | |||
95d41a9518 | |||
6bdc5ccfb3 | |||
2046bbde72 | |||
c1718ff4c5 | |||
1db6713019 | |||
c89e1d18de | |||
d401028eb6 | |||
f6ac9cc63f | |||
a22edfca00 | |||
55706b2f8b | |||
09e2b9a107 | |||
9ee41b14d6 | |||
8158333d93 | |||
e843adcf0b | |||
f182e378e3 | |||
27d7126767 | |||
a62bb38773 | |||
603f048722 | |||
442843239c | |||
b63615a4b8 | |||
9d78ee8b01 | |||
9b5d2718ab | |||
a38d8e3934 | |||
db3f4c01ea | |||
c5d481c5cc | |||
a04567d3ba | |||
03c3f6d7f9 | |||
95147f5828 | |||
dd9d7c09a2 | |||
a19ff20768 | |||
b03232775e | |||
ef09231454 | |||
6b06fb2532 | |||
2512330dee | |||
642cab42cc | |||
c03e601bc3 | |||
0d0e728c79 | |||
530055df08 | |||
5d841d6624 | |||
211568ff4c | |||
44bedb9be0 | |||
c8fff90634 | |||
a6a28a6356 | |||
14ed4fdb92 | |||
65f7dc448d | |||
fb31a14873 | |||
c741ae2212 | |||
e118d650a3 | |||
c260601ef6 | |||
462566a31b | |||
0a92002919 | |||
1dbe7c5339 | |||
8fb1816877 | |||
5903849388 | |||
0826838917 | |||
a0c595a8e1 | |||
1482e41f74 | |||
dcdf736e48 | |||
43eb8016d3 | |||
e2ac1163c2 | |||
2f357ee3d5 | |||
5933952fa4 | |||
1ca011ca67 | |||
e259ffda4d | |||
e8fc6d546a | |||
1501835f61 | |||
c991555de5 |
38
.github/workflows/PublishDocker.yml
vendored
Normal file
38
.github/workflows/PublishDocker.yml
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
name: PublishDocker
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
tags:
|
||||
- '**'
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
with:
|
||||
images: |
|
||||
${{ secrets.DOCKERHUB_USERNAME }}/tinyfilemanager
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v1
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
32
Dockerfile
Normal file
32
Dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
# how to build?
|
||||
# docker login
|
||||
## .....input your docker id and password
|
||||
#docker build . -t tinyfilemanager/tinyfilemanager:master
|
||||
#docker push tinyfilemanager/tinyfilemanager:master
|
||||
|
||||
# how to use?
|
||||
# docker run -d -v /absolute/path:/var/www/html/data -p 80:80 --restart=always --name tinyfilemanager tinyfilemanager/tinyfilemanager:master
|
||||
|
||||
FROM php:7.4-cli-alpine
|
||||
|
||||
# if run in China
|
||||
# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||
|
||||
RUN apk add \
|
||||
libzip-dev \
|
||||
oniguruma-dev
|
||||
|
||||
RUN docker-php-ext-install \
|
||||
zip \
|
||||
mbstring \
|
||||
iconv \
|
||||
fileinfo
|
||||
|
||||
WORKDIR /var/www/html
|
||||
|
||||
COPY tinyfilemanager.php index.php
|
||||
COPY config-sample.php config.php
|
||||
RUN sed -i "s/\$root_path =.*;/\$root_path = \$_SERVER['DOCUMENT_ROOT'].'\/data';/g" config.php && \
|
||||
sed -i "s/\$root_url = '';/\$root_url = 'data\/';/g" config.php
|
||||
|
||||
CMD ["sh", "-c", "php -S 0.0.0.0:80"]
|
81
README.md
81
README.md
@ -1,22 +1,21 @@
|
||||
# Tiny File Manager
|
||||
|
||||
|
||||
[](https://tinyfilemanager.github.io/demo/)
|
||||
[](https://github.com/prasathmani/tinyfilemanager/wiki)
|
||||
[](https://github.com/prasathmani/tinyfilemanager/releases)
|
||||
[](https://github.com/prasathmani/tinyfilemanager/blob/master/LICENSE)
|
||||
[](https://github.com/prasathmani/tinyfilemanager/blob/master/LICENSE)
|
||||
[](https://www.paypal.me/prasathmani)
|
||||
|
||||
> TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, 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.
|
||||
|
||||
## Demo
|
||||
[Demo](https://tinyfilemanager.github.io/demo/)
|
||||
|
||||
Login Details : admin/admin@123 | user/12345
|
||||
[Demo](https://tinyfilemanager.github.io/demo/)
|
||||
|
||||
|
||||
## Documentation
|
||||
Tinyfilemanager is highly documented on the [wiki pages](https://github.com/prasathmani/tinyfilemanager/wiki).
|
||||
|
||||
Tinyfilemanager is highly documented on the [wiki pages](https://github.com/prasathmani/tinyfilemanager/wiki).
|
||||
|
||||
[](screenshot.gif)
|
||||
|
||||
@ -38,13 +37,14 @@ Default username/password: **admin/admin@123** and **user/12345**.
|
||||
|
||||
To enable/disable authentication set `$use_auth` to true or false.
|
||||
|
||||
:information_source: Rename the `config-sample.php` file into `config.php` to use configuration, it is an additional configuration file, Feel free to remove completely this file and configure "tinyfilemanager.php" as a single file application.
|
||||
|
||||
### :loudspeaker: Features
|
||||
### :loudspeaker: Features
|
||||
|
||||
- :cd: Open Source, light and extremely simple
|
||||
- :iphone: Mobile friendly view for touch devices
|
||||
- :information_source: Basic features likes Create, Delete, Modify, View, Quick Preview, Download, Copy and Move files
|
||||
- :arrow_double_up: Ajax Upload, Ability to drag & drop, upload from URL, multiple files upload with file extensions filter
|
||||
- :information_source: Basic features likes Create, Delete, Modify, View, Quick Preview, Download, Copy and Move files
|
||||
- :arrow_double_up: Ajax Upload, Ability to drag & drop, upload from URL, multiple files upload with file extensions filter
|
||||
- :file_folder: Ability to create folders and files
|
||||
- :gift: Ability to compress, extract files (`zip`, `tar`)
|
||||
- :sunglasses: Support user permissions - based on session and each user root folder mapping
|
||||
@ -52,13 +52,74 @@ To enable/disable authentication set `$use_auth` to true or false.
|
||||
- :pencil2: Cloud9 IDE - Syntax highlighting for over `150+` languages, Over `35+` themes with your favorite programming style
|
||||
- :page_facing_up: Google/Microsoft doc viewer helps you preview `PDF/DOC/XLS/PPT/etc`. 25 MB can be previewed with the Google Drive viewer
|
||||
- :zap: Backup files and IP blacklist and whitelist
|
||||
- :mag_right: Search - Search and filter files using `datatable js`
|
||||
- :mag_right: Search - Search and filter files using `datatable js`
|
||||
- :file_folder: Exclude folders and files from listing
|
||||
- :globe_with_meridians: Multi-language(20+) support and for translations `translation.json` is file required
|
||||
- :bangbang: lots more...
|
||||
|
||||
## Deploy by Docker
|
||||
|
||||
### <a name=license></a>License, Credit
|
||||
Make sure you have **already installed docker**, [Install reference](https://docs.docker.com/engine/install/)
|
||||
|
||||
> **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:
|
||||
|
||||
```shell
|
||||
$ 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](https://hub.docker.com/r/tinyfilemanager/tinyfilemanager)
|
||||
|
||||
#### How to change config within docker
|
||||
|
||||
**Important!!!** First, you can copy `config-sample.php` to `config.php`, and must modify this following config
|
||||
|
||||
Origin:
|
||||
|
||||
```php
|
||||
// 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:
|
||||
|
||||
```php
|
||||
// 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/config.php:/var/www/html/config.php` in `docker run` command, like this:
|
||||
|
||||
```shell
|
||||
$ docker run -d -v /absolute/path:/var/www/html/data -v /absolute/path/config.php:/var/www/html/config.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:
|
||||
|
||||
```shell
|
||||
$ docker rm -f tinyfilemanager
|
||||
```
|
||||
|
||||
### <a name=license></a>License, Credit
|
||||
|
||||
- Available under the [GNU license](https://github.com/prasathmani/tinyfilemanager/blob/master/LICENSE)
|
||||
- Original concept and development by github.com/alexantr/filemanager
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
The team takes security bugs seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions.
|
||||
|
||||
To report a security issue, email [ccpprogrammers@gmail.com](mailto:ccpprogrammers@gmail.com) and include the word "SECURITY" in the subject line.
|
||||
To report a security issue, email ccpprogrammers[at]gmail.com and include the word "SECURITY" in the subject line.
|
||||
|
||||
The team will send a response indicating the next steps in handling your report. After the initial reply to your report you will be kept informed of the progress towards a fix and full announcement.
|
||||
|
||||
|
123
config-sample.php
Normal file
123
config-sample.php
Normal file
@ -0,0 +1,123 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
#################################################################################################################
|
||||
This is an OPTIONAL configuration file. rename this file into config.php to use this configuration
|
||||
The role of this file is to make updating of "tinyfilemanager.php" easier.
|
||||
So you can:
|
||||
-Feel free to remove completely this file and configure "tinyfilemanager.php" as a single file application.
|
||||
or
|
||||
-Put inside this file all the static configuration you want and forgot to configure "tinyfilemanager.php".
|
||||
#################################################################################################################
|
||||
*/
|
||||
|
||||
// Auth with login/password
|
||||
// set true/false to enable/disable it
|
||||
// Is independent from IP white- and blacklisting
|
||||
$use_auth = true;
|
||||
|
||||
// Login user name and password
|
||||
// Users: array('Username' => 'Password', 'Username2' => 'Password2', ...)
|
||||
// Generate secure password hash - https://tinyfilemanager.github.io/docs/pwd.html
|
||||
$auth_users = array(
|
||||
'admin' => '$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW', //admin@123
|
||||
'user' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' //12345
|
||||
);
|
||||
|
||||
// Readonly users
|
||||
// e.g. array('users', 'guest', ...)
|
||||
$readonly_users = array(
|
||||
'user'
|
||||
);
|
||||
|
||||
// Enable highlight.js (https://highlightjs.org/) on view's page
|
||||
$use_highlightjs = true;
|
||||
|
||||
// highlight.js style
|
||||
// for dark theme use 'ir-black'
|
||||
$highlightjs_style = 'vs';
|
||||
|
||||
// Enable ace.js (https://ace.c9.io/) on view's page
|
||||
$edit_files = true;
|
||||
|
||||
// Default timezone for date() and time()
|
||||
// Doc - http://php.net/manual/en/timezones.php
|
||||
$default_timezone = 'Etc/UTC'; // UTC
|
||||
|
||||
// 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 = '';
|
||||
|
||||
// Server hostname. Can set manually if wrong
|
||||
$http_host = $_SERVER['HTTP_HOST'];
|
||||
|
||||
// user specific directories
|
||||
// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...)
|
||||
$directories_users = array();
|
||||
|
||||
// input encoding for iconv
|
||||
$iconv_input_encoding = 'UTF-8';
|
||||
|
||||
// date() format for file modification date
|
||||
// Doc - https://www.php.net/manual/en/datetime.format.php
|
||||
$datetime_format = 'd.m.y H:i:s';
|
||||
|
||||
// Allowed file extensions for create and rename files
|
||||
// e.g. 'txt,html,css,js'
|
||||
$allowed_file_extensions = '';
|
||||
|
||||
// Allowed file extensions for upload files
|
||||
// e.g. 'gif,png,jpg,html,txt'
|
||||
$allowed_upload_extensions = '';
|
||||
|
||||
// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root.
|
||||
// full path, e.g http://example.com/favicon.png
|
||||
// local path, e.g images/icons/favicon.png
|
||||
$favicon_path = '';
|
||||
|
||||
// Files and folders to excluded from listing
|
||||
// e.g. array('myfile.html', 'personal-folder', '*.php', ...)
|
||||
$exclude_items = array('');
|
||||
|
||||
// Online office Docs Viewer
|
||||
// Availabe rules are 'google', 'microsoft' or false
|
||||
// google => View documents using Google Docs Viewer
|
||||
// microsoft => View documents using Microsoft Web Apps Viewer
|
||||
// false => disable online doc viewer
|
||||
$online_viewer = 'google';
|
||||
|
||||
// Sticky Nav bar
|
||||
// true => enable sticky header
|
||||
// false => disable sticky header
|
||||
$sticky_navbar = true;
|
||||
|
||||
|
||||
// max upload file size
|
||||
$max_upload_size_bytes = 5000;
|
||||
|
||||
// Possible rules are 'OFF', 'AND' or 'OR'
|
||||
// OFF => Don't check connection IP, defaults to OFF
|
||||
// AND => Connection must be on the whitelist, and not on the blacklist
|
||||
// OR => Connection must be on the whitelist, or not on the blacklist
|
||||
$ip_ruleset = 'OFF';
|
||||
|
||||
// Should users be notified of their block?
|
||||
$ip_silent = true;
|
||||
|
||||
// IP-addresses, both ipv4 and ipv6
|
||||
$ip_whitelist = array(
|
||||
'127.0.0.1', // local ipv4
|
||||
'::1' // local ipv6
|
||||
);
|
||||
|
||||
// IP-addresses, both ipv4 and ipv6
|
||||
$ip_blacklist = array(
|
||||
'0.0.0.0', // non-routable meta ipv4
|
||||
'::' // non-routable meta ipv6
|
||||
);
|
||||
|
||||
?>
|
File diff suppressed because one or more lines are too long
1341
translation.json
1341
translation.json
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user