filebrowser/README.md

146 lines
6.0 KiB
Markdown
Raw Normal View History

2023-09-06 21:07:35 +00:00
<p align="center">
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-green.svg?color=3F51B5&style=for-the-badge&label=License&logoColor=000000&labelColor=ececec" alt="License: MIT"></a>
</p>
<p align="center">
2023-09-09 22:01:09 +00:00
<img src="frontend/public/img/icons/favicon-256x256.png" width="100" title="Login With Custom URL">
2023-09-06 21:07:35 +00:00
</p>
<h3 align="center">Filebrowser - A modern file manager for the web</h3>
<p align="center">
<img width="500" src="https://github.com/gtsteffaniak/filebrowser/assets/42989099/459937ef-3f14-408d-aef5-899cde4cf3a1" title="Main Screenshot">
</p>
2023-09-03 17:40:09 +00:00
> **NOTE**
Intended for docker use only
> **Warning**
2023-09-03 22:19:51 +00:00
Starting with v0.2.0, *ALL* configuration is done via `filebrowser.yaml` configuration file. `.filebrowser.json` and any flags other than `-c` and `-config` during execution WILL NO LONGER WORK. This is by design, in order to use the v0.2.0 You can mount your directory and initialize a new DB with a new default `filebrowser.yaml` which you can tweak and use in the future. Or you can copy and paste the default startup `filebrowser.yaml` below.
2023-06-13 13:22:24 +00:00
This fork makes the following significant changes to filebrowser for origin:
2023-06-15 01:08:09 +00:00
1. [x] Improves search to use index instead of filesystem.
2023-06-16 17:29:43 +00:00
- [x] Lightning fast
- [x] Realtime results as you type
2023-07-17 05:32:43 +00:00
- [x] Works with file type filter
2023-07-30 22:40:59 +00:00
- [x] better desktop search view
2023-09-03 17:40:09 +00:00
1. [x] Preview enhancements
2023-07-30 22:40:59 +00:00
- Preview default view is constrained to files subwindow,
2023-06-13 13:22:24 +00:00
which can be toggled to fullscreen.
2023-07-30 22:40:59 +00:00
1. [x] Improved and simplified GUI
- Moved all action buttons to file action bar except for switch-view
- Simplified navbar to 3 main actions: settings,search, and switch-view
2023-08-02 13:49:50 +00:00
- New search view on desktop
2023-07-17 05:32:43 +00:00
1. [x] Updated version and dependencies
2023-07-30 22:40:59 +00:00
- [x] Uses latest npm and node version
- [x] Removes deprecated npm packages
2023-06-16 17:29:43 +00:00
- [x] Updates golang dependencies
2023-09-03 17:40:09 +00:00
- [x] Remove all unnecessary packages, replaces with generic functions.
1. [x] **IMPORTANT** Moved all configurations to `filebrowser.yaml`. no more flags or binary operations to db
2023-08-17 21:46:49 +00:00
## About
2023-08-17 21:46:49 +00:00
Filebrowser provides a file managing interface within a specified directory
and it can be used to upload, delete, preview, rename and edit your files.
It allows the creation of multiple users and each user can have its own
2023-07-30 22:40:59 +00:00
directory. It can be used as a standalone app.
2023-08-17 21:46:49 +00:00
This repository is a fork, a collection of changes that make this program
2023-08-02 13:49:50 +00:00
work better in terms of asthetics and performance. Improved search,
simplified ui (without removing features) and more secure and up-to-date
2023-08-17 21:46:49 +00:00
build are just a few examples.
2023-08-02 13:49:50 +00:00
2023-08-17 21:46:49 +00:00
There are a few more changes needed to get it to a stable status where it
2023-08-02 13:49:50 +00:00
will only recieve security updates. These changes are mentioned above.
Once this is fully complete, the only updates to th
2023-08-02 13:31:04 +00:00
## Look
2023-09-06 21:07:35 +00:00
<p align="center">
<img width="500" src="https://github.com/gtsteffaniak/filebrowser/assets/42989099/35cdeb3b-ab79-4b04-8001-8f51f6ea06bb" title="Dark mode">
<img width="500" src="https://github.com/gtsteffaniak/filebrowser/assets/42989099/8d426356-26cf-407b-b078-bf58f198e799" title="Dark mode2">
<img width="300" src="https://github.com/gtsteffaniak/filebrowser/assets/42989099/37e8f03b-4f5a-4689-aa6c-5cd858a858e9" title="Dark mode">
<img width="300" src="https://github.com/gtsteffaniak/filebrowser/assets/42989099/b04d3c1f-154b-45ba-927c-2112926ad3a9" title="Dark mode">
</p>
2023-08-02 13:31:04 +00:00
2023-08-02 13:49:50 +00:00
## Performance
2023-08-17 21:46:49 +00:00
Search Performance - 100x faster search. However, this will be at expense of RAM. if you have < 1 million
files and folders in the given scope, the RAM usage should be less than 200MB total. RAM requirements
should scale based on the number of directories.
2023-08-02 13:49:50 +00:00
2023-08-17 21:46:49 +00:00
Also , the approx. time to fully index will vary widely based on performance. A sufficiently performant
2023-08-02 13:49:50 +00:00
system should fully index within the first 5 minutes, potentially within the first few seconds.
2023-09-10 00:01:36 +00:00
For example, a low end 11th gen i5 with SSD indexes 128K files within 1 second:
2023-08-02 13:49:50 +00:00
```
2023-09-09 21:59:43 +00:00
2023/09/09 21:38:50 Initializing with config file: filebrowser.yaml
2023/09/09 21:38:50 Indexing files...
2023/09/09 21:38:50 Listening on [::]:8080
2023/09/09 21:38:51 Successfully indexed files.
2023/09/09 21:38:51 Files found : 123452
2023/09/09 21:38:51 Directories found : 1768
2023/09/09 21:38:51 Indexing scheduler will run every 5 minutes
2023-08-02 13:49:50 +00:00
```
## Install
Using docker:
2023-09-09 21:59:43 +00:00
1. docker run (no persistent db):
```
2023-09-09 21:59:43 +00:00
docker run -it -v /path/to/folder:/srv -p 80:8080 gtstef/filebrowser
```
1. docker-compose:
- with local storage
```
version: '3.7'
services:
filebrowser:
volumes:
2023-09-09 21:59:43 +00:00
- '/path/to/folder:/srv' # required (for now not configurable)
- './database:/database' # optional if you want db to persist - configure a path under "database" dir in config file.
- './filebrowser.yaml:/filebrowser.yaml' # required
ports:
2023-09-09 21:59:43 +00:00
- '80:8080'
2023-08-02 13:49:50 +00:00
image: gtstef/filebrowser
2023-09-09 21:59:43 +00:00
restart: always
```
- with network share
```
version: '3.7'
services:
filebrowser:
volumes:
2023-09-09 21:59:43 +00:00
- 'storage:/srv' # required (for now not configurable)
- './database:/database' # optional if you want db to persist - configure a path under "database" dir in config file.
- './filebrowser.yaml:/filebrowser.yaml' # required
ports:
2023-09-09 21:59:43 +00:00
- '80:8080'
2023-08-02 13:49:50 +00:00
image: gtstef/filebrowser
2023-09-09 21:59:43 +00:00
restart: always
volumes:
2023-09-09 21:59:43 +00:00
storage:
driver_opts:
type: cifs
2023-09-09 21:59:43 +00:00
o: "username=admin,password=password,rw" # enter valid info here
device: "//192.168.1.100/share/" # enter valid hinfo here
```
## Configuration
2023-09-09 21:59:43 +00:00
All configuration is now done via a single configuration file: `filebrowser.yaml`, here is an example minimal [configuration file](./backend/filebrowser.yaml).
View the [Configuration Help Page](./configuration.md) for available configuration options and other help.
2023-09-03 17:40:09 +00:00
### background
2023-07-29 15:16:09 +00:00
2023-09-03 17:40:09 +00:00
The original project filebrowser/filebrowser used multiple different ways to configure the server.
This was confusing and difficult to work with from a user and from a developer's perspective.
So I completely redesigned the program to use one single human-readable config file.