Skip to content

Commit f856f79

Browse files
committed
Merge branch 'develop'
2 parents b03cbe7 + fbea08d commit f856f79

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+19140
-297
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ assignees: ''
77

88
---
99

10-
[Please check the FAQ](https://github.com/FoxxMD/multi-scrobbler/blob/master/docs/FAQ.md) before submitting a bug report.
10+
[Please check the FAQ](https://github.com/FoxxMD/multi-scrobbler/blob/master/docsite/docs/FAQ.md) before submitting a bug report.
1111

1212
**Describe the bug**
1313
A clear and concise description of what the bug is.
@@ -23,7 +23,7 @@ Steps to reproduce the behavior:
2323
A clear and concise description of what you expected to happen.
2424

2525
**Logs**
26-
If possible reproduce the issue with [debug logging ON](https://github.com/FoxxMD/multi-scrobbler/blob/master/docs/FAQ.md#turn-on-debug-logging)
26+
If possible reproduce the issue with [debug logging ON](https://github.com/FoxxMD/multi-scrobbler/blob/master/docsite/docs/FAQ.md#turn-on-debug-logging)
2727

2828
```
2929
Copy and paste as much log data as possible related to this issue here.

.github/workflows/docsDeploy.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
# Review gh actions docs if you want to further define triggers, paths, etc
8+
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on
9+
10+
jobs:
11+
deploy:
12+
name: Deploy to GitHub Pages
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v3
16+
- uses: actions/setup-node@v3
17+
with:
18+
node-version: 18
19+
cache: npm
20+
21+
- name: Install dependencies
22+
run: npm ci
23+
working-directory: ./docsite
24+
- name: Build website
25+
run: npm run build
26+
working-directory: ./docsite
27+
28+
# Popular action to deploy to GitHub Pages:
29+
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
30+
- name: Deploy to GitHub Pages
31+
uses: peaceiris/actions-gh-pages@v3
32+
with:
33+
github_token: ${{ secrets.GITHUB_TOKEN }}
34+
# Build output to publish to the `gh-pages` branch:
35+
publish_dir: ./docsite/build
36+
# The following lines assign commit authorship to the official
37+
# GH-Actions bot for deploys to `gh-pages` branch:
38+
# https://github.com/actions/checkout/issues/13#issuecomment-724415212
39+
# The GH actions bot is used by default if you didn't specify the two fields.
40+
# You can swap them out with your own user credentials.
41+
user_name: github-actions[bot]
42+
user_email: 41898282+github-actions[bot]@users.noreply.github.com

.github/workflows/dockerhub.yml renamed to .github/workflows/publishImage.yml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,36 @@ jobs:
1515
push_to_registry:
1616
name: Push Docker image to Docker Hub
1717
runs-on: ubuntu-latest
18+
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token
19+
permissions:
20+
packages: write
21+
contents: read
1822
steps:
1923
- name: Check out the repo
20-
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
24+
uses: actions/checkout@v2
2125

2226
- name: Log in to Docker Hub
2327
if: github.event_name != 'pull_request'
24-
uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7
28+
uses: docker/login-action@v2
2529
with:
2630
username: ${{ secrets.DOCKER_USERNAME }}
2731
password: ${{ secrets.DOCKER_PASSWORD }}
32+
33+
- name: Login to GitHub Container Registry
34+
if: github.event_name != 'pull_request'
35+
uses: docker/login-action@v2
36+
with:
37+
registry: ghcr.io
38+
username: ${{ github.repository_owner }}
39+
password: ${{ secrets.GITHUB_TOKEN }}
2840

2941
- name: Extract metadata (tags, labels) for Docker
3042
id: meta
31-
uses: docker/metadata-action@f2a13332ac1ce8c0a71aeac48a150dbb1838ab67
43+
uses: docker/metadata-action@v3
3244
with:
33-
images: foxxmd/multi-scrobbler
45+
images: |
46+
foxxmd/multi-scrobbler
47+
ghcr.io/foxxmd/multi-scrobbler
3448
# generate Docker tags based on the following events/attributes
3549
tags: |
3650
type=raw,value=latest,enable=${{ endsWith(github.ref, 'master') }}
@@ -40,16 +54,16 @@ jobs:
4054
latest=false
4155
4256
- name: Set up QEMU
43-
uses: docker/setup-qemu-action@27d0a4f181a40b142cce983c5393082c365d1480
57+
uses: docker/setup-qemu-action@v2
4458

4559
- name: Set up Docker Buildx
46-
uses: docker/setup-buildx-action@94ab11c41e45d028884a99163086648e898eed25
60+
uses: docker/setup-buildx-action@v2
4761

4862
- name: Build and push Docker image
49-
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
63+
uses: docker/build-push-action@v4
5064
with:
5165
context: .
52-
push: ${{ github.event_name != 'pull_request' }}
66+
push: ${{ github.event_name != 'pull_request' && !env.ACT}}
5367
tags: ${{ steps.meta.outputs.tags }}
5468
labels: ${{ steps.meta.outputs.labels }}
55-
platforms: linux/amd64,linux/arm64,linux/arm/v7
69+
platforms: linux/amd64,linux/arm64

README.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@ alt="multi-scrobbler logo" width="180" height="180">
1010
A javascript app to scrobble music you listened to, to [Maloja](https://github.com/krateng/maloja), [Last.fm](https://www.last.fm), and [ListenBrainz](https://listenbrainz.org)
1111

1212
* Supports scrobbling from many **Sources**
13-
* [Spotify](/docs/configuration.md#spotify)
14-
* [Plex](/docs/configuration.md#plex) or [Tautulli](/docs/configuration.md#tautulli)
15-
* [Subsonic-compatible APIs](/docs/configuration.md#subsonic) (like [Airsonic](https://airsonic.github.io/))
16-
* [Jellyfin](/docs/configuration.md#jellyfin)
17-
* [Youtube Music](/docs/configuration.md#youtube-music)
18-
* [Last.fm](/docs/configuration.md#lastfm-source)
19-
* [ListenBrainz](/docs/configuration.md#listenbrainz--source-)
20-
* [Deezer](/docs/configuration.md#deezer)
21-
* [MPRIS (Linux Desktop)](/docs/configuration.md#mpris)
22-
* [Mopidy](/docs/configuration.md#mopidy)
23-
* [JRiver](/docs/configuration.md#jriver)
24-
* [Kodi](/docs/configuration.md#kodi)
13+
* [Spotify](/docsite/docs/configuration/configuration.md#spotify)
14+
* [Plex](/docsite/docs/configuration/configuration.md#plex) or [Tautulli](/docsite/docs/configuration/configuration.md#tautulli)
15+
* [Subsonic-compatible APIs](/docsite/docs/configuration/configuration.md#subsonic) (like [Airsonic](https://airsonic.github.io/))
16+
* [Jellyfin](/docsite/docs/configuration/configuration.md#jellyfin)
17+
* [Youtube Music](/docsite/docs/configuration/configuration.md#youtube-music)
18+
* [Last.fm](/docsite/docs/configuration/configuration.md#lastfm-source)
19+
* [ListenBrainz](/docsite/docs/configuration/configuration.md#listenbrainz--source-)
20+
* [Deezer](/docsite/docs/configuration/configuration.md#deezer)
21+
* [MPRIS (Linux Desktop)](/docsite/docs/configuration/configuration.md#mpris)
22+
* [Mopidy](/docsite/docs/configuration/configuration.md#mopidy)
23+
* [JRiver](/docsite/docs/configuration/configuration.md#jriver)
24+
* [Kodi](/docsite/docs/configuration/configuration.md#kodi)
2525
* Supports scrobbling to many **Clients**
26-
* [Maloja](/docs/configuration.md#maloja)
27-
* [Last.fm](/docs/configuration.md#lastfm)
28-
* [ListenBrainz](/docs/configuration.md#listenbrainz)
29-
* Monitor status of Sources and Clients using [webhooks (Gotify or Ntfy)](/docs/configuration.md#webhook-configurations) or [healthcheck endpoint](/docs/configuration.md#health-endpoint)
26+
* [Maloja](/docsite/docs/configuration/configuration.md#maloja)
27+
* [Last.fm](/docsite/docs/configuration/configuration.md#lastfm)
28+
* [ListenBrainz](/docsite/docs/configuration/configuration.md#listenbrainz)
29+
* Monitor status of Sources and Clients using [webhooks (Gotify or Ntfy)](/docsite/docs/configuration/configuration.md#webhook-configurations) or [healthcheck endpoint](/docsite/docs/configuration/configuration.md#health-endpoint)
3030
* Supports configuring for single or multiple users (scrobbling for your friends and family!)
3131
* Web server interface for stats, basic control, and detailed logs
3232
* Smart handling of credentials (persistent, authorization through app)
3333
* Easy configuration through ENVs or JSON
34-
* Install using [Docker images for x86/ARM](/docs/installation.md#docker), [flatpak](/docs/installation.md#flatpak), or [locally with NodeJS](/docs/installation.md#nodejs)
34+
* Install using [Docker images for x86/ARM](/docsite/docs/installation/installation.md#docker), [flatpak](/docsite/docs/installation/installation.md#flatpak), or [locally with NodeJS](/docsite/docs/installation/installation.md#nodejs)
3535

3636
**Why should I use this over a browser extension and/or mobile app scrobbler?**
3737

@@ -42,7 +42,7 @@ A javascript app to scrobble music you listened to, to [Maloja](https://github.c
4242

4343
**But I already scrobble my music to Last.fm/ListenBrainz, is multi-scrobbler for me?**
4444

45-
Yes! You can use [Last.fm as a **Source**](/docs/configuration.md#lastfm--source-) or [Listenbrainz as a **Source**](/docs/configuration.md#listenbrainz--source-) to forward scrobbles from your profile to any other Client! That way you can keep your current scrobble setup as-is but still get the benefit of capturing your data to a self-hosted location.
45+
Yes! You can use [Last.fm as a **Source**](/docsite/docs/configuration/configuration.md#lastfm--source-) or [Listenbrainz as a **Source**](/docsite/docs/configuration/configuration.md#listenbrainz--source-) to forward scrobbles from your profile to any other Client! That way you can keep your current scrobble setup as-is but still get the benefit of capturing your data to a self-hosted location.
4646

4747
<img src="/assets/status-ui.jpg" width="800">
4848

@@ -71,11 +71,11 @@ Client configurations consist of:
7171

7272
## Installation
7373

74-
[See the **Installation** documentation](/docs/installation.md)
74+
[See the **Installation** documentation](/docsite/docs/installation/installation.md)
7575

7676
## Configuration
7777

78-
[See the **Configuration** documentation](/docs/configuration.md)
78+
[See the **Configuration** documentation](/docsite/docs/configuration/configuration.md)
7979

8080
## Usage
8181

@@ -90,7 +90,7 @@ On first startup you may need to authorize Spotify and/or Last.fm by visiting th
9090

9191
## Help/FAQ
9292

93-
Having issues with connections or configuration? Check the [FAQ](/docs/FAQ.md) before creating an issue!
93+
Having issues with connections or configuration? Check the [FAQ](/docsite/docs/FAQ.md) before creating an issue!
9494

9595
## License
9696

config/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ These are **NOT** exhaustive examples. You should consult the **configuration**
88

99
Documentation at
1010

11-
* [internal docs](/docs/configuration.md)
12-
* External Link: https://github.com/FoxxMD/multi-scrobbler/blob/master/docs/configuration.md
11+
* [internal docs](../docsite/docs/configuration/configuration.md)
12+
* External Link: https://github.com/FoxxMD/multi-scrobbler/blob/master/docsite/docs/configuration/configuration.md

config/jellyfin.json.example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"users": ["FoxxMD"],
77
"servers": ["myServer","anotherServer"],
88
"options": {
9-
"logPayload": false
9+
"logPayload": false,
10+
"logFilterFailure": "warn"
1011
}
1112
}
1213
}

config/plex.json.example

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
"data": {
66
77
"libraries": ["music","my podcasts"],
8-
"servers": ["myServer","anotherServer"]
8+
"servers": ["myServer","anotherServer"],
9+
"options": {
10+
"logFilterFailure": "warn"
11+
}
912
}
1013
}
1114
]

config/tautulli.json.example

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
"data": {
66
77
"libraries": ["music","my podcasts"],
8-
"servers": ["myServer","anotherServer"]
8+
"servers": ["myServer","anotherServer"],
9+
"options": {
10+
"logFilterFailure": "warn"
11+
}
912
}
1013
}
1114
]

docsite/.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Dependencies
2+
/node_modules
3+
4+
# Production
5+
/build
6+
7+
# Generated files
8+
.docusaurus
9+
.cache-loader
10+
11+
# Misc
12+
.DS_Store
13+
.env.local
14+
.env.development.local
15+
.env.test.local
16+
.env.production.local
17+
18+
npm-debug.log*
19+
yarn-debug.log*
20+
yarn-error.log*

docsite/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Website
2+
3+
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
4+
5+
### Installation
6+
7+
```
8+
$ yarn
9+
```
10+
11+
### Local Development
12+
13+
```
14+
$ yarn start
15+
```
16+
17+
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
18+
19+
### Build
20+
21+
```
22+
$ yarn build
23+
```
24+
25+
This command generates static content into the `build` directory and can be served using any static contents hosting service.
26+
27+
### Deployment
28+
29+
Using SSH:
30+
31+
```
32+
$ USE_SSH=true yarn deploy
33+
```
34+
35+
Not using SSH:
36+
37+
```
38+
$ GIT_USER=<Your GitHub username> yarn deploy
39+
```
40+
41+
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

0 commit comments

Comments
 (0)