Tiny File Manager は PHP ベースの簡易ファイルマネージャです。 直接、システムにインストールしても勿論問題ありませんが、今回は tigerdockermediocore/tinyfilemanager-docker で公開されている Docker コンテナイメージを使い、簡単に Tiny File Manager を動作させる手順をメモしておきます。 動作確認は Rocky Linux8 上で行いました。 今回はあくまでテストということで「Nginx で公開している Document Root を Tiny File Manager で公開する」というシナリオを実装します。
docker のインストール
Rocky Linux8 へ docker-compose v2 系をインストールする などに記載していますが、Docker 公式サイトの手順に従ってインストール&起動します。
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
Nginx のインストール
必須ではありませんが、Nginx をインストールしておきます。
dnf config-manager --add-repo https://s3.sig9.org/repos/nginx.repo
dnf install -y nginx
systemctl start nginx
systemctl enable nginx
Tiny File Manager の起動
Tiny File Manager のコンテナイメージを取得しておきます。
docker pull tigerdockermediocore/tinyfilemanager-docker:latest
コンテナを起動します。
docker run \
-d \
-v /usr/share/nginx/html/:/data \
-p 8080:80 \
--name tinyfilemanager \
tigerdockermediocore/tinyfilemanager-docker:latest
docker update --restart always tinyfilemanager
Web ブラウザで Tiny File Manager へアクセスする
コンテナを開始したので Web ブラウザで http://ADDRESS:8080
へアクセスすると Tiny File Manager のログイン画面が表示されます。 デフォルトでは下記のユーザでログイン可能です。
ユーザ名 | パスワード |
---|---|
admin |
admin@123 |
user |
12345 |
ログインすると以下の画面になりました。 後は Web UI に従ってファイルのアップロードなどを実行します。
参考
/app/tinyfilemanager/config.php
コンテナ内の設定ファイルは /app/tinyfilemanager/config.php
にあり、デフォルトでは以下の内容になっていました。
<?php
/*
#################################################################################################################
This is an OPTIONAL configuration file.
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;
// 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
);
//set application theme
//options - 'light' and 'dark'
$theme = 'light';
// 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 = '/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 = '';
// 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/function.date.php
$datetime_format = 'd.m.y H:i';
// 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 = '?img=favicon';
// 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 = 2048;
// 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
);
?>
コメント