feat: initial implementation of metadata aggregator
- 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
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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 `/api` and `/rails` paths → proxy to Puma
|
||||
- Serve web frontend on root
|
||||
|
||||
## API Endpoints
|
||||
|
||||
```bash
|
||||
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
|
||||
Reference in New Issue
Block a user