update readme

This commit is contained in:
Senan Kelly
2022-11-08 00:09:32 +00:00
committed by GitHub
parent f6c95503c7
commit b7bf8cb70b

114
README.md
View File

@@ -37,111 +37,15 @@ password can then be changed from the web interface
### ...from source
```bash
$ apt install build-essential git sqlite libtag1-dev ffmpeg libasound-dev # for debian like
$ pacman -S base-devel git sqlite taglib ffmpeg alsa-lib # for arch like
$ go install go.senan.xyz/gonic/cmd/gonic@latest
$ 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)
https://github.com/sentriz/gonic/wiki/installation#from-source
### ...with docker
the image is available on dockerhub as [sentriz/gonic](https://hub.docker.com/r/sentriz/gonic)
available architectures are
- `linux/amd64`
- `linux/arm/v6`
- `linux/arm/v7`
- `linux/arm64`
```yaml
# example docker-compose.yml
version: "2.4"
services:
gonic:
image: sentriz/gonic:latest
environment:
- TZ
# optionally, see more env vars below
expose:
- 80
volumes:
- ./data:/data # gonic db etc
- /path/to/music:/music:ro # your music
- /path/to/podcasts:/podcasts # your podcasts
- /path/to/cache:/cache # transcode / covers / etc cache dir
# set the following two sections if you've enabled jukebox
group_add:
- audio
devices:
- /dev/snd:/dev/snd
```
then start with `docker-compose up -d`
https://github.com/sentriz/gonic/wiki/installation#with-docker
### ...with systemd
tested on Ubuntu 21.04
1. install **go 1.16 or newer**, check version, and install dependencies
```shell
$ sudo apt update
$ sudo apt install golang
$ go version
go version go1.16.2 linux/amd64
$ sudo apt install build-essential git sqlite libtag1-dev ffmpeg libasound-dev
```
2. install / compile gonic globally, and check version
```shell
$ sudo GOBIN=/usr/local/bin go install go.senan.xyz/gonic/cmd/gonic@latest
$ gonic -version
v0.14.0
```
3. add a gonic user, create a data directory, and install a config file
```shell
$ sudo adduser --system --no-create-home --group gonic
$ sudo mkdir -p /var/lib/gonic/ /etc/gonic/
$ sudo chown -R gonic:gonic /var/lib/gonic/
$ sudo wget https://raw.githubusercontent.com/sentriz/gonic/master/contrib/config -O /etc/gonic/config
```
4. update the config with your `music-path`, `podcast-path`, etc
```shell
$ sudo nano /etc/gonic/config
music-path <path to your music dir>
podcast-path <path to your podcasts dir>
cache-path <path to cache dir>
```
5. install the systemd service, check status or logs
```shell
$ sudo wget https://raw.githubusercontent.com/sentriz/gonic/master/contrib/gonic.service -O /etc/systemd/system/gonic.service
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now gonic
$ systemctl status gonic # check status, should be active (running)
$ journalctl --follow --unit gonic # check logs
```
should be installed and running on boot now 👍
view the admin UI at <http://localhost:4747>
https://github.com/sentriz/gonic/wiki/installation#with-systemd
### ...elsewhere
@@ -199,18 +103,6 @@ music-path /path/to/compilations
after that, most subsonic clients should allow you to select which music folder to use.
queries like show me "recently played compilations" or "recently added albums" are possible for example.
## example nginx config with `GONIC_PROXY_PREFIX`
```nginx
location /gonic/ {
proxy_pass http://localhost:4747/;
# set "Secure" cookie if using HTTPS
proxy_cookie_path / "/; Secure";
# set "X-Forwarded-Host" header for last.fm connection callback
proxy_set_header X-Forwarded-Host $host;
}
```
## directory structure
when browsing by folder, any arbitrary and nested folder layout is supported, with the following caveats: