npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@amoshydra/davison

v0.1.0

Published

WebDAV music server + Sonos controller. npx @amoshydra/davison --path /music

Readme

davison

A standalone music server that streams your local music library to Sonos speakers and serves it via WebDAV for tools like Music Assistant.

Features

  • Sonos control — discover Sonos speakers on your LAN, stream music directly to them
  • Mobile-first web UI — browse your music library by folder, control playback, manage queues and playlists
  • WebDAV server — expose your music library over WebDAV for Music Assistant, file managers, or any WebDAV client
  • Direct streaming — HTTP range-request streaming with album art extraction
  • Zero configuration — point it at your music folders and go
  • No cloud dependency — everything runs on your local network

Quick Start

Prerequisites

  • Node.js 22+ (or Docker)
  • Music files on a local or mounted drive

Via npx

npx davison --path /path/to/music

Open http://localhost:4534 in your browser.

Via Docker

docker run -d \
  --name davison \
  --network host \
  -v /path/to/music:/music:ro \
  ghcr.io/your-username/davison \
  --path /music

--network host is required for Sonos UPnP discovery to work.

Via Docker Compose

version: "3.8"
services:
  davison:
    image: ghcr.io/your-username/davison
    network_mode: host
    volumes:
      - /path/to/music:/music:ro
    command: ["--path", "/music"]

Usage

Command-line options

| Option | Description | |--------|-------------| | -p, --path <paths...> | One or more music directories (required) | | --port <number> | Server port (default: 4534) | | --host <address> | LAN address (auto-detected if omitted) |

Web UI

| Tab | Description | |-----|-------------| | Library | Browse music by folder structure | | Queue | View and manage the current playback queue | | Now Playing | Full-screen player with album art, vinyl animation, swipe gestures | | Playlists | Create, edit, and load playlists | | Settings | Discover and select Sonos devices |

WebDAV

The WebDAV server is available at /webdav (e.g., http://<your-server-ip>:4534/webdav/). It mirrors your music folder structure.

Authentication

Disabled by default. To require Basic authentication, set the DAVISON_WEBDAV_USER and DAVISON_WEBDAV_PASS environment variables:

DAVISON_WEBDAV_USER=davison DAVISON_WEBDAV_PASS="your-password" npx davison --path /music

Environment variables are recommended over CLI flags because they do not appear in process listings (ps aux) or shell history. When authentication is enabled, the server logs WebDAV auth enabled for user "<username>" on startup.

To use with Music Assistant:

  1. Add a WebDAV provider
  2. URL: http://<your-server-ip>:4534/webdav/
  3. Username/Password: set them if you configured auth, leave blank otherwise

Sonos

davison discovers Sonos speakers on your LAN automatically via SSDP multicast. Select a speaker from the Settings tab and start playing.

Development

git clone https://github.com/your-username/davison.git
cd davison
pnpm install
pnpm run dev -- --path /path/to/music

The dev server hot-reloads on file changes.

Architecture

                   ┌──────────────────────┐
                   │    Web Browser       │
                   │  (React + Vite)      │
                   └──────────┬───────────┘
                              │ HTTP (port 4534)
                   ┌──────────▼───────────┐
                   │   Express Server     │
                   │  ┌─────────────────┐ │
                   │  │ REST API (/api) │ │
                   │  │ Queue Manager   │ │
                   │  │ Sonos Controller│ │
                   │  │ Playlist Store  │ │
                   │  ├─────────────────┤ │
                   │  │ WebDAV (/webdav)│ │
                   │  │ (Nephele VFS)   │ │
                   │  └─────────────────┘ │
                   └──────────┬───────────┘
                              │
          ┌───────────────────┼───────────────────┐
          │                   │                   │
   ┌──────▼──────┐     ┌──────▼──────┐    ┌───────▼──────┐
   │ Sonos       │     │ Music Files │    │ Music        │
   │ Speakers    │     │  (on disk)  │    │ Assistant    │
   │ (UPnP/HTTP) │     │             │    │ (via WebDAV) │
   └─────────────┘     └─────────────┘    └──────────────┘

License

MIT