diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md old mode 100755 new mode 100644 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml old mode 100755 new mode 100644 diff --git a/.github/ISSUE_TEMPLATE/issue.feature.yml b/.github/ISSUE_TEMPLATE/issue.feature.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml old mode 100755 new mode 100644 diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml old mode 100755 new mode 100644 diff --git a/Dockerfile b/Dockerfile index 30321d5..8d9b36d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:3.20 +FROM ghcr.io/linuxserver/baseimage-alpine:3.21 # set version label ARG BUILD_DATE @@ -87,12 +87,12 @@ RUN \ wheel && \ echo "**** install beets ****" && \ cd /tmp/beets && \ - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ . && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.21/ . && \ echo "**** install pip packages ****" && \ - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.21/ \ beautifulsoup4 \ beets-extrafiles \ - beetcamp==0.19.2 \ + beetcamp \ python3-discogs-client \ flask \ PyGObject \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 2f1dd95..78ab39b 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.20 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.21 # set version label ARG BUILD_DATE @@ -87,12 +87,12 @@ RUN \ wheel && \ echo "**** install beets ****" && \ cd /tmp/beets && \ - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ . && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.21/ . && \ echo "**** install pip packages ****" && \ - pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.20/ \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/alpine-3.21/ \ beautifulsoup4 \ beets-extrafiles \ - beetcamp==0.19.2 \ + beetcamp \ python3-discogs-client \ flask \ PyGObject \ diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/README.md b/README.md index 0e377f9..cacf618 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,26 @@ The architectures supported by this image are: | arm64 | ✅ | arm64v8-\ | | armhf | ❌ | | +## Application Setup + +Edit the config file in /config + +To edit the config from within the container use `beet config -e` + +For a command prompt as user abc `docker exec -it -u abc beets bash` + +See [Beets](http://beets.io/) for more info. + +Contains [beets-extrafiles](https://github.com/Holzhaus/beets-extrafiles) plugin, [configuration details](https://github.com/Holzhaus/beets-extrafiles#usage) + +## Read-Only Operation + +This image can be run with a read-only container filesystem. For details please [read the docs](https://docs.linuxserver.io/misc/read-only/). + +## Non-Root Operation + +This image can be run with a non-root user. For details please [read the docs](https://docs.linuxserver.io/misc/non-root/). + ## Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. @@ -114,6 +134,8 @@ Containers are configured using parameters passed at runtime (such as those abov | `-v /config` | Persistent config files | | `-v /music` | Music library | | `-v /downloads` | Non processed music | +| `--read-only=true` | Run container with a read-only filesystem. Please [read the docs](https://docs.linuxserver.io/misc/read-only/). | +| `--user=1000:1000` | Run container with a non-root user. Please [read the docs](https://docs.linuxserver.io/misc/non-root/). | ## Environment variables from files (Docker secrets) @@ -277,6 +299,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **27.01.25:** - Rebase to Alpine 3.21, unpin beetcamp. * **22.10.24:** - Pin beetcamp to 0.19.2 until upstream requirements fixed. * **01.10.24:** - Add packages required for Discogs plugin. * **28.08.24:** - Rebase to Alpine 3.20. diff --git a/readme-vars.yml b/readme-vars.yml index 7d0f7af..657bbd3 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -21,6 +21,20 @@ param_volumes: param_usage_include_ports: true param_ports: - {external_port: "8337", internal_port: "8337", port_desc: "Application WebUI"} +readonly_supported: true +nonroot_supported: true +# application setup block +app_setup_block_enabled: true +app_setup_block: | + Edit the config file in /config + + To edit the config from within the container use `beet config -e` + + For a command prompt as user abc `docker exec -it -u abc beets bash` + + See [Beets](http://beets.io/) for more info. + + Contains [beets-extrafiles](https://github.com/Holzhaus/beets-extrafiles) plugin, [configuration details](https://github.com/Holzhaus/beets-extrafiles#usage) # init diagram init_diagram: | "beets:nightly": { @@ -65,6 +79,7 @@ init_diagram: | "beets:nightly" <- Base Images # changelog changelogs: + - {date: "27.01.25:", desc: "Rebase to Alpine 3.21, unpin beetcamp."} - {date: "22.10.24:", desc: "Pin beetcamp to 0.19.2 until upstream requirements fixed."} - {date: "01.10.24:", desc: "Add packages required for Discogs plugin."} - {date: "28.08.24:", desc: "Rebase to Alpine 3.20."} diff --git a/root/etc/s6-overlay/s6-rc.d/init-beets-config/run b/root/etc/s6-overlay/s6-rc.d/init-beets-config/run index 3ae5607..61a2b3a 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-beets-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-beets-config/run @@ -7,6 +7,8 @@ cp -n /defaults/config.yaml /config/config.yaml chmod +x /config/beets.sh -# permissions -lsiown -R abc:abc \ - /config +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + # permissions + lsiown -R abc:abc \ + /config +fi diff --git a/root/etc/s6-overlay/s6-rc.d/svc-beets/run b/root/etc/s6-overlay/s6-rc.d/svc-beets/run index 4c74a20..13c6cb3 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-beets/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-beets/run @@ -1,6 +1,12 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -exec \ - s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ - s6-setuidgid abc beet web +if [[ -z ${LSIO_NON_ROOT_USER} ]]; then + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ + s6-setuidgid abc beet web +else + exec \ + s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z localhost 8337" \ + beet web +fi