gonic

module
v0.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 20, 2020 License: GPL-3.0

README

FLOSS alternative to subsonic, supporting its many clients

features

  • browsing by folder (keeping your full tree intact)
  • browsing by tags (using taglib - supports mp3, opus, flac, ape, m4a, wav, etc.)
  • on-the-fly audio transcoding and caching (requires ffmpeg) (thank you spijet)
  • pretty fast scanning (with my library of ~27k tracks, initial scan takes about 10m, and about 5s after incrementally)
  • last.fm scrobbling
  • multiple users
  • a web interface for configuration (set up last.fm, manage users, start scans, etc.)
  • newer salt and token auth
  • tested on dsub, jamstash, sublime music, and soundwaves

installation

the default login is admin/admin.
password can then be changed from the web interface

$ apt install build-essential git sqlite libtag1-dev ffmpeg # for debian like
$ pacman -S base-devel git sqlite taglib ffmpeg             # for arch like
$ go get senan.xyz/g/gonic/cmd/gonic
$ export PATH=$PATH:$HOME/go/bin
$ gonic -h # or see "configuration options below"

note: unfortunately if you do this above, you'll be compiling gonic locally on your machine (if someone knows how I can statically link sqlite3 and taglib, please let me know so I can distribute static binaries)

or else you can run in docker, available on dockerhub as sentriz/gonic

# example docker-compose.yml

version: '3'
services:
  gonic:
    image: sentriz/gonic:latest
    environment:
    - TZ
    # optionally, see env vars below
    expose:
    - 80
    volumes:
    - ./data:/data             # gonic db etc
    - /path/to/music:/music:ro # your music
    - /path/to/cache:/cache    # transcode cache dir

then start with docker-compose up -d

configuration options

env var command line arg description
GONIC_MUSIC_PATH -music-path path to your music collection
GONIC_CACHE_PATH -cache-path optional path to store audio transcodes (default /tmp/gonic_cache)
GONIC_DB_PATH -db-path optional path to database file
GONIC_LISTEN_ADDR -listen-addr optional host and port to listen on (eg. 0.0.0.0:4747, 127.0.0.1:4747) (default 0.0.0.0:4747)
GONIC_PROXY_PREFIX -proxy-prefix optional url path prefix to use if behind reverse proxy. eg /gonic (see example configs below)
GONIC_SCAN_INTERVAL -scan-interval optional interval (in minutes) to check for new music (automatic scanning disabled if omitted)

screenshots

example nginx config with GONIC_PROXY_PREFIX

  location /gonic/ {
      proxy_pass http://localhost:4747/;
      # set X-Forwarded-Host for last.fm connection callback
      proxy_set_header X-Forwarded-Host $host;
  }

Directories

Path Synopsis
file generated with embed tool do not edit
file generated with embed tool do not edit
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL