Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ffb858e4ef | ||
|
|
0ca8059d8d | ||
|
|
8ca080422f | ||
|
|
cbb712484d | ||
|
|
8a14018861 | ||
|
|
a493ec90ff | ||
|
|
33113036cd | ||
|
|
a02b2972eb | ||
|
|
e9bb3dc243 | ||
|
|
2e26393a02 |
@@ -1,5 +1,3 @@
|
|||||||
*
|
*
|
||||||
!docker/*
|
!docker/*
|
||||||
!healthcheck.sh
|
!filebrowser
|
||||||
!docker_config.json
|
|
||||||
!filebrowser
|
|
||||||
|
|||||||
@@ -19,31 +19,30 @@ builds:
|
|||||||
- freebsd
|
- freebsd
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
- 386
|
- "386"
|
||||||
- arm
|
- arm
|
||||||
- arm64
|
- arm64
|
||||||
- riscv64
|
- riscv64
|
||||||
goarm:
|
goarm:
|
||||||
- 5
|
- "5"
|
||||||
- 6
|
- "6"
|
||||||
- 7
|
- "7"
|
||||||
ignore:
|
ignore:
|
||||||
- goos: darwin
|
- goos: darwin
|
||||||
goarch: 386
|
goarch: "386"
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: arm
|
goarch: arm
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
-
|
- name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}"
|
||||||
name_template: "{{.Os}}-{{.Arch}}{{if .Arm}}v{{.Arm}}{{end}}-{{ .ProjectName }}"
|
formats: ["tar.gz"]
|
||||||
formats: [ 'tar.gz' ]
|
|
||||||
format_overrides:
|
format_overrides:
|
||||||
- goos: windows
|
- goos: windows
|
||||||
formats: [ 'zip' ]
|
formats: ["zip"]
|
||||||
|
|
||||||
dockers:
|
dockers:
|
||||||
-
|
# Alpine docker images
|
||||||
dockerfile: Dockerfile
|
- dockerfile: Dockerfile
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@@ -59,10 +58,8 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
- "filebrowser/filebrowser:{{ .Tag }}-amd64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker_config.json
|
- docker
|
||||||
- healthcheck.sh
|
- dockerfile: Dockerfile
|
||||||
-
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@@ -78,10 +75,8 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
- "filebrowser/filebrowser:{{ .Tag }}-arm64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker_config.json
|
- docker
|
||||||
- healthcheck.sh
|
- dockerfile: Dockerfile
|
||||||
-
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@@ -93,15 +88,13 @@ dockers:
|
|||||||
- "--platform=linux/arm/v6"
|
- "--platform=linux/arm/v6"
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: '6'
|
goarm: "6"
|
||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
- "filebrowser/filebrowser:{{ .Tag }}-armv6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv6"
|
- "filebrowser/filebrowser:v{{ .Major }}-armv6"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker_config.json
|
- docker
|
||||||
- healthcheck.sh
|
- dockerfile: Dockerfile
|
||||||
-
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@@ -113,16 +106,15 @@ dockers:
|
|||||||
- "--platform=linux/arm/v7"
|
- "--platform=linux/arm/v7"
|
||||||
goos: linux
|
goos: linux
|
||||||
goarch: arm
|
goarch: arm
|
||||||
goarm: '7'
|
goarm: "7"
|
||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-armv7"
|
- "filebrowser/filebrowser:{{ .Tag }}-armv7"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker_config.json
|
- docker
|
||||||
- healthcheck.sh
|
|
||||||
## s6 based docker images
|
## s6-overlay docker images
|
||||||
-
|
- dockerfile: Dockerfile.s6
|
||||||
dockerfile: Dockerfile.s6
|
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@@ -138,10 +130,8 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64-s6"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker/root
|
- docker
|
||||||
- healthcheck.sh
|
- dockerfile: Dockerfile.s6.aarch64
|
||||||
-
|
|
||||||
dockerfile: Dockerfile.s6.aarch64
|
|
||||||
use: buildx
|
use: buildx
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--pull"
|
- "--pull"
|
||||||
@@ -157,8 +147,8 @@ dockers:
|
|||||||
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
- "filebrowser/filebrowser:{{ .Tag }}-arm64-s6"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64-s6"
|
||||||
extra_files:
|
extra_files:
|
||||||
- docker/root
|
- docker
|
||||||
- healthcheck.sh
|
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
- name_template: "filebrowser/filebrowser:latest"
|
- name_template: "filebrowser/filebrowser:latest"
|
||||||
image_templates:
|
image_templates:
|
||||||
@@ -175,7 +165,7 @@ docker_manifests:
|
|||||||
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
- "filebrowser/filebrowser:v{{ .Major }}-amd64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
- "filebrowser/filebrowser:v{{ .Major }}-arm64"
|
||||||
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
- "filebrowser/filebrowser:v{{ .Major }}-armv7"
|
||||||
## s6 image manifests
|
## s6 image manifests
|
||||||
- name_template: "filebrowser/filebrowser:s6"
|
- name_template: "filebrowser/filebrowser:s6"
|
||||||
image_templates:
|
image_templates:
|
||||||
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
- "filebrowser/filebrowser:{{ .Tag }}-amd64-s6"
|
||||||
@@ -199,11 +189,6 @@ homebrew_casks:
|
|||||||
email: robot@filebrowser.org
|
email: robot@filebrowser.org
|
||||||
homepage: https://github.com/filebrowser/filebrowser
|
homepage: https://github.com/filebrowser/filebrowser
|
||||||
description: File Browser is a create-your-own-cloud-kind of software where you can install it on a server, direct it to a path and then access your files through a nice web interface
|
description: File Browser is a create-your-own-cloud-kind of software where you can install it on a server, direct it to a path and then access your files through a nice web interface
|
||||||
license: "MIT"
|
|
||||||
# make the old formula conflict with the cask:
|
|
||||||
conflicts:
|
|
||||||
- formula: filebrowser
|
|
||||||
# if your app/binary isn't signed and notarized, you'll need this:
|
|
||||||
hooks:
|
hooks:
|
||||||
post:
|
post:
|
||||||
install: |
|
install: |
|
||||||
|
|||||||
23
CHANGELOG.md
23
CHANGELOG.md
@@ -2,6 +2,29 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
### [2.33.2](https://github.com/filebrowser/filebrowser/compare/v2.33.1...v2.33.2) (2025-06-21)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* create user dir on signup ([0ca8059](https://github.com/filebrowser/filebrowser/commit/0ca8059d8dea4fe079146471ce4f24acc96021f2))
|
||||||
|
|
||||||
|
### [2.33.1](https://github.com/filebrowser/filebrowser/compare/v2.33.0...v2.33.1) (2025-06-21)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* downloadUrl of file preview ([#3728](https://github.com/filebrowser/filebrowser/issues/3728)) ([8a14018](https://github.com/filebrowser/filebrowser/commit/8a14018861fe581672bbd27cdc3ae5691f70a108))
|
||||||
|
* remove auth query parameter from download and preview links ([cbb7124](https://github.com/filebrowser/filebrowser/commit/cbb712484d3bdabc033acaf3b696ef4f5865813d))
|
||||||
|
* search uses ctrl+shift+f instead of hijacking browser's ctrl+f ([#4638](https://github.com/filebrowser/filebrowser/issues/4638)) ([a02b297](https://github.com/filebrowser/filebrowser/commit/a02b2972ebde2a58806ad1377bad46e748b63166))
|
||||||
|
|
||||||
|
## [2.33.0](https://github.com/filebrowser/filebrowser/compare/v2.32.3...v2.33.0) (2025-06-18)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* improved docker image volumes and permissions ([#5160](https://github.com/filebrowser/filebrowser/issues/5160)) ([2e26393](https://github.com/filebrowser/filebrowser/commit/2e26393a022df0eaa9e08727407aba8b997aa728))
|
||||||
|
|
||||||
### [2.32.3](https://github.com/filebrowser/filebrowser/compare/v2.32.2...v2.32.3) (2025-06-17)
|
### [2.32.3](https://github.com/filebrowser/filebrowser/compare/v2.32.2...v2.32.3) (2025-06-17)
|
||||||
|
|
||||||
### [2.32.2](https://github.com/filebrowser/filebrowser/compare/v2.32.1...v2.32.2) (2025-06-17)
|
### [2.32.2](https://github.com/filebrowser/filebrowser/compare/v2.32.1...v2.32.2) (2025-06-17)
|
||||||
|
|||||||
42
Dockerfile
42
Dockerfile
@@ -1,19 +1,33 @@
|
|||||||
FROM alpine:latest
|
FROM alpine:3.22
|
||||||
RUN apk --update add ca-certificates \
|
|
||||||
mailcap \
|
|
||||||
curl \
|
|
||||||
jq
|
|
||||||
|
|
||||||
COPY healthcheck.sh /healthcheck.sh
|
RUN apk update && \
|
||||||
RUN chmod +x /healthcheck.sh # Make the script executable
|
apk --no-cache add ca-certificates mailcap curl jq tini
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
# Make user and create necessary directories
|
||||||
CMD /healthcheck.sh || exit 1
|
ENV UID=1000
|
||||||
|
ENV GID=1000
|
||||||
|
|
||||||
|
RUN addgroup -g $GID user && \
|
||||||
|
adduser -D -u $UID -G user user && \
|
||||||
|
mkdir -p /config /database /srv && \
|
||||||
|
chown -R user:user /config /database /srv
|
||||||
|
|
||||||
|
# Copy files and set permissions
|
||||||
|
COPY filebrowser /bin/filebrowser
|
||||||
|
COPY docker/common/ /
|
||||||
|
COPY docker/alpine/ /
|
||||||
|
|
||||||
|
RUN chown -R user:user /bin/filebrowser /defaults healthcheck.sh init.sh
|
||||||
|
|
||||||
|
# Define healthcheck script
|
||||||
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s CMD /healthcheck.sh
|
||||||
|
|
||||||
|
# Set the user, volumes and exposed ports
|
||||||
|
USER user
|
||||||
|
|
||||||
|
VOLUME /srv /config /database
|
||||||
|
|
||||||
VOLUME /srv
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
COPY docker_config.json /.filebrowser.json
|
ENTRYPOINT [ "tini", "--", "/init.sh" ]
|
||||||
COPY filebrowser /filebrowser
|
CMD [ "filebrowser", "--config", "/config/settings.json" ]
|
||||||
|
|
||||||
ENTRYPOINT [ "/filebrowser" ]
|
|
||||||
|
|||||||
@@ -1,21 +1,23 @@
|
|||||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.20
|
FROM ghcr.io/linuxserver/baseimage-alpine:3.22
|
||||||
|
|
||||||
RUN apk --update add ca-certificates \
|
RUN apk update && \
|
||||||
mailcap \
|
apk --no-cache add ca-certificates mailcap curl jq
|
||||||
curl \
|
|
||||||
jq
|
|
||||||
|
|
||||||
COPY healthcheck.sh /healthcheck.sh
|
# Make user and create necessary directories
|
||||||
RUN chmod +x /healthcheck.sh # Make the script executable
|
RUN mkdir -p /config /database /srv && \
|
||||||
|
chown -R abc:abc /config /database /srv
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
# Copy files and set permissions
|
||||||
CMD /healthcheck.sh || exit 1
|
COPY filebrowser /bin/filebrowser
|
||||||
|
COPY docker/common/ /
|
||||||
|
COPY docker/s6/ /
|
||||||
|
|
||||||
# copy local files
|
RUN chown -R abc:abc /bin/filebrowser /defaults healthcheck.sh
|
||||||
COPY docker/root/ /
|
|
||||||
RUN ln -s /config/settings.json /.filebrowser.json
|
|
||||||
COPY filebrowser /usr/bin/filebrowser
|
|
||||||
|
|
||||||
# ports and volumes
|
# Define healthcheck script
|
||||||
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s CMD /healthcheck.sh
|
||||||
|
|
||||||
|
# Set the volumes and exposed ports
|
||||||
VOLUME /srv /config /database
|
VOLUME /srv /config /database
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|||||||
@@ -1,21 +1,23 @@
|
|||||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20
|
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
|
||||||
|
|
||||||
RUN apk --update add ca-certificates \
|
RUN apk update && \
|
||||||
mailcap \
|
apk --no-cache add ca-certificates mailcap curl jq
|
||||||
curl \
|
|
||||||
jq
|
|
||||||
|
|
||||||
COPY healthcheck.sh /healthcheck.sh
|
# Make user and create necessary directories
|
||||||
RUN chmod +x /healthcheck.sh # Make the script executable
|
RUN mkdir -p /config /database /srv && \
|
||||||
|
chown -R abc:abc /config /database /srv
|
||||||
|
|
||||||
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s \
|
# Copy files and set permissions
|
||||||
CMD /healthcheck.sh || exit 1
|
COPY filebrowser /bin/filebrowser
|
||||||
|
COPY docker/common/ /
|
||||||
|
COPY docker/s6/ /
|
||||||
|
|
||||||
# copy local files
|
RUN chown -R abc:abc /bin/filebrowser /defaults healthcheck.sh
|
||||||
COPY docker/root/ /
|
|
||||||
RUN ln -s /config/settings.json /.filebrowser.json
|
|
||||||
COPY filebrowser /usr/bin/filebrowser
|
|
||||||
|
|
||||||
# ports and volumes
|
# Define healthcheck script
|
||||||
|
HEALTHCHECK --start-period=2s --interval=5s --timeout=3s CMD /healthcheck.sh
|
||||||
|
|
||||||
|
# Set the volumes and exposed ports
|
||||||
VOLUME /srv /config /database
|
VOLUME /srv /config /database
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|||||||
41
docker/alpine/init.sh
Executable file
41
docker/alpine/init.sh
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Backwards compatibility for old Docker image
|
||||||
|
if [ -f "/.filebrowser.json" ]; then
|
||||||
|
ln -s /.filebrowser.json /config/settings.json
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!! IMPORTANT INFORMATION !!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
echo "Symlinking /.filebrowser.json to /config/settings.json for backwards compatibility."
|
||||||
|
echo ""
|
||||||
|
echo "The volume mount configuration has changed in the latest release."
|
||||||
|
echo "Please rename .filebrowser.json to settings.json and mount the parent directory to /config".
|
||||||
|
echo "Read more on https://github.com/filebrowser/filebrowser/blob/master/docs/installation.md#docker"
|
||||||
|
echo ""
|
||||||
|
echo "This workaround will be removed in a future release."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backwards compatibility for old Docker image
|
||||||
|
if [ -f "/database.db" ]; then
|
||||||
|
ln -s /database.db /database/filebrowser.db
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!! IMPORTANT INFORMATION !!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
echo ""
|
||||||
|
echo "The volume mount configuration has changed in the latest release."
|
||||||
|
echo "Please rename database.db to filebrowser.db and mount the parent directory to /database".
|
||||||
|
echo "Read more on https://github.com/filebrowser/filebrowser/blob/master/docs/installation.md#docker"
|
||||||
|
echo ""
|
||||||
|
echo "This workaround will be removed in a future release."
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure configuration exists
|
||||||
|
if [ ! -f "/config/settings.json" ]; then
|
||||||
|
cp -a /defaults/settings.json /config/settings.json
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "$@"
|
||||||
9
docker/common/healthcheck.sh
Executable file
9
docker/common/healthcheck.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PORT=${FB_PORT:-$(jq -r .port /config/settings.json)}
|
||||||
|
ADDRESS=${FB_ADDRESS:-$(jq -r .address /config/settings.json)}
|
||||||
|
ADDRESS=${ADDRESS:-localhost}
|
||||||
|
|
||||||
|
curl -f http://$ADDRESS:$PORT/health || exit 1
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
|
||||||
|
|
||||||
exec s6-setuidgid abc filebrowser -c /config/settings.json -d /database/filebrowser.db;
|
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
#!/usr/bin/with-contenv bash
|
#!/usr/bin/with-contenv bash
|
||||||
|
|
||||||
# make folders
|
# Ensure configuration exists
|
||||||
mkdir -p /database
|
|
||||||
|
|
||||||
# copy config
|
|
||||||
if [ ! -f "/config/settings.json" ]; then
|
if [ ! -f "/config/settings.json" ]; then
|
||||||
cp -a /defaults/settings.json /config/settings.json
|
cp -a /defaults/settings.json /config/settings.json
|
||||||
fi
|
fi
|
||||||
3
docker/s6/etc/services.d/filebrowser/run
Executable file
3
docker/s6/etc/services.d/filebrowser/run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/with-contenv bash
|
||||||
|
|
||||||
|
exec s6-setuidgid abc filebrowser -c /config/settings.json;
|
||||||
@@ -46,22 +46,13 @@ File Browser is available as two different Docker images, which can be found on
|
|||||||
```sh
|
```sh
|
||||||
docker run \
|
docker run \
|
||||||
-v /path/to/srv:/srv \
|
-v /path/to/srv:/srv \
|
||||||
-v /path/to/filebrowser.db:/database.db \
|
-v /path/to/database:/database \
|
||||||
-v /path/to/.filebrowser.json:/.filebrowser.json \
|
-v /path/to/config:/config \
|
||||||
-u $(id -u):$(id -g) \
|
|
||||||
-p 8080:80 \
|
-p 8080:80 \
|
||||||
filebrowser/filebrowser
|
filebrowser/filebrowser
|
||||||
```
|
```
|
||||||
|
|
||||||
Where:
|
The default user has PID 1000 and GID 1000. Please make sure that this user has access to the different mounted volumes. To change the user running inside the Docker image, you need to use the [`--user` flag](https://docs.docker.com/engine/containers/run/#user).
|
||||||
|
|
||||||
- `/path/to/srv` contains the files root directory for File Browser
|
|
||||||
- `/path/to/filebrowser.db` is the `database.db`
|
|
||||||
- `/path/to/database` is the `.filebrowser.json`
|
|
||||||
|
|
||||||
> [!Warning]
|
|
||||||
>
|
|
||||||
> To use this image correctly, you need to first initialize a File Browser database outside of the Docker image and then start the Docker image with the database mounted. Otherwise, Docker will create an empty directory at the mounting point and fail to start.
|
|
||||||
|
|
||||||
### s6 overlay
|
### s6 overlay
|
||||||
|
|
||||||
@@ -78,8 +69,12 @@ docker run \
|
|||||||
filebrowser/filebrowser:s6
|
filebrowser/filebrowser:s6
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
Where:
|
Where:
|
||||||
|
|
||||||
- `/path/to/srv` contains the files root directory for File Browser
|
- `/path/to/srv` contains the files root directory for File Browser
|
||||||
- `/path/to/config` contains a `settings.json` file
|
- `/path/to/config` contains a `settings.json` file
|
||||||
- `/path/to/database` contains a `filebrowser.db` file
|
- `/path/to/database` contains a `filebrowser.db` file
|
||||||
|
|
||||||
|
Both `settings.json` and `filebrowser.db` will automatically be initialized if they don't exist.
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ currently being supported with security updates.
|
|||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
Vulnerabilities should be reported to filebrowser@googlegroups.com - which is a private, maintainer-only group. Maintainers will attempt to respond to/confirm reports within 2-3 days, but if you believe your report to be "critical" to user safety and security, please note as such in the subject. We have tens of thousands of users using our software, and take security vulnerabilities seriously.
|
Vulnerabilities with critical impact should be reported on the [Security](https://github.com/filebrowser/filebrowser/security) page of this repository, which is a private way of communicating vulnerabilities to maintainers. This project is in maintenance-only mode and it can take a while until someone gets back to you.
|
||||||
|
|
||||||
|
If it is not a critical vulnerability, please open an issue and we will categorize it as a security issue. By giving visibility, we can get more help from the community at fixing such issues.
|
||||||
|
|
||||||
When reporting an issue, where possible, please provide at least:
|
When reporting an issue, where possible, please provide at least:
|
||||||
|
|
||||||
@@ -21,6 +23,4 @@ When reporting an issue, where possible, please provide at least:
|
|||||||
* Steps to reproduce
|
* Steps to reproduce
|
||||||
* Your recommended remediation(s), if any.
|
* Your recommended remediation(s), if any.
|
||||||
|
|
||||||
The FileBrowser team is a volunteer-only effort, and may reach back out for clarification.
|
The File Browser team is a volunteer-only effort, and may reach back out for clarification.
|
||||||
|
|
||||||
> Note: Please do not open public issues for security issues, as GitHub does not provide facility for private issues, and deleting the issue makes it hard to triage/respond back to the reporter.
|
|
||||||
|
|||||||
@@ -75,11 +75,6 @@ export function download(format: any, ...files: string[]) {
|
|||||||
url += `algo=${format}&`;
|
url += `algo=${format}&`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const authStore = useAuthStore();
|
|
||||||
if (authStore.jwt) {
|
|
||||||
url += `auth=${authStore.jwt}&`;
|
|
||||||
}
|
|
||||||
|
|
||||||
window.open(url);
|
window.open(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,5 +71,5 @@ export function getDownloadURL(res: Resource, inline = false) {
|
|||||||
...(res.token && { token: res.token }),
|
...(res.token && { token: res.token }),
|
||||||
};
|
};
|
||||||
|
|
||||||
return createURL("api/public/dl/" + res.hash + res.path, params, false);
|
return createURL("api/public/dl/" + res.hash + res.path, params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,5 +41,5 @@ export async function create(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getShareURL(share: Share) {
|
export function getShareURL(share: Share) {
|
||||||
return createURL("share/" + share.hash, {}, false);
|
return createURL("share/" + share.hash, {});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,23 +76,13 @@ export function removePrefix(url: string): string {
|
|||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createURL(endpoint: string, params = {}, auth = true): string {
|
export function createURL(endpoint: string, searchParams = {}): string {
|
||||||
const authStore = useAuthStore();
|
|
||||||
|
|
||||||
let prefix = baseURL;
|
let prefix = baseURL;
|
||||||
if (!prefix.endsWith("/")) {
|
if (!prefix.endsWith("/")) {
|
||||||
prefix = prefix + "/";
|
prefix = prefix + "/";
|
||||||
}
|
}
|
||||||
const url = new URL(prefix + encodePath(endpoint), origin);
|
const url = new URL(prefix + encodePath(endpoint), origin);
|
||||||
|
url.search = new URLSearchParams(searchParams).toString();
|
||||||
const searchParams: SearchParams = {
|
|
||||||
...(auth && { auth: authStore.jwt }),
|
|
||||||
...params,
|
|
||||||
};
|
|
||||||
|
|
||||||
for (const key in searchParams) {
|
|
||||||
url.searchParams.set(key, searchParams[key]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -511,8 +511,11 @@ const keyEvent = (event: KeyboardEvent) => {
|
|||||||
|
|
||||||
switch (event.key) {
|
switch (event.key) {
|
||||||
case "f":
|
case "f":
|
||||||
event.preventDefault();
|
case "F":
|
||||||
layoutStore.showHover("search");
|
if (event.shiftKey) {
|
||||||
|
event.preventDefault();
|
||||||
|
layoutStore.showHover("search");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "c":
|
case "c":
|
||||||
case "x":
|
case "x":
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ const hasPrevious = computed(() => previousLink.value !== "");
|
|||||||
const hasNext = computed(() => nextLink.value !== "");
|
const hasNext = computed(() => nextLink.value !== "");
|
||||||
|
|
||||||
const downloadUrl = computed(() =>
|
const downloadUrl = computed(() =>
|
||||||
fileStore.req ? api.getDownloadURL(fileStore.req, true) : ""
|
fileStore.req ? api.getDownloadURL(fileStore.req, false) : ""
|
||||||
);
|
);
|
||||||
|
|
||||||
const raw = computed(() => {
|
const raw = computed(() => {
|
||||||
@@ -262,7 +262,7 @@ const raw = computed(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isEpub.value) {
|
if (isEpub.value) {
|
||||||
return createURL("api/raw" + fileStore.req?.path, {}, false);
|
return createURL("api/raw" + fileStore.req?.path, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
return downloadUrl.value;
|
return downloadUrl.value;
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
PORT=${FB_PORT:-$(jq -r .port /.filebrowser.json)}
|
|
||||||
ADDRESS=${FB_ADDRESS:-$(jq -r .address /.filebrowser.json)}
|
|
||||||
ADDRESS=${ADDRESS:-localhost}
|
|
||||||
curl -f http://$ADDRESS:$PORT/health || exit 1
|
|
||||||
@@ -157,6 +157,9 @@ var signupHandler = func(_ http.ResponseWriter, r *http.Request, d *data) (int,
|
|||||||
}
|
}
|
||||||
|
|
||||||
user.Password = pwd
|
user.Password = pwd
|
||||||
|
if d.settings.CreateUserDir {
|
||||||
|
user.Scope = ""
|
||||||
|
}
|
||||||
|
|
||||||
userHome, err := d.settings.MakeUserDir(user.Username, user.Scope, d.server.Root)
|
userHome, err := d.settings.MakeUserDir(user.Username, user.Scope, d.server.Root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -3,6 +3,6 @@
|
|||||||
"baseURL": "",
|
"baseURL": "",
|
||||||
"address": "",
|
"address": "",
|
||||||
"log": "stdout",
|
"log": "stdout",
|
||||||
"database": "/database.db",
|
"database": "/database/filebrowser.db",
|
||||||
"root": "/srv"
|
"root": "/srv"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user