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
74 lines
1.6 KiB
Markdown
74 lines
1.6 KiB
Markdown
# 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
|