Skip to content

beets: add simple http server to execute beets commands remotelly#1134

Merged
aptalca merged 2 commits intolinuxserver:beets-httpshellfrom
dyptan-io:beets-httpshell
Mar 10, 2026
Merged

beets: add simple http server to execute beets commands remotelly#1134
aptalca merged 2 commits intolinuxserver:beets-httpshellfrom
dyptan-io:beets-httpshell

Conversation

@dyptan-io
Copy link

linuxserver.io


  • I have read the contributing guideline and understand that I have made the correct modifications

Description:

Adds a new Docker Mod beets-httpshell that runs a lightweight Python 3 HTTP server (stdlib only, no pip dependencies) inside the beets container. It proxies HTTP POST requests to beet CLI commands — the URL path maps to the subcommand, and the JSON body provides arguments. For example, POST /import with body ["/downloads/album"] runs beet import /downloads/album.

Execution mode is controlled per-request via ?mode= query parameter (block, parallel, or queue).

Benefits of this PR and context:

The beets container lacks a built-in way to invoke commands remotely. This mod enables HTTP-based automation without SSH or docker exec, making it straightforward to integrate with tools like Lidarr, scripts, or other services in a Docker Compose stack.

  • No extra dependencies — uses Python 3 already present in the image
  • Dynamic command routing — any beet subcommand works, no hardcoded list
  • Per-request execution modes for flexible concurrency control
  • Simple JSON array format for arguments

How Has This Been Tested?

  • Docker image builds successfully (docker build .)
  • Single-layer image verified
  • Python script syntax validated
  • s6-overlay file structure and permissions verified against the mod template spec

Source / References:

@LinuxServer-CI
Copy link

PR build pushed to ghcr.io/linuxserver/mods:pull_request_1134

@LinuxServer-CI
Copy link

PR build pushed to ghcr.io/linuxserver/mods:pull_request_1134

1 similar comment
@LinuxServer-CI
Copy link

PR build pushed to ghcr.io/linuxserver/mods:pull_request_1134

Copy link
Member

@aptalca aptalca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, but please also remove Dockerfile.complex as it's not needed.

And please test the pushed mod ghcr.io/linuxserver/mods:pull_request_1134 and confirm it works as intended. Then we'll merge.

Thanks

@LinuxServer-CI
Copy link

PR build pushed to ghcr.io/linuxserver/mods:pull_request_1134

@dyptan-io
Copy link
Author

Thank you for the review, @aptalca!
I removed the Dockerfile.complex and tested the mod installation from the PR build. All works as intended.

@github-project-automation github-project-automation bot moved this from PRs to PRs Approved in Issue & PR Tracker Mar 10, 2026
@aptalca aptalca merged commit e0aa7d4 into linuxserver:beets-httpshell Mar 10, 2026
2 checks passed
@LinuxServer-CI LinuxServer-CI moved this from PRs Approved to Done in Issue & PR Tracker Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

3 participants