a1f6701bac
- gRPC service with MusicBrainz provider - PostgreSQL schema with migrations - Service layer with database-first caching - Repository pattern for data access - YAML configuration support - Research documentation for 17 music metadata projects
Accentor
Overview
Modern self-hosted music server focusing on metadata. Provides complete control over your music with detailed metadata beyond what audio file tags support.
Key Features
- Focus: Metadata-centric design
- API: REST (Ruby on Rails)
- Language: Ruby
- Database: PostgreSQL
- License: AGPL-3.0
Source
| Resource | URL |
|---|---|
| API Repository | https://github.com/accentor/api |
| Web Frontend | https://github.com/accentor/web |
| Android App | https://github.com/accentor/android |
| Documentation | https://accentor.tech |
Metadata Features
- Albums can have multiple artists with different names per album/track
- Albums can have multiple labels
- Tracks can have multiple genres
- Complete user control over metadata editing
Architecture
accentor/
├── api/ # Rails API backend
├── web/ # Vue.js frontend
└── android/ # Android app
Self-Hosting
# Clone and setup
git clone https://github.com/accentor/api.git
cd api
bundle install
rails db:setup
# Run server (port 3000)
puma -C config/puma.rb
Use nginx as reverse proxy:
- Match
/apiand/railspaths → proxy to Puma - Serve web frontend on root
API Endpoints
GET /api/artists
GET /api/artists/:id
GET /api/albums
GET /api/albums/:id
GET /api/tracks
GET /api/tracks/:id
Notes
- Designed for users who want precise metadata control
- Build your own collection from CDs, Bandcamp, etc.
- Sound quality you choose (not compressed by service)
- Stream via web or Android app