Your LastFM
A containerized Node.js application that synchronizes scrobbles from Last.fm, stores them in a local SQLite database, and serves a web dashboard.
Project
Your LastFM is a Node.js application designed to automatically synchronize music scrobbles from Last.fm. It preserves your listening history in a local SQLite database and serves a web interface for data visualization.
The project is fully containerized with Docker, using an automated entrypoint to handle database initialization and sequential execution (Syncing first, then launching the Web API). It also utilizes PM2 as a process manager inside the container to ensure the web service remains active and resilient.
Features
Interactive Web Dashboard
- Clean, modern web interface to visualize your music activity.
Automatic Last.fm Scrobble Synchronization
- Periodically fetches and stores your listening history (scrobbles) from Last.fm.
- Ensures your data is always up to date without manual intervention.
Local Music History Database
- Persists all scrobbles in a local SQLite database.
- Allows fast queries and offline access to historical listening data.
Recent Scrobbles View
- Displays your most recent tracks.
- Smart image fallback logic for tracks, albums, and artists.
Friends Comparison (Compatibility View)
- Compare your music taste with Last.fm friends.
- Shows compatibility level (Very Low → Super).
- Displays common top artists, albums, and tracks.
- Calculates and normalizes compatibility based on real listening data.
Shareable Music Cards
- Generate dynamic images based on your listening data.
- Optimized layouts for feed posts and instagram stories (9:16)
- Built using node-canvas for server-side image rendering.
Prerequisites
Installation
Create a .env file
LASTFM_API_KEY=your_lastfm_api_key
LASTFM_USERNAME=your_lastfm_usernameLast.fm: Create an API account here to get your API Key.
Docker Compose
services:
your-lastfm:
image: gomaink/your-lastfm
container_name: your-lastfm
ports:
- "1533:1533"
env_file:
- .env
volumes:
- ./data:/app/data
restart: unless-stoppedOn terminal:
docker compose up -d
Then access:
http://localhost:1533(or replace localhost with your server IP)
License
This project is licensed under the MIT License.
--- Tranlated By Open Ai Tx | Last indexed: 2026-03-06 ---