Ferrum is a Linux-native desktop app to explore Metal Archives with a clean split between:
- 🖥️ GTK frontend (
PyGObject+libadwaita) - ⚙️ Spring Boot backend API
Built for fast discovery: search bands, inspect discographies, open album modals, and personalize your flow with favorites, themes, and provider-aware actions.
| Area | What you get |
|---|---|
| 🔎 Search | Multi-mode search (BAND_NAME, MUSIC_GENRE, THEMES, ALBUM_TITLE, and more) |
| 🧾 Band view | Metadata cards + full discography list |
| 🗂️ Discography UX | Filter by release type (All types, Demo, Full-length, etc.) |
| 💿 Album modal | Tracklist + Metal Archives link + search in selected provider |
| ⭐ Favorites | Star/unstar bands and browse favorites in the same Results panel |
| 🎨 Personalization | System, Light, Dark, Black themes |
| 🏷️ Visual tuning | Editable color mapping by album type in Settings |
| 🕘 Search history | Loaded from backend cache and reusable from UI |
GTK Frontend (front/)
-> consumes HTTP API
Spring Boot Backend (back/)
-> exposes HTTP API
-> Metal Archives scraping + cache
From repository root:
./run.shStartup flow:
front/run.shchecks for a backend JAR inback/target.- If missing, it builds backend with Maven.
- Backend starts at
http://localhost:18080(default). - GTK app launches and consumes the local backend.
front/: GTK app (UI, themes, settings, favorites UX)back/: Spring Boot backend + endpointsrun.sh: root launcher (delegates tofront/run.sh)
Ferrum stores local data under ~/.config/ferrum/:
preferences.json: theme mode, music provider, album-type colorsfavorites.json: favorite bandssession.json: backend/session runtime data (when present)
All endpoints and curl examples:
Install from AUR:
yay -S ferrum-gitAUR package page: