HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
epoupon
lms
C++2015–2026
epoupon / lms

lms

Lightweight Music Server. Access your self-hosted music using a web interface.

5Distinct people
14Mentions
0Explicit recommenders
1.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Lightweight Music Server. Access your self-hosted music using a web interface.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year14 dated mentions

Observed mentions: 2015-12-20 09:16:38 UTC to 2026-07-16 06:16:29 UTC.

0123452015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC000
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC514
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

14 sources
Edited to add first: nice article covering an important couple of critical pieces of the Internet's history. Concerning the "Joy" element: Someone at my workplace started a Music League, with a select few music aficionados and hangers on joining, and it has been _the best_ team bonding exercise I've ever been involved with. We have covered a broad spectrum of topics that have challenged pretty much everyone at some point. Music League has a bunch of default Themes that range from boring to OK, so we've been coming up with our own suggestions, and over the course of about 12 months we've had some great ones - but it relies on the participants allowing themselves to be vulnerable when the occasion suits. This has provided joy amongst all participants in, I think, a similar way to the sharing / discovery of the golden age of music piracy. We
Read the rest
even setup our own Slack channel un-affiliated with our workplace because a couple of people have left the company, but wanted to stay in the League. If I have time tonight, I'll list the Themes we've covered as a reply or edit of this comment. Concerning the "Music Piracy" element: I don't really pirate, unless it's some incredibly obscure thing that can only be found on slsk (are we allowed to even mention it's name?). I use a streaming service, but I also buy the really good shit from Bandcamp, since most streaming services are pretty scummy with their royalties back to artists, and I want them to keep doing what they're doing cough AdP cough. I also run my own instance of LMS[0] so my FLAC collection is always available to me wherever I am (which kinda feels like piracy, but the collection is almost all legit). MusicBrainz[1] is also doing god's work. King Gizzard and the Lizard Wizard took their discography off Spotify for ideological reasons, and I support their decision to follow their morality in doing so, but it does put me in a conundrum due to the phenomenal size of their catalogue. I've bought some, but definitely not all. Just gonna have to grind through it, although they seem to put new music out faster than my monthly purchase quota. [0]: https://github.com/epoupon/lms (cheers @epoupon, I'm pretty sure you're on HN) [1]: https://musicbrainz.org/
In The lost joy of music piracy
Recently I gave up on Apple Music. The clients had gotten so bad from a UX perspective that I found it frustrating to use. Especially on desktop. There is also no easy way to cache your _entire_ library to disk. Other services+clients are heaps of Electron that I'd rather avoid. It took some effort and pain but I have a pretty solid self-hosted system now that requires no futzing around: 0. epoupon's Lightweight Music Server (LMS) [0] is an awesome, barebones Subsonic client written in C. It's really good and deserves to be more well-known. 1. wrtag [1] is a less-fully-featured beets written in Go that handles tagging. 2. amperfy [2] is an excellent Subsonic client that runs on iOS. It's configured to automatically cache anything and everything on LMS. 3. Syncthing [3] syncs music files. Needs no introduction. Rock solid. 4. Swinsian [4]
Read the rest
a macOS music player that is very reminiscent of old iTunes, but much better. The information density is so incredibly refreshing after using Apple Music. 5. Everything talks to each other seamlessly over Tailscale [5]. All together, an entire open-source stack maintained by volunteers that easily outdoes Apple's own UX in the music department. [0] https://github.com/epoupon/lms [1] https://github.com/sentriz/wrtag [2] https://github.com/BLeeEZ/amperfy [3] https://syncthing.net [4] https://swinsian.com [5] https://tailscale.com
In I ditched Spotify and set up my own music stack
I'm just going to repeat a bunch of what hughesjj has already said, but anyway: OPNSense (as my household's internet interface), Unifi Controller (as my household's primary wifi), Jellyfin, Wireguard, Pi-hole, LMS[0], Frigate NVR (migrating off ZoneMinder, awaiting delivery of a Coral TPU to finalise this), couchdb (as Noteself[1] back-end), nginx (serving a handful of sites for my own entertainment), Mailu[2], Calibre[3], various other in-flight experiments (which Home Assistant will soon become, Bitmagnet DHT scraper). Most of the above are docker instances hosted on a small number of VMs hosted on two (or sometimes three) physical machines running proxmox. [0]: https://github.com/epoupon/lms (HN lurker) [1]: https://noteself.org/ [2]: https://mailu.io [3]: https://fleet.linuxserver.io/image?name=linuxserver/calibre or https://fleet.lin
Read the rest
In Show HN: Proxmox VE Helper Scripts
I dabbled with a number of music streaming servers, including Ampache and Subsonic (and it's many forks), and had trouble with either web interface loading times or app connectivity and couldn't find one that worked 'as advertised'. In one of these similar music streaming discussion threads, HN member epoupon mentioned the system they'd authored: LMS[0] (Lightweight Music Server), which I found ticked all the boxes and was quick and easy to setup - and there's also a docker image[1]. Not affiliated in any way, just a satisfied user. [0]: https://github.com/epoupon/lms [1]: https://hub.docker.com/r/epoupon/lms
In Ampache: An open source web based audio/video streaming app and file manager
It's a mish-mash. A bunch of VMs running on ProxMox, Wireguard is the link from the outside world, QNAP NAS for document storage and running SyncThing server for phone photos and videos backup, a couple of Windows VM's we RDP into for banking and centralised documents and spreadsheets. Also PiHole running on a VM so my 'roaming' browsing is nice and clean. Also, although off-topic-ish, ZoneMinder and LMS (lightweight music server - which the author linked to in comments a week ago or so: https://github.com/epoupon/lms) VMs accessible via the VPN. Nothing particularly "integrated" like Sandstorm or NextCloud, but I haven't had the existential need for that level of accessibility. The QNAP NAS (like Synology) has personal cloud apps, but I don't tend to like doing things the easy way. Going down that path also locks services into a part
Read the rest
icular hardware dependency. VMs are easily backed up and restorable to ProxMox running on new / different hardware if necessary.
In My transition to an Ubuntu workstation
Thanks for you feedback! About the software license, the web framework used (wt) is using the GPL license. So unfortunately I have to stick with it since I include/link with it. It is likely not a problem for SaaS though. - ncmpcpp-like frontend: what do you have in mind actually? I am not sure since the goal here is to play the music on the device from which you access to the server. - directory-based navigation: well I think that is a matter of taste. Personally I find the navigation directory based very restrictive. It does not scale well on a large collection and after all, it is just a fixed view of what you can offer using tag based browsing. Most people use a genre/artist/album layout, but using tags you could easily achieve the same, and go even further and do whatever you want: genre/decade/artist/album, mood/album, genre/mood/ar
Read the rest
tist, etc. Honestly, I would rather encourage people to properly tag their files rather than spending time on implementing a clunky directory based navigation. - Any info on the recommendation engine? How does it work? Low-level Data is fetched from AcousticBrainz. See an exemple here for a random song: https://acousticbrainz.org/e73f3d92-4e9f-4db4-943a-41978d9db... Some features are extracted for each track (the exact list is here: https://github.com/epoupon/lms/blob/develop/src/database/Sim...) and all these features are used together to classify the tracks. You can find details here: https://en.wikipedia.org/wiki/Self-organizing_map . Once it is done, you get a map with all your tracks in it, and using the underlying SOM you can determine the neighbourhood of a given track. The recommendation engine uses this map. For example, if you want albums that are similar to a particular one, you look for the tracks of the album in the map and you retreive the albums of the tracks that are close to them. - Does musicbrainzId support include id3 tagging? id3 is a tag format used mainly in MP3. LMS reads all the tags using taglib. Therefore it can extract the tags (id3 or whatever) it needs internally (musicbrainz ids, artist, albumartist, date, etc.) as well as custom tags the administrator want too ( albummood, mood, albumgenre, grouping, etc.) Hope that helps!
In Show HN: LMS – Lightweight Music server written in C++

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.