diff --git a/daemon/Dockerfile b/daemon/Dockerfile
index f862956f60cf6f52e66580c02847e96d1314e054..3cca629db9703b28dfff7c773a380b16f5069aa6 100644
--- a/daemon/Dockerfile
+++ b/daemon/Dockerfile
@@ -6,15 +6,14 @@ RUN apk add --update --no-cache --repository http://dl-cdn.alpinelinux.org/alpin
     apk add --update --no-cache \
         transmission-daemon \
     && \
-    install -d -m 555 /var/lib/transmission && \
-    mkdir -m 777 /run/transmission && \
-    mkdir /etc/transmission
-COPY --chown=root:root entrypoint /
-COPY settings.json /etc/transmission/
+    mkdir -m 777 /run/transmission
+COPY --chown=root:root entrypoint /usr/local/sbin/docker-entrypoint
+COPY --chown=root:root settings.json /etc/transmission/
 VOLUME /var/lib/transmission
 WORKDIR /var/lib/transmission
 ENV HOME /var/lib/transmission
+ENV TRANSMISSION_HOME /var/lib/transmission
 EXPOSE 9091 51413/tcp 51413/udp
-ENTRYPOINT [ "/entrypoint" ]
+ENTRYPOINT [ "docker-entrypoint" ]
 CMD [ "transmission-daemon", "--foreground" ]
 HEALTHCHECK CMD wget --spider http://localhost:9091/transmission || exit 1
diff --git a/daemon/entrypoint b/daemon/entrypoint
index b0cc9c1d08d6c81ea4606c126e55daf0be678239..de78f347b81b61c78a029784d38728e9f0780333 100755
--- a/daemon/entrypoint
+++ b/daemon/entrypoint
@@ -1,8 +1,17 @@
 #!/bin/sh
 set -eux
 
-mkdir -p /var/lib/transmission/downloads
-install -d -o transmission -g transmission -m 750 /var/lib/transmission/.config/transmission-daemon/
-install -o transmission -g transmission -m 640 /etc/transmission/settings.json /var/lib/transmission/.config/transmission-daemon/settings.json
+command -v stat > /dev/null || { echo "Can't find stat, exiting."; exit 1; }
+command -v gosu > /dev/null || { echo "Can't find gosu, exiting."; exit 1; }
 
-eval exec gosu "transmission:transmission" "$@"
+ln -sf /etc/transmission/settings.json ./settings.json
+
+if [ -d ./Downloads ] && [ "$(id -u)" -eq '0' ]
+then
+    uid="$(stat ./Downloads -c '%u')"
+    gid="$(stat ./Downloads -c '%g')"
+    chown "$uid:$gid" ./
+    eval exec gosu "$uid:$gid" "$@"
+else
+    eval exec "$@"
+fi
diff --git a/docker-compose.yml b/docker-compose.yml
index 19e44c0d1e246f1ddc793c1227e9256265880acd..e5bf334937e3d2452bc0a270e5d31e9578d827bb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -9,8 +9,6 @@ services:
       - 51413:51413/tcp
       - 51413:51413/udp
     volumes:
-      - /etc/group:/etc/group:ro
-      - /etc/passwd:/etc/passwd:ro
       - daemon:/var/lib/transmission
       - /srv/library:/var/lib/transmission/downloads
     restart: always