A Practical Guide To Getting Your Music Collection Working
Most people try to organize their music library by throwing everything into a default folder and hoping the software sorts it out. It doesn't work that way. Songs Of My House is basically a local music management system that scans directories, reads metadata, and lets you query your collection without relying on cloud services. It works offline, which is the main draw, but the setup phase is where people get stuck. You can grab it from their GitHub releases page at https://github.com/songsofmyhouse/smh/releases. Grab the latest .deb or .rpm depending on your distro, or use the AppImage if you're on something newer. The installer puts files in /opt/smh by default, and you'll need to create a config file at ~/.config/smh/config.toml before the first run. The default config is sparse. Here's what actually works: set your music root directory, point the scan index to a dedicated folder, and make sure your audio files are tagged with ID3 or Vorbis comments. MP3s, FLAC, and M4A are the main formats that parse cleanly. OGG works but the playback engine sometimes skips files with unusual sample rates. That's a known issue they haven't fixed yet.
First Scan And Indexing
Run the initial scan with smh scan --deep. The --deep flag forces re-read of every file's metadata instead of relying on cached values. For a library of about 4,000 tracks, this takes roughly 12 minutes on an SSD. Without the flag, it's closer to 3 minutes but you'll miss track-level changes like manually edited tags. After the scan completes, start the local server with smh serve. It defaults to port 8080. Point your browser there and you'll see a basic interface showing artists, albums, and a search bar. The interface isn't fancy. It's functional. One thing beginners miss: the search function uses exact substring matching on the indexed metadata by default. If you search "Beatles," you won't find albums where the metadata says "The Beatles." You need to adjust the search config to use fuzzy matching. Set fuzzy_search = true in your config.toml, then run smh rebuild-index. This adds a slight performance hit on large libraries but catches those mismatches that would otherwise waste time.
Common Problems I've Hit
I ran into a weird edge case where the scanner would hang indefinitely on a folder containing nested symlinks pointing outside the music root. It happened with a backup directory that had relative symlinks to another drive. The process would spin at 100 percent CPU and never complete. I solved it by adding exclude_paths in the config and explicitly listing symlinked directories to skip. Here's what that looks like: exclude_paths = ["~/backup/music", "~/dropbox/shared"] That cut the scan time in half and stopped the CPU spike. The docs don't mention symlinks at all, which is annoying.
Get the Full Details

Another issue: the playback backend doesn't handle gapless playback between tracks in FLAC files unless you enable the ao driver explicitly. Go to the audio output settings in your config and set driver = "ao". Without it, you get a 200-millisecond silence between tracks. Listeners who pay attention to it will notice immediately, especially on classical or live albums where the gaps are part of the mix.
What It Doesn't Do Well
Songs Of My House won't import playlists from Spotify or Apple Music. You'd need to export them as M3U files first and then manually load them. It also doesn't support crossfading out of the box. You have to configure that through the audio driver settings, which requires some trial and error depending on your sound card and OS. The developers are aware of both issues and have them on their backlog, but there's no timeline posted. For smaller libraries under 500 tracks, the interface feels adequate. Once you go past 5,000, the search and browse functions slow down noticeably unless you're running it on a machine with at least 8 GB of RAM dedicated to the index process. A Raspberry Pi 4 will choke on a large library. Use something more capable if your collection is extensive. The whole setup, from installation to a working library with searches and playback, should take about 30 to 45 minutes if you run into the usual growing pains. Factor in extra time if your metadata is messy. Cleaning up tags before the first scan saves more time than anything else in the process.
Alternatives If This Doesn't Fit
If you need cloud sync or collaborative playlists, Songs Of My House isn't it. You'd be better off with something like Plex Media Server or Navidrome. Navidrome in particular is lighter on resources and has a more mature web interface. But if you want local-only storage and don't care about remote access, this is a reasonable choice for the price of free. Just remember to back up your config and your scan index folder periodically. The index lives under ~/.local/share/smh/index and takes up roughly 150 MB for a 4,000 track library. Losing it means re-scanning from scratch, and nobody wants to do that twice.
