MCPcopy
hub / github.com/any-listen/any-listen

github.com/any-listen/any-listen @webserver-v0.9.1 sqlite

repository ↗ · DeepWiki ↗ · release webserver-v0.9.1 ↗
4,633 symbols 11,070 edges 875 files 51 documented · 1%
README

any-listen logo       any-listen name

A cross-platform private music playback service

English | 简体中文 | 繁體中文

This project is under active development and currently provides both a Desktop version and a Web service version.

Features

  • Add and play local songs (standard playlists and local lists)
  • Add and play songs stored on WebDAV (remote lists)
  • Online song metadata matching (cover, lyrics; install the relevant extension via Extension Manager)
  • Add and play online resources (playlists, charts; install the relevant extension via Extension Manager)
  • Experimental audio effects
  • Karaoke lyrics and title bar lyrics

Desktop Version

Grab the latest release and install it from: https://github.com/any-listen/any-listen-desktop/releases

Web Version

You can deploy it directly to your server, or use Docker for deployment.

Docker Deployment

Image release: https://hub.docker.com/r/lyswhut/any-listen-web-server

Direct Deployment

Requirement: Node.js 20+

Download the latest version and extract it to your target directory: https://github.com/any-listen/any-listen-web-server/releases

Refer to https://github.com/lyswhut/lx-music-sync-server for deployment methods. See below for configuration file instructions.

Upgrade steps:

  1. Delete the public and server folders in the old project directory
  2. Upload the new version's public and server folders to the project directory
  3. Restart the service

Usage Example:

  1. Create the configuration file data/config.cjs

    ``js const config = { // port: '9500', // Bind port // bindIp: '127.0.0.1', // Bind IP // httpLog: true, // Enable HTTP request logging // 'cors.enabled': false, // Enable CORS // 'cors.whitelist': [ // Allowed CORS domains, empty array allows all // // 'www.xxx.com', // ], // 'upstreamProxy.enabled': false, // Use proxy for requests // 'upstreamProxy.header': '', // Proxy request header (e.g.x-real-ip) // 'extension.ghMirrorHosts': [], // Extension store Github mirror addresses // httpProxy: '', // Proxy server address, e.g.127.0.0.1:2080`

    // Allowed local directories // allowPublicDir: ['G:', 'E:\music'], // Windows example // allowPublicDir: ['/music'], // Linux example password: '123456a', // Login password }

    module.exports = config ```

  2. Run the Docker container

    Note: The following command is for example only and cannot be used directly!

    bash docker run --volume=/home/music:/music --volume=/data:/server/data -p 8080:9500 -d test:latest

Environment Variables

Variable Name Description
PORT Bind port, default 9500
BIND_IP Bind IP, default 127.0.0.1, set to 0.0.0.0 to accept all IPv4 requests, :: for all IPs
UPSTREAM_PROXY_HEADER Proxy request header (e.g. x-real-ip), enables proxy when set
ALLOW_PUBLIC_DIR Allowed local directories, separate multiple with commas
DATA_PATH Data storage path, default ./data
LOGIN_PWD Login password
CONFIG_PATH Config file path, default ./data/config.js
LOG_PATH Log storage path, default ./data/logs
EXTENSION_GH_MIRROR_HOSTS Extension store Github mirror addresses, separate multiple with commas
HTTP_PROXY Proxy server, e.g. 127.0.0.1:2080

Build from Source

pnpm install
pnpm run build:web
cd build
mkdir data
# Create config file config.cjs
node index.cjs

Contributing

PRs are welcome! To ensure your PR can be merged smoothly, please note the following:

  • For PRs adding new features, it is recommended to create an Issue first to confirm the necessity of the feature.
  • For PRs fixing bugs, please provide explanations and reproduction steps before and after the fix.
  • For other types of PRs, please include appropriate explanations.

Steps to contribute:

  1. Clone the repository and switch to the dev branch for development;
  2. Submit your PR to the dev branch.

License

This project is licensed under the Affero General Public License (AGPL) v3.0 with the following additional terms:

  • Commercial use is strictly prohibited unless written permission is obtained from the original author.
  • For full details, please refer to the LICENSE file.

Extension points exported contracts — how you extend this code

LinkActionOpts (Interface)
* Dictionary with options for the link action.
packages/view-main/src/plugins/svelte-spa-router/navigator.ts
Env (Interface)
环境相关
packages/shared/extension-preload/src/types/api.d.ts
CmdParams (Interface)
(no doc)
packages/desktop/src/types/global.d.ts
Window (Interface)
(no doc)
packages/view-lyric/src/types/app.d.ts
Anylisten (Interface)
(no doc)
packages/web-server/src/types/app.d.ts
Window (Interface)
(no doc)
packages/view-main/src/types/app.d.ts
App (Interface)
应用相关
packages/shared/extension-preload/src/types/api.d.ts
EnvParams (Interface)
(no doc)
packages/desktop/src/types/global.d.ts

Core symbols most depended-on inside this repo

on
called by 270
packages/view-main/src/modules/hotkey/store/event.ts
get
called by 256
packages/shared/nodejs/Store.ts
set
called by 189
packages/shared/nodejs/Store.ts
on
called by 123
packages/desktop/src/shared/update.ts
run
called by 88
packages/shared/web/lyric-font-player/utils.js
has
called by 84
packages/shared/nodejs/Store.ts
delete
called by 77
packages/shared/nodejs/Store.ts
dbPrepare
called by 75
packages/shared/app/modules/worker/dbService/db.ts

Shape

Function 3,551
Method 490
Interface 464
Class 126
Enum 2

Languages

TypeScript100%

Modules by API surface

packages/shared/extension-preload/src/types/api.d.ts109 symbols
packages/shared/extension-preload/src/apis/resource.ts60 symbols
packages/view-main/src/plugins/player/index.ts58 symbols
packages/view-main/src/modules/player/store/event.ts52 symbols
packages/view-main/src/modules/player/store/playerActions.ts41 symbols
packages/shared/nodejs/index.ts41 symbols
packages/shared/types/types/extension_ipc.d.ts39 symbols
packages/shared/app/modules/worker/dbService/modules/music_library/index.ts35 symbols
packages/view-lyric/src/modules/player/store/event.ts34 symbols
packages/desktop/src/renderer/winMain/preload/app.ts33 symbols
packages/view-main/src/modules/player/store/commit.ts32 symbols
packages/view-main/src/modules/musicLibrary/store/commit.ts31 symbols

Dependencies from manifests, versioned

@any-listen/common
@any-listen/desktop
@any-listen/extension-preload
@any-listen/i18n
@any-listen/nodejs
@any-listen/theme
@any-listen/types
@any-listen/view-lyric
@any-listen/view-main
@any-listen/web

For agents

$ claude mcp add any-listen \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact