Skip to content

A Beets plugin to serve multiple web apps using a single process on the same port, each under a different path

License

Notifications You must be signed in to change notification settings

mgoltzsche/beets-webrouter

Repository files navigation

beets-webrouter

A beets plugin to serve multiple Flask or FastAPI based beets web apps on the same server/host/port using a single command.

By running beet webrouter you can serve e.g. the beets web UI, a Subsonic API as well as the generated M3U playlists on the same host/port, each under a different path.

Installation

python3 -m pip install beets-webrouter fastapi flask uvicorn

To install the plugins that are used by the example configuration below, run:

python3 -m pip install beetstream beets-webm3u

Configuration

Enable the plugin and add a webrouter section to your beets config.yaml as follows:

plugins:
  - webrouter
  - web
  - webm3u
  - beetstream
  - aura
  - smartplaylist

webrouter:
  host: 0.0.0.0
  port: 8337
  routes:
    /:
      plugin: web
    /favicon.ico:
      plugin: webrouter.favicon
    /subsonic:
      plugin: beetstream
      config:
        never_transcode: true
    /aura:
      plugin: aura
      blueprint: aura_bp
    /m3u:
      plugin: webm3u

aura:
  page_limit: 100

webm3u:
  host: 0.0.0.0
  port: 8339
  playlist_dir: /data/playlists

Usage

Once the webrouter plugin is enabled within your beets configuration, you can run it as follows:

beet webrouter

You browse the server at http://localhost:8337.

CLI

Usage: beet webrouter [options]

Development

Run the unit tests (containerized):

make test

Run the e2e tests (containerized):

make test-e2e

To test your plugin changes manually, you can run a shell within a beets docker container as follows:

make beets-sh

A temporary beets library is written to ./data. It can be removed by calling make clean-data.

To just start the server, run:

make beets-webrouter

About

A Beets plugin to serve multiple web apps using a single process on the same port, each under a different path

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published