diff --git a/Dockerfile b/Dockerfile index 6162e84c..81452858 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,8 +6,7 @@ RUN npm run build FROM golang:alpine as base WORKDIR /app -COPY ./src/ ./ -COPY --from=nbuild /app/dist ./frontend/dist +COPY ./src/backend ./ RUN go build -o filebrowser . FROM alpine:latest @@ -24,4 +23,6 @@ EXPOSE 80 COPY --from=base /app/docker_config.json /.filebrowser.json COPY --from=base /app/filebrowser /filebrowser +COPY --from=nbuild /app/dist/ ./frontend/dist/ + ENTRYPOINT [ "/filebrowser" ] \ No newline at end of file diff --git a/README.md b/README.md index 7e39024d..6160f791 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,70 @@ -

- -

+## gtstef fork of filebrowser -![Preview](https://user-images.githubusercontent.com/5447088/50716739-ebd26700-107a-11e9-9817-14230c53efd2.gif) +Intended for docker use only, makes the following significant changes to filebrowser; -[![Build](https://github.com/filebrowser/filebrowser/actions/workflows/main.yaml/badge.svg)](https://github.com/filebrowser/filebrowser/actions/workflows/main.yaml) -[![Go Report Card](https://goreportcard.com/badge/github.com/filebrowser/filebrowser?style=flat-square)](https://goreportcard.com/report/github.com/filebrowser/filebrowser) -[![Documentation](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/filebrowser/filebrowser) -[![Version](https://img.shields.io/github/release/filebrowser/filebrowser.svg?style=flat-square)](https://github.com/filebrowser/filebrowser/releases/latest) -[![Chat IRC](https://img.shields.io/badge/freenode-%23filebrowser-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23filebrowser) + 1. Improves search to use index instead of filesystem search. + - lightning fast + - realtime results as you type + 1. Preview enhancments + - preview default view is constrained to files subwindow, which can be toggled to fullscreen. + 1. Updated node version and dependancies + - uses latest npm and node version + - removes deprecated npm packages + 1. Improved routing + - fixed bugs in original version + 1. Added authentication type + - Using bearer token with remote authentication server + +## About 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 directory. It can be used as a standalone app. -## Features - -Please refer to our docs at [https://filebrowser.org/features](https://filebrowser.org/features) - ## Install -For installation instructions please refer to our docs at [https://filebrowser.org/installation](https://filebrowser.org/installation). +Using docker: + +1. docker run: + +``` +``` + +1. docker-compose: + + - with local storage + +``` +version: '3.7' +services: + filebrowser: + volumes: + - '/path/to/folder:/srv' + #- './database/:/database/' + #- './config.json:/.filebrowser.json' + ports: + - '8080:80' + image: gtstef/filebrowser:0.1.0 +``` + + - with network share + +``` +version: '3.7' +services: + filebrowser: + volumes: + - 'nas:/srv' + #- './database/:/database/' + #- './config.json:/.filebrowser.json' + ports: + - '8080:80' + image: gtstef/filebrowser:0.1.0 +volumes: + nas: + driver_opts: + type: cifs + o: "username=myusername,password=mypassword,rw" + device: "//fileshare/" +``` ## Configuration -[Authentication Method](https://filebrowser.org/configuration/authentication-method) - You can change the way the user authenticates with the filebrowser server - -[Command Runner](https://filebrowser.org/configuration/command-runner) - The command runner is a feature that enables you to execute any shell command you want before or after a certain event. - -[Custom Branding](https://filebrowser.org/configuration/custom-branding) - You can customize your File Browser installation by change its name to any other you want, by adding a global custom style sheet and by using your own logotype if you want. - -## Contributing - -If you're interested in contributing to this project, our docs are best places to start [https://filebrowser.org/contributing](https://filebrowser.org/contributing). diff --git a/src/auth/auth.go b/src/backend/auth/auth.go similarity index 100% rename from src/auth/auth.go rename to src/backend/auth/auth.go diff --git a/src/auth/hook.go b/src/backend/auth/hook.go similarity index 100% rename from src/auth/hook.go rename to src/backend/auth/hook.go diff --git a/src/auth/json.go b/src/backend/auth/json.go similarity index 100% rename from src/auth/json.go rename to src/backend/auth/json.go diff --git a/src/auth/none.go b/src/backend/auth/none.go similarity index 100% rename from src/auth/none.go rename to src/backend/auth/none.go diff --git a/src/auth/proxy.go b/src/backend/auth/proxy.go similarity index 100% rename from src/auth/proxy.go rename to src/backend/auth/proxy.go diff --git a/src/auth/storage.go b/src/backend/auth/storage.go similarity index 100% rename from src/auth/storage.go rename to src/backend/auth/storage.go diff --git a/src/cmd/cmd.go b/src/backend/cmd/cmd.go similarity index 100% rename from src/cmd/cmd.go rename to src/backend/cmd/cmd.go diff --git a/src/cmd/cmds.go b/src/backend/cmd/cmds.go similarity index 100% rename from src/cmd/cmds.go rename to src/backend/cmd/cmds.go diff --git a/src/cmd/cmds_add.go b/src/backend/cmd/cmds_add.go similarity index 100% rename from src/cmd/cmds_add.go rename to src/backend/cmd/cmds_add.go diff --git a/src/cmd/cmds_ls.go b/src/backend/cmd/cmds_ls.go similarity index 100% rename from src/cmd/cmds_ls.go rename to src/backend/cmd/cmds_ls.go diff --git a/src/cmd/cmds_rm.go b/src/backend/cmd/cmds_rm.go similarity index 100% rename from src/cmd/cmds_rm.go rename to src/backend/cmd/cmds_rm.go diff --git a/src/cmd/config.go b/src/backend/cmd/config.go similarity index 100% rename from src/cmd/config.go rename to src/backend/cmd/config.go diff --git a/src/cmd/config_cat.go b/src/backend/cmd/config_cat.go similarity index 100% rename from src/cmd/config_cat.go rename to src/backend/cmd/config_cat.go diff --git a/src/cmd/config_export.go b/src/backend/cmd/config_export.go similarity index 100% rename from src/cmd/config_export.go rename to src/backend/cmd/config_export.go diff --git a/src/cmd/config_import.go b/src/backend/cmd/config_import.go similarity index 100% rename from src/cmd/config_import.go rename to src/backend/cmd/config_import.go diff --git a/src/cmd/config_init.go b/src/backend/cmd/config_init.go similarity index 100% rename from src/cmd/config_init.go rename to src/backend/cmd/config_init.go diff --git a/src/cmd/config_set.go b/src/backend/cmd/config_set.go similarity index 100% rename from src/cmd/config_set.go rename to src/backend/cmd/config_set.go diff --git a/src/cmd/docs.go b/src/backend/cmd/docs.go similarity index 100% rename from src/cmd/docs.go rename to src/backend/cmd/docs.go diff --git a/src/cmd/hash.go b/src/backend/cmd/hash.go similarity index 100% rename from src/cmd/hash.go rename to src/backend/cmd/hash.go diff --git a/src/cmd/root.go b/src/backend/cmd/root.go similarity index 98% rename from src/cmd/root.go rename to src/backend/cmd/root.go index 4674d168..9a175b17 100644 --- a/src/cmd/root.go +++ b/src/backend/cmd/root.go @@ -23,7 +23,6 @@ import ( "github.com/filebrowser/filebrowser/v2/auth" "github.com/filebrowser/filebrowser/v2/diskcache" - "github.com/filebrowser/filebrowser/v2/frontend" fbhttp "github.com/filebrowser/filebrowser/v2/http" "github.com/filebrowser/filebrowser/v2/img" "github.com/filebrowser/filebrowser/v2/settings" @@ -35,6 +34,14 @@ var ( cfgFile string ) +type dirFS struct { + http.Dir +} + +func (d dirFS) Open(name string) (fs.File, error) { + return d.Dir.Open(name) +} + func init() { cobra.OnInitialize(initConfig) cobra.MousetrapHelpText = "" @@ -170,11 +177,7 @@ user created with the credentials from options "username" and "password".`, signal.Notify(sigc, os.Interrupt, syscall.SIGTERM) go cleanupHandler(listener, sigc) - assetsFs, err := fs.Sub(frontend.Assets(), "dist") - if err != nil { - panic(err) - } - + assetsFs := dirFS{Dir: http.Dir("frontend/dist")} handler, err := fbhttp.NewHandler(imgSvc, fileCache, d.store, server, assetsFs) checkErr(err) diff --git a/src/cmd/rule_rm.go b/src/backend/cmd/rule_rm.go similarity index 100% rename from src/cmd/rule_rm.go rename to src/backend/cmd/rule_rm.go diff --git a/src/cmd/rules.go b/src/backend/cmd/rules.go similarity index 100% rename from src/cmd/rules.go rename to src/backend/cmd/rules.go diff --git a/src/cmd/rules_add.go b/src/backend/cmd/rules_add.go similarity index 100% rename from src/cmd/rules_add.go rename to src/backend/cmd/rules_add.go diff --git a/src/cmd/rules_ls.go b/src/backend/cmd/rules_ls.go similarity index 100% rename from src/cmd/rules_ls.go rename to src/backend/cmd/rules_ls.go diff --git a/src/cmd/upgrade.go b/src/backend/cmd/upgrade.go similarity index 100% rename from src/cmd/upgrade.go rename to src/backend/cmd/upgrade.go diff --git a/src/cmd/users.go b/src/backend/cmd/users.go similarity index 100% rename from src/cmd/users.go rename to src/backend/cmd/users.go diff --git a/src/cmd/users_add.go b/src/backend/cmd/users_add.go similarity index 100% rename from src/cmd/users_add.go rename to src/backend/cmd/users_add.go diff --git a/src/cmd/users_export.go b/src/backend/cmd/users_export.go similarity index 100% rename from src/cmd/users_export.go rename to src/backend/cmd/users_export.go diff --git a/src/cmd/users_find.go b/src/backend/cmd/users_find.go similarity index 100% rename from src/cmd/users_find.go rename to src/backend/cmd/users_find.go diff --git a/src/cmd/users_import.go b/src/backend/cmd/users_import.go similarity index 100% rename from src/cmd/users_import.go rename to src/backend/cmd/users_import.go diff --git a/src/cmd/users_rm.go b/src/backend/cmd/users_rm.go similarity index 100% rename from src/cmd/users_rm.go rename to src/backend/cmd/users_rm.go diff --git a/src/cmd/users_update.go b/src/backend/cmd/users_update.go similarity index 100% rename from src/cmd/users_update.go rename to src/backend/cmd/users_update.go diff --git a/src/cmd/utils.go b/src/backend/cmd/utils.go similarity index 100% rename from src/cmd/utils.go rename to src/backend/cmd/utils.go diff --git a/src/cmd/version.go b/src/backend/cmd/version.go similarity index 100% rename from src/cmd/version.go rename to src/backend/cmd/version.go diff --git a/src/diskcache/cache.go b/src/backend/diskcache/cache.go similarity index 100% rename from src/diskcache/cache.go rename to src/backend/diskcache/cache.go diff --git a/src/diskcache/file_cache.go b/src/backend/diskcache/file_cache.go similarity index 100% rename from src/diskcache/file_cache.go rename to src/backend/diskcache/file_cache.go diff --git a/src/diskcache/file_cache_test.go b/src/backend/diskcache/file_cache_test.go similarity index 100% rename from src/diskcache/file_cache_test.go rename to src/backend/diskcache/file_cache_test.go diff --git a/src/diskcache/noop_cache.go b/src/backend/diskcache/noop_cache.go similarity index 100% rename from src/diskcache/noop_cache.go rename to src/backend/diskcache/noop_cache.go diff --git a/src/docker/root/defaults/settings.json b/src/backend/docker/root/defaults/settings.json similarity index 100% rename from src/docker/root/defaults/settings.json rename to src/backend/docker/root/defaults/settings.json diff --git a/src/docker/root/etc/cont-init.d/20-config b/src/backend/docker/root/etc/cont-init.d/20-config similarity index 100% rename from src/docker/root/etc/cont-init.d/20-config rename to src/backend/docker/root/etc/cont-init.d/20-config diff --git a/src/docker/root/etc/services.d/filebrowser/run b/src/backend/docker/root/etc/services.d/filebrowser/run similarity index 100% rename from src/docker/root/etc/services.d/filebrowser/run rename to src/backend/docker/root/etc/services.d/filebrowser/run diff --git a/src/docker_config.json b/src/backend/docker_config.json similarity index 100% rename from src/docker_config.json rename to src/backend/docker_config.json diff --git a/src/errors/errors.go b/src/backend/errors/errors.go similarity index 100% rename from src/errors/errors.go rename to src/backend/errors/errors.go diff --git a/src/files/file.go b/src/backend/files/file.go similarity index 100% rename from src/files/file.go rename to src/backend/files/file.go diff --git a/src/files/listing.go b/src/backend/files/listing.go similarity index 100% rename from src/files/listing.go rename to src/backend/files/listing.go diff --git a/src/files/sorting.go b/src/backend/files/sorting.go similarity index 100% rename from src/files/sorting.go rename to src/backend/files/sorting.go diff --git a/src/files/utils.go b/src/backend/files/utils.go similarity index 100% rename from src/files/utils.go rename to src/backend/files/utils.go diff --git a/src/fileutils/copy.go b/src/backend/fileutils/copy.go similarity index 100% rename from src/fileutils/copy.go rename to src/backend/fileutils/copy.go diff --git a/src/fileutils/dir.go b/src/backend/fileutils/dir.go similarity index 100% rename from src/fileutils/dir.go rename to src/backend/fileutils/dir.go diff --git a/src/fileutils/file.go b/src/backend/fileutils/file.go similarity index 100% rename from src/fileutils/file.go rename to src/backend/fileutils/file.go diff --git a/src/fileutils/file_test.go b/src/backend/fileutils/file_test.go similarity index 100% rename from src/fileutils/file_test.go rename to src/backend/fileutils/file_test.go diff --git a/src/go.mod b/src/backend/go.mod similarity index 100% rename from src/go.mod rename to src/backend/go.mod diff --git a/src/go.sum b/src/backend/go.sum similarity index 100% rename from src/go.sum rename to src/backend/go.sum diff --git a/src/http/auth.go b/src/backend/http/auth.go similarity index 100% rename from src/http/auth.go rename to src/backend/http/auth.go diff --git a/src/http/commands.go b/src/backend/http/commands.go similarity index 100% rename from src/http/commands.go rename to src/backend/http/commands.go diff --git a/src/http/data.go b/src/backend/http/data.go similarity index 100% rename from src/http/data.go rename to src/backend/http/data.go diff --git a/src/http/http.go b/src/backend/http/http.go similarity index 100% rename from src/http/http.go rename to src/backend/http/http.go diff --git a/src/http/preview.go b/src/backend/http/preview.go similarity index 100% rename from src/http/preview.go rename to src/backend/http/preview.go diff --git a/src/http/preview_enum.go b/src/backend/http/preview_enum.go similarity index 100% rename from src/http/preview_enum.go rename to src/backend/http/preview_enum.go diff --git a/src/http/public.go b/src/backend/http/public.go similarity index 100% rename from src/http/public.go rename to src/backend/http/public.go diff --git a/src/http/public_test.go b/src/backend/http/public_test.go similarity index 100% rename from src/http/public_test.go rename to src/backend/http/public_test.go diff --git a/src/http/raw.go b/src/backend/http/raw.go similarity index 100% rename from src/http/raw.go rename to src/backend/http/raw.go diff --git a/src/http/resource.go b/src/backend/http/resource.go similarity index 100% rename from src/http/resource.go rename to src/backend/http/resource.go diff --git a/src/http/search.go b/src/backend/http/search.go similarity index 100% rename from src/http/search.go rename to src/backend/http/search.go diff --git a/src/http/settings.go b/src/backend/http/settings.go similarity index 100% rename from src/http/settings.go rename to src/backend/http/settings.go diff --git a/src/http/share.go b/src/backend/http/share.go similarity index 100% rename from src/http/share.go rename to src/backend/http/share.go diff --git a/src/http/static.go b/src/backend/http/static.go similarity index 100% rename from src/http/static.go rename to src/backend/http/static.go diff --git a/src/http/users.go b/src/backend/http/users.go similarity index 100% rename from src/http/users.go rename to src/backend/http/users.go diff --git a/src/http/utils.go b/src/backend/http/utils.go similarity index 100% rename from src/http/utils.go rename to src/backend/http/utils.go diff --git a/src/img/service.go b/src/backend/img/service.go similarity index 100% rename from src/img/service.go rename to src/backend/img/service.go diff --git a/src/img/service_enum.go b/src/backend/img/service_enum.go similarity index 100% rename from src/img/service_enum.go rename to src/backend/img/service_enum.go diff --git a/src/img/service_test.go b/src/backend/img/service_test.go similarity index 100% rename from src/img/service_test.go rename to src/backend/img/service_test.go diff --git a/src/img/testdata/20130612_142406.jpg b/src/backend/img/testdata/20130612_142406.jpg similarity index 100% rename from src/img/testdata/20130612_142406.jpg rename to src/backend/img/testdata/20130612_142406.jpg diff --git a/src/img/testdata/IMG_2578.JPG b/src/backend/img/testdata/IMG_2578.JPG similarity index 100% rename from src/img/testdata/IMG_2578.JPG rename to src/backend/img/testdata/IMG_2578.JPG diff --git a/src/img/testdata/gray-sample.jpg b/src/backend/img/testdata/gray-sample.jpg similarity index 100% rename from src/img/testdata/gray-sample.jpg rename to src/backend/img/testdata/gray-sample.jpg diff --git a/src/main.go b/src/backend/main.go similarity index 100% rename from src/main.go rename to src/backend/main.go diff --git a/src/rules/rules.go b/src/backend/rules/rules.go similarity index 100% rename from src/rules/rules.go rename to src/backend/rules/rules.go diff --git a/src/rules/rules_test.go b/src/backend/rules/rules_test.go similarity index 100% rename from src/rules/rules_test.go rename to src/backend/rules/rules_test.go diff --git a/src/runner/commands.go b/src/backend/runner/commands.go similarity index 100% rename from src/runner/commands.go rename to src/backend/runner/commands.go diff --git a/src/runner/commands_test.go b/src/backend/runner/commands_test.go similarity index 100% rename from src/runner/commands_test.go rename to src/backend/runner/commands_test.go diff --git a/src/runner/parser.go b/src/backend/runner/parser.go similarity index 100% rename from src/runner/parser.go rename to src/backend/runner/parser.go diff --git a/src/runner/runner.go b/src/backend/runner/runner.go similarity index 100% rename from src/runner/runner.go rename to src/backend/runner/runner.go diff --git a/src/scripts/bump_version.sh b/src/backend/scripts/bump_version.sh similarity index 100% rename from src/scripts/bump_version.sh rename to src/backend/scripts/bump_version.sh diff --git a/src/scripts/commitlint.sh b/src/backend/scripts/commitlint.sh similarity index 100% rename from src/scripts/commitlint.sh rename to src/backend/scripts/commitlint.sh diff --git a/src/search/conditions.go b/src/backend/search/conditions.go similarity index 100% rename from src/search/conditions.go rename to src/backend/search/conditions.go diff --git a/src/search/search.go b/src/backend/search/search.go similarity index 100% rename from src/search/search.go rename to src/backend/search/search.go diff --git a/src/settings/branding.go b/src/backend/settings/branding.go similarity index 100% rename from src/settings/branding.go rename to src/backend/settings/branding.go diff --git a/src/settings/defaults.go b/src/backend/settings/defaults.go similarity index 100% rename from src/settings/defaults.go rename to src/backend/settings/defaults.go diff --git a/src/settings/dir.go b/src/backend/settings/dir.go similarity index 100% rename from src/settings/dir.go rename to src/backend/settings/dir.go diff --git a/src/settings/settings.go b/src/backend/settings/settings.go similarity index 100% rename from src/settings/settings.go rename to src/backend/settings/settings.go diff --git a/src/settings/storage.go b/src/backend/settings/storage.go similarity index 100% rename from src/settings/storage.go rename to src/backend/settings/storage.go diff --git a/src/share/share.go b/src/backend/share/share.go similarity index 100% rename from src/share/share.go rename to src/backend/share/share.go diff --git a/src/share/storage.go b/src/backend/share/storage.go similarity index 100% rename from src/share/storage.go rename to src/backend/share/storage.go diff --git a/src/storage/bolt/auth.go b/src/backend/storage/bolt/auth.go similarity index 100% rename from src/storage/bolt/auth.go rename to src/backend/storage/bolt/auth.go diff --git a/src/storage/bolt/bolt.go b/src/backend/storage/bolt/bolt.go similarity index 100% rename from src/storage/bolt/bolt.go rename to src/backend/storage/bolt/bolt.go diff --git a/src/storage/bolt/config.go b/src/backend/storage/bolt/config.go similarity index 100% rename from src/storage/bolt/config.go rename to src/backend/storage/bolt/config.go diff --git a/src/storage/bolt/importer/conf.go b/src/backend/storage/bolt/importer/conf.go similarity index 100% rename from src/storage/bolt/importer/conf.go rename to src/backend/storage/bolt/importer/conf.go diff --git a/src/storage/bolt/importer/importer.go b/src/backend/storage/bolt/importer/importer.go similarity index 100% rename from src/storage/bolt/importer/importer.go rename to src/backend/storage/bolt/importer/importer.go diff --git a/src/storage/bolt/importer/users.go b/src/backend/storage/bolt/importer/users.go similarity index 100% rename from src/storage/bolt/importer/users.go rename to src/backend/storage/bolt/importer/users.go diff --git a/src/storage/bolt/share.go b/src/backend/storage/bolt/share.go similarity index 100% rename from src/storage/bolt/share.go rename to src/backend/storage/bolt/share.go diff --git a/src/storage/bolt/users.go b/src/backend/storage/bolt/users.go similarity index 100% rename from src/storage/bolt/users.go rename to src/backend/storage/bolt/users.go diff --git a/src/storage/bolt/utils.go b/src/backend/storage/bolt/utils.go similarity index 100% rename from src/storage/bolt/utils.go rename to src/backend/storage/bolt/utils.go diff --git a/src/storage/storage.go b/src/backend/storage/storage.go similarity index 100% rename from src/storage/storage.go rename to src/backend/storage/storage.go diff --git a/src/tools/go.mod b/src/backend/tools/go.mod similarity index 100% rename from src/tools/go.mod rename to src/backend/tools/go.mod diff --git a/src/tools/go.sum b/src/backend/tools/go.sum similarity index 100% rename from src/tools/go.sum rename to src/backend/tools/go.sum diff --git a/src/tools/package.json b/src/backend/tools/package.json similarity index 100% rename from src/tools/package.json rename to src/backend/tools/package.json diff --git a/src/tools/tools.go b/src/backend/tools/tools.go similarity index 100% rename from src/tools/tools.go rename to src/backend/tools/tools.go diff --git a/src/tools/yarn.lock b/src/backend/tools/yarn.lock similarity index 100% rename from src/tools/yarn.lock rename to src/backend/tools/yarn.lock diff --git a/src/users/password.go b/src/backend/users/password.go similarity index 100% rename from src/users/password.go rename to src/backend/users/password.go diff --git a/src/users/permissions.go b/src/backend/users/permissions.go similarity index 100% rename from src/users/permissions.go rename to src/backend/users/permissions.go diff --git a/src/users/storage.go b/src/backend/users/storage.go similarity index 100% rename from src/users/storage.go rename to src/backend/users/storage.go diff --git a/src/users/storage_test.go b/src/backend/users/storage_test.go similarity index 100% rename from src/users/storage_test.go rename to src/backend/users/storage_test.go diff --git a/src/users/users.go b/src/backend/users/users.go similarity index 100% rename from src/users/users.go rename to src/backend/users/users.go diff --git a/src/version/version.go b/src/backend/version/version.go similarity index 100% rename from src/version/version.go rename to src/backend/version/version.go diff --git a/src/frontend/src/api/search.js b/src/frontend/src/api/search.js index 5a2bf575..42846880 100644 --- a/src/frontend/src/api/search.js +++ b/src/frontend/src/api/search.js @@ -14,7 +14,7 @@ export default async function search(base, query) { let data = await res.json(); data = data.map((item) => { - item.url = `/${base}` + url.encodePath(item.path); + item.url = `/files${base}` + url.encodePath(item.path); if (item.dir) { item.url += "/";