diff --git a/.env.sample b/.env.sample index 6ca4cd9525c13cf1c7ade3487979340285a2702a..3525891e0291c4c6bc9d41942d20b3f4ea0452fe 100644 --- a/.env.sample +++ b/.env.sample @@ -3,9 +3,12 @@ COMPOSE_FILE=docker-compose.yml:dev.yml # For prod #COMPOSE_FILE=docker-compose.yml:traefik.yml NAME=filebrowser +VERSION=v2 # Hostname for prod `FQDN` ex HOSTS=`files.example.org` HOSTS= DEV_PORT=8080 DATA_PATH=./data/files UID=1000 GID=1000 +DEFAULT_PERMS_DIR=755 +DEFAULT_PERMS_FILE=644 diff --git a/docker-compose.yml b/docker-compose.yml index 090b97f442972b94b7fb626fc667341ee3d6a289..36361c6b859a4cc0273e446fa7906b19c48dc052 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,8 +2,14 @@ version: "3" services: filebrowser: - image: filebrowser/filebrowser:v2 + build: + context: docker/ + args: + VERSION: user: "${UID}:${GID}" volumes: - ./data/database.db:/database.db - ${DATA_PATH}:/srv + environment: + DEFAULT_PERMS_DIR: + DEFAULT_PERMS_FILE: diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2c384c442945949bab944f40a2590819f17aa555 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,6 @@ +ARG VERSION=v2 +FROM filebrowser/filebrowser:${VERSION} +COPY entrypoint.sh / +RUN apk add inotify-tools +ENTRYPOINT '/entrypoint.sh' + diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..38aabbfeadbe1e5f6daa226547a63786248824f1 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +set_perms() { + inotifywait --monitor --recursive --quiet --event create /srv --format "%w%f" | \ + while read f;do + if [ -d "$f" ]; then + chmod -R $DEFAULT_PERMS_DIR "$f" + else + chmod $DEFAULT_PERMS_FILE "$f" + fi + done +} +set_perms & +exec /filebrowser +