{"url":"/README.md","name":"README.md","mime":"text/plain","size":3374,"size_human":"3.29KB","modified":"2024-06-04T16:41:55Z","downloads":378,"preview":{"kind":"markdown","mime":"text/plain","truncated":false,"text":"<div align=\"center\">\n<!-- # Directory Browser\n_Easiest way to browse your files and folders on the web._\n![](dir-browser.png) -->\n<!-- [![](https://user-images.githubusercontent.com/19362349/235141708-34db874f-729c-4e50-b458-a3c0cb5d6c07.png)](https://dir.adriansoftware.de) -->\n<p><img src=\"https://user-images.githubusercontent.com/19362349/235141708-34db874f-729c-4e50-b458-a3c0cb5d6c07.png\" alt=\"\" style=\"\n/* overflow: hidden; */\nobject-fit: scale-down;\nwidth: 100%;\n\"></p>\n<!--\n![](p1.png)\n![](p2.png)\n-->\n</div>\n<h2 align=\"center\">\n<p>Visit <a href=\"https://dir.adriansoftware.de\">dir.adriansoftware.de</a> for documentation &amp; more!</p>\n</h2>\n<!-- ![image](https://github.com/adrianschubek/dir-browser/assets/19362349/102e058f-7d9e-457f-bde5-d61a8b0733f7) -->\n<p><img src=\"https://github.com/adrianschubek/dir-browser/assets/19362349/102e058f-7d9e-457f-bde5-d61a8b0733f7\" alt=\"\" style=\"\n/* overflow: hidden; */\nobject-fit: scale-down;\nwidth: 100%;\n\"></p>\n<h2>Demo</h2>\n<p><a href=\"https://dir-demo.adriansoftware.de\">https://dir-demo.adriansoftware.de</a></p>\n<h2>Features</h2>\n<ul>\n<li><strong>Download count</strong> for all files</li>\n<li>Secure by default. <strong>Read-only</strong> access</li>\n<li>Extremly <strong>fast</strong> file serving through <strong>nginx</strong></li>\n<li><strong>README</strong> markdown rendering support</li>\n<li>add <strong>custom description and labels</strong> to files and folders</li>\n<li><strong>Low memory</strong> footprint (~10MB)</li>\n<li>Light and <strong>Darkmode</strong></li>\n<li>File <strong>icons</strong></li>\n<li>Many <strong>Themes</strong> available</li>\n<li><strong>Password</strong> protect files</li>\n<li><strong>Clean URLs</strong> equivalent to file system paths</li>\n<li>Easy setup using single <strong>Docker</strong> image</li>\n<li><strong>Responsive</strong> design for mobile devices and desktop</li>\n<li>Easily configurable using <strong>environment variables</strong></li>\n<li>File stats like modification dates and sizes</li>\n<li>Highlight recently updated files</li>\n<li><strong>arm64</strong> support</li>\n<li>Works <strong>without JavaScript</strong> enabled</li>\n</ul>\n<!-- \nv1.1\n  add reaedme markdown thephpleague/commonmark renderer !!cache!!\n  fix santiaizte inout url \n\nv1.2\n  add ignore pattern\n  add remove attribution option\n  add password protection\n \ntbd\n  add file stats\n  themes bootswatch\n\nTODO https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/PHP/php-ngx/deploy/nginx.conf#L49\ndiretly embed pohpo in nginx maximum performance\n\n== BUGS ==\n\n- when path contains a dot it triggers full reload -> turbolinks\n\nTODO: file versions support -> dbmeta.json\nTODO: sidebar/modal when clicking on file (optional ENV)\nTODO:  - ?preview file preview\n        - nur modal mit overflow runter scrolling besser!!\nTODO: maybe persisten sidebar 2:1 layout -> on click(nicht hover) file show live preview + info + download button\n      - on mobile show modal instead\n\nTODO: add search php glob() . add nginx ratelimit\n    TODO --- pass IP from host to container for ratelimit!!\n\nTODO Features:\n\n      ?action=download ?action=view\n      ?action=hash\n      - add hash using hash_file() !!!\n\n      - end to end encrypted files\n      - global config file`.dbmeta.json`in root folder\n- add password protection for folders\n  - cache db meta fields in redis for faster access ! not needed\n  - use supervisord php background job -> load dbmeta every 30seconds into redis\n  - add password protection for files- migrate from redis to dragonfly ! more latency. not needed right now\n    - mnot redis. filesystem file_get_contents is faster!!!\n    - maybe drop redis in favor of sqlite (in-memory). slqite only 1 writer at a time (bad). keep redis.\n\n- replace github utpp download with npm i -g utpp\n\n-->\n"}}