diff --git a/README.md b/README.md index 1765214f..6caf927f 100644 --- a/README.md +++ b/README.md @@ -72,23 +72,23 @@ system should fully index within the first 5 minutes, potentially within the fir For example, a low end 11th gen i5 with SSD indexes 86K files within 1 second: ``` -2023/08/01 00:08:29 Using config file: /.filebrowser.json -2023/08/01 00:08:29 Indexing files... -2023/08/01 00:08:29 Listening on [::]:8080 -2023/08/01 00:08:30 Successfully indexed files. -2023/08/01 00:08:30 Files found : 85310 -2023/08/01 00:08:30 Directories found : 1711 -2023/08/01 00:08:30 Indexing scheduler will run every 5 minutes +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 ``` ## Install Using docker: -1. docker run: +1. docker run (no persistent db): ``` -docker run -it -v /path/to/folder:/srv -p 8080:8080 gtstef/filebrowser +docker run -it -v /path/to/folder:/srv -p 80:8080 gtstef/filebrowser ``` 1. docker-compose: @@ -100,12 +100,13 @@ version: '3.7' services: filebrowser: volumes: - - '/path/to/folder:/srv' - #- './database/:/database/' - - './config.json:/.filebrowser.json' + - '/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: - - '8080:8080' + - '80:8080' image: gtstef/filebrowser + restart: always ``` - with network share @@ -115,23 +116,28 @@ version: '3.7' services: filebrowser: volumes: - - 'nas:/srv' - #- './database/:/database/' - #- './config.json:/.filebrowser.json' + - '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: - - '8080:80' + - '80:8080' image: gtstef/filebrowser + restart: always volumes: - nas: + storage: driver_opts: type: cifs - o: "username=myusername,password=mypassword,rw" - device: "//fileshare/" + o: "username=admin,password=password,rw" # enter valid info here + device: "//192.168.1.100/share/" # enter valid hinfo here + ``` ## Configuration -All configuration is now done via a single configuration file: `filebrowser.yaml`, here is an example [configuration file](./backend/filebrowser.yaml). +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. + ### background The original project filebrowser/filebrowser used multiple different ways to configure the server. diff --git a/backend/http/static.go b/backend/http/static.go index db475bc4..aef7bd0d 100644 --- a/backend/http/static.go +++ b/backend/http/static.go @@ -98,7 +98,6 @@ func handleWithStaticData(w http.ResponseWriter, _ *http.Request, d *data, fSys } func getStaticHandlers(store *storage.Storage, server *settings.Server, assetsFs fs.FS) (index, static http.Handler) { - log.Print("requesting", store, assetsFs) index = handle(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) { if r.Method != http.MethodGet { return http.StatusNotFound, nil diff --git a/configuration.md b/configuration.md new file mode 100644 index 00000000..df13d0ee --- /dev/null +++ b/configuration.md @@ -0,0 +1,114 @@ +# Configuration Help + +This document covers the available configuration options, their defaults, and how they affect the functionality of filebrowser. + +## All possible configurations + +Here is an expanded config file which includes all possible configurations: + +``` +server: + indexingInterval: 5 + numImageProcessors: 4 + socket: "" + tlsKey: "" + tlsCert: "" + enableThumbnails: false + resizePreview: true + typeDetectionByHeader: true + port: 8080 + baseURL: "/" + address: "" + log: "stdout" + database: "/database/database.db" + root: "/srv" +auth: + recaptcha: + host: "" + key: "" + secret: "" + header: "" + method: json + command: "" + signup: false + shell: "" +frontend: + name: "" + disableExternal: false + disableUsedPercentage: true + files: "" + theme: "" + color: "" +userDefaults: + scope: "" + locale: "" + viewMode: "" + singleClick: true + sorting: + by: "" + asc: true + permissions: + admin: true + execute: true + create: true + rename: true + modify: true + delete: true + share: true + download: true + commands: [] + hideDotfiles: false + dateFormat: false +``` + +Here are the defaults if nothing is set: + +``` +Signup: true +AdminUsername: admin +AdminPassword: admin +Server: + EnableThumbnails: true + EnableExec: false + IndexingInterval: 5 + Port: 8080 + NumImageProcessors: 4 + BaseURL: "" + Database: database.db + Log: stdout + Root: /srv +Auth: + Method: password + Recaptcha: + Host: "" +UserDefaults: + Scope: "." + LockPassword: false + HideDotfiles: true + Permissions: + Create: true + Rename: true + Modify: true + Delete: true + Share: true + Download: true +``` + +## About each configuration + +### Server configuration settings + + - `indexingInterval`: This is the time in minutes the system waits before checking for filesystem changes. (used in search only) + - `numImageProcessors`: + socket: "" + tlsKey: "" + tlsCert: "" + enableThumbnails: false + resizePreview: true + typeDetectionByHeader: true + port: 8080 + baseURL: "/" + address: "" + log: "stdout" + - `database`: This is the database file path + filename that will be created if it does not already exist. If it exists, it will use the existing file. + - `root`: "/srv" \ No newline at end of file