You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Gabe Farrell e1fcc5d5f4
fix: ensure importers are using UTC
6 months ago
.github/workflows docs: switch to official astro workflow 6 months ago
.vscode chore: initial public commit 6 months ago
assets chore: update README 6 months ago
client fix: add 'new' for clarity 6 months ago
cmd/api chore: initial public commit 6 months ago
db chore: initial public commit 6 months ago
docs docs: typos 6 months ago
engine fix: truncate data after testing 6 months ago
internal fix: ensure importers are using UTC 6 months ago
queue chore: initial public commit 6 months ago
romanizer chore: initial public commit 6 months ago
static feat: listenbrainz import 6 months ago
testing_init chore: initial public commit 6 months ago
Dockerfile chore: initial public commit 6 months ago
Makefile fix: makefile build client 6 months ago
README.md chore: update readme 6 months ago
go.mod chore: initial public commit 6 months ago
go.sum chore: initial public commit 6 months ago
sqlc.yaml chore: initial public commit 6 months ago

README.md

Koito

Koito is a modern, themeable, ListenBrainz-compatible scrobbler that I created because I am a data-addicted self-hoster that wanted something a little bit better than what is currently available for my listening habits.

This project is currently pre-release, and therefore you can expect bugs for the time being. If you don't want to replace your current scrobbler with Koito quite yet, you can set up a relay from Koito to another ListenBrainz-compatible scrobbler. This is what I've been doing for the entire development of this app and it hasn't failed me once. Or, you can always use something like multi-scrobbler.

Demo

You can view my public instance with my listening data at https://koito.mnrva.dev

Screenshots

screenshot one screenshot two screenshot three

Installation

See the installation guide, or, if you just want to cut to the chase, use this docker compose file:

services:
  koito:
    image: gabehf/koito:latest
    container_name: koito
    depends_on:
      - db
    environment:
      - KOITO_DATABASE_URL=postgres://postgres:secret_password@db:5432/koitodb
      - KOITO_ALLOWED_HOSTS=koito.example.com,192.168.0.100
    ports:
      - "4110:4110"
    volumes:
      - ./koito-data:/etc/koito
    restart: unless-stopped

  db:
    image: postgres:16
    container_name: psql
    restart: unless-stopped
    environment:
      POSTGRES_DB: koitodb
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: secret_password
    volumes:
      - ./db-data:/var/lib/postgresql/data

Be sure to replace secret_password with a random password of your choice, and set KOITO_ALLOWED_HOSTS to include the domain name or IP address you will be accessing Koito from when using either of the Docker methods described above.

Importing Data

See the data importing guide in the docs.

Full list of configuration options

See the configuration reference in the docs.