Files
music_library/README.md
T
2025-02-17 18:05:41 +00:00

3.1 KiB

Music Library

Features

  • Import records from MusicBrainz, with optional override of specific pieces of data
  • Manage a collection and a wishlist of records, with ways to quickly search and filter based on records' metadata
  • Integration with Last.fm (display latest scrobbles, and where possible connect them with records in the collection or wishlist)
  • Some basic stats
  • All data stored in a single SQLite database for portability and ease of backup/restore
  • Ideal for deployment on a server with limited resources (1CPU, 512MB RAM)

Screenshots

Stats

Stats

Collection

Collection

Edit a record in the collection

Edit a record in the collection

View a record's details in the collection

View a record's details in the collection

Importing a record in the wishlist

Importing a record in the wishlist

Setup

Run mix setup to install and setup dependencies.

Environment configuration

The application requires the following environment variables:

  • LAST_FM_USER: the Last.fm username used to populate the Scrobble Activity
  • LAST_FM_API_KEY (secret): the Last.fm API key used to fetch the Scrobble Activity
  • OPENAI_KEY (secret): the OpenAI API key used for specific features like populating genres, etc.

In production, the application also requires:

  • LOGIN_PASSWORD (secret): the password used for accessing the application.

If you're using mise-en-place, you can create a mise.local.toml with the required variables.

Running the application

Start the Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server.

Now you can visit localhost:4000 from your browser. The default password for development is change me.

Deployment

The application is setup for deployment on Fly.io - just make sure you edit fly.toml to match your app name, domain, etc.

CI

See the .github folder.

Favicons

This favicon was generated using the following graphics from Twitter Twemoji: