2025-01-05 11:29:33 +00:00
2024-12-30 17:21:52 +00:00
2024-09-16 09:45:47 +01:00
2024-12-15 19:02:58 +03:00
2025-01-05 11:29:33 +00:00
2024-10-07 08:12:05 +01:00
2025-01-03 19:16:43 +00:00
2024-09-27 19:38:17 +01:00
2025-01-05 11:29:33 +00:00
2024-10-07 08:12:05 +01:00
2024-11-06 12:09:38 +00:00
2024-12-19 19:04:34 +00:00
2024-11-25 10:17:06 +00:00
2024-12-28 17:37:12 +00:00
2024-12-28 12:26:44 +00:00
2025-01-05 11:29:33 +00:00
2025-01-05 11:29:33 +00:00

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)

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.

The application is setup to use direnv.

The .envrc file loads two other files: .envrc.local file for configuration variables, and a .secrets file for secrets.

You can create them and populate them with the necessary environment 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:

S
Description
No description provided
Readme 63 MiB
Languages
Elixir 77.4%
Python 10%
TypeScript 6.6%
HTML 3.7%
Shell 1.4%
Other 0.8%