Skip to content

slapiar/tinyfilemanager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

902 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiny File Manager

Live demo Live demo GitHub Release GitHub License Paypal GitHub Sponsors

TinyFileManager is a versatile web-based PHP file manager designed for simplicity and efficiency. This lightweight single-file PHP application can be effortlessly integrated into any server directory, allowing users to store, upload, edit, and manage files and folders directly through their web browser. With multi-language support and compatibility with PHP 5.5+, TinyFileManager enables the creation of individual user accounts, each with its dedicated directory. The platform also includes built-in functionality for handling text files using the Cloud9 IDE. Featuring syntax highlighting for over 150 languages and more than 35 themes, TinyFileManager offers a comprehensive solution for file management in an online environment.

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.

Joyee Bridge

For clients that cannot send custom HTTP headers (for example Joyee), use joyee-bridge.php with a dedicated bridge key.

  • joyee-bridge.php?action=ping&bridge_key=...
  • joyee-bridge.php?action=list&path=&bridge_key=...
  • The real API token stays only in joyee-bridge.config.php.
  • The bridge key must never be the same value as the API token.
  • Joyee Bridge uses a dedicated workspace root (default Joyee/) configured by $joyee_bridge_root_path.
  • Use only over HTTPS.

Joyee Probe

  • joyee-probe.php is a public diagnostic endpoint without token/auth.
  • It does not grant any permissions and does not expose secrets.
  • It is used only to verify domain reachability for ChatGPT/Joyee runtime.

OpenAI Assistant

  • Use api.php?action=assistant with a bearer token that has the assistant capability enabled in api.config.php.
  • Add your OpenAI key and assistant settings to local api.config.php; do not paste the key into the repository.
  • Send JSON like {"message":"Review these files","files":["src/Router.php","README.md"]} to have the assistant inspect selected project files.
  • The assistant reads only files inside the configured API root and only supports text-oriented file types by default.

Tiny File Manager

Requirements

  • PHP 5.5.0 or higher.
  • Fileinfo, iconv, zip, tar and mbstring extensions are strongly recommended.

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: 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.

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

ℹ️ To work offline without CDN resources, use offline branch

📢 Features

  • 💿 Open Source: Lightweight, minimalist, and extremely simple to set up.
  • 📱 Mobile Friendly: Optimized for touch devices and mobile viewing.
  • ℹ️ Core Features: Easily create, delete, modify, view, download, copy, and move files.
  • Advanced Upload Options: Ajax-powered uploads with drag-and-drop support, URL imports, and multi-file uploads with extension filtering.
  • 📁 Folder & File Management: Create and organize folders and files effortlessly.
  • 🎁 Compression Tools: Compress and extract files in zip and tar formats.
  • 😎 User Permissions: User-specific root folder mapping and session-based access control.
  • 💾 Direct URLs: Easily copy direct URLs for files.
  • ✏️ Code Editor: Includes Cloud9 IDE with syntax highlighting for 150+ languages and 35+ themes.
  • 📄 Document Preview: Google/Microsoft document viewer for PDF/DOC/XLS/PPT, supporting previews up to 25 MB.
  • Security Features: Backup capabilities, IP blacklisting, and whitelisting.
  • 🔎 Search Functionality: Use datatable.js for fast file search and filtering.
  • 📁 Customizable Listings: Exclude specific folders and files from directory views.
  • 🌐 Multi-language Support: Translations available in 35+ languages with translation.json.
  • ‼️ And Much More!

Rozšírenie oprávnení a rolí (vlastné úpravy)

Tento fork pridáva systém rolí pre zdieľanie súborov medzi klientmi a dodávateľmi projektu.

Roly a oprávnenia

Rola Upload Download Rename / Zip / Copy Mazať Vidí
admin celý root priečinok
manager celý root priečinok
client len svoj priečinok
supplier len svoj priečinok

Konfigurácia

Všetky nastavenia sa nachádzajú v súbore config.php v rovnakom priečinku ako tinyfilemanager.php. Hlavný súbor tinyfilemanager.php neupravujteconfig.php jeho hodnoty automaticky prepíše.

// Používatelia a heslá (bcrypt hash)
$auth_users = array(
    'admin'    => '$2y$10$...', // admin@123
    'manager1' => '$2y$10$...', // 12345
    'client1'  => '$2y$10$...', // 12345
    'supplier1'=> '$2y$10$...', // 12345
);

// Roly
$readonly_users     = array();                           // len sťahovanie
$upload_only_users  = array('client1', 'supplier1');     // upload + download
$manager_users      = array('manager1');                 // všetko okrem mazania

// Izolované priečinky (klienti/dodávatelia vidia len svoj)
$directories_users = array(
    'client1'   => '/var/www/html/uploads/client1',
    'supplier1' => '/var/www/html/uploads/supplier1',
);

Pridanie nového používateľa

  1. Vygenerovať hash hesla (v termináli na serveri):

    php -r "echo password_hash('vase_heslo', PASSWORD_BCRYPT) . PHP_EOL;"

    Prípadne online: https://tinyfilemanager.github.io/docs/pwd.html

  2. Doplniť do config.php:

    // 1. pridať používateľa
    $auth_users['client3'] = '$2y$10$...hash...';
    
    // 2. priradiť rolu
    $upload_only_users[] = 'client3';
    
    // 3. nastaviť izolovaný priečinok
    $directories_users['client3'] = '/var/www/html/uploads/client3';
  3. Vytvoriť priečinok na disku:

    mkdir /var/www/html/uploads/client3

Release 1.6

Novinky

  • Stabilnejšie uloženie nastavení s JSON odpoveďou a lepšou detekciou chýb pri zápise konfigurácie.
  • Po uložení nastavení sa zobrazí potvrdenie a používateľ sa automaticky presmeruje späť na zoznam súborov.
  • Vylepšené prepínanie témy (light/dark) vrátane konzistentného zebra štýlu tabuľky.
  • Mobilné UX zlepšenia: rýchle akcie v navigácii, väčšie dotykové ciele, sticky panel pre multi-výber.
  • Automatický grid režim na mobile, ak nie je uložená preferencia používateľa.
  • Kompaktný režim tabuľky pod 480 px (skrytie menej dôležitých stĺpcov).
  • Lokalizácia textu „Selected“ pre nové mobilné počítadlo výberu (vrátane translation.json).
  • Pripravený release balík tinyfilemanager-1.6.zip.

License, Credit

  • Available under the GNU license
  • Original concept and development by github.com/alexantr/filemanager
  • CDN Used - jQuery, Bootstrap, Font Awesome, Highlight js, ace js, DropZone js, and DataTable js
  • To report a bug or request a feature, please file an issue
  • Contributors

About

Single-file PHP file manager, browser and manage your files efficiently and easily with tinyfilemanager

Resources

License

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • PHP 90.7%
  • JavaScript 5.9%
  • CSS 1.9%
  • Other 1.5%