Bläddra i källkod

Add Maloja and Multi-scrobbler roles

Colin Powell 2 år sedan
förälder
incheckning
c6f9cf4453

+ 10 - 5
ansible/playbook.yml

@@ -68,11 +68,6 @@
   roles:
     - role: muchsync
 
-- hosts: matrix
-  roles:
-    - role: nginx
-    - role: matrix
-
 - hosts: geoloc
   roles:
     - role: nginx
@@ -171,6 +166,16 @@
   roles:
     - role: ntfy
 
+- hosts: matrix
+  roles:
+    - role: nginx
+    - role: dendrite
+
+- hosts: scrobbler
+  roles:
+    - role: maloja
+    - role: multi-scrobbler
+
 - hosts: test
   roles:
     - role: direnv

+ 17 - 0
ansible/roles/maloja/tasks/main.yml

@@ -0,0 +1,17 @@
+---
+- name: Dependencies installed
+  community.general.pkgng:
+    name: "py39-pip py39-lxml sqlite3"
+    state: latest
+
+- name: Poetry installed
+  pip:
+    name: malojaserver
+
+- name: Maloja immortal file installed
+  template:
+    src: immortal.yml.j2
+    dest: /usr/local/etc/immortal/maloja.yml
+    owner: root
+    mode: 0644
+  notify: Immortal restarted

+ 11 - 0
ansible/roles/maloja/templates/immortal.yml.j2

@@ -0,0 +1,11 @@
+cmd: maloja run
+env:
+    MALOJA_DATA_DIRECTORY: /var/db/maloja
+    MALOJA_HOST: 0.0.0.0
+    MALOJA_PORT: 8092
+log:
+  file: /var/log/maloja.log
+  age: 86400 # log 1 day
+  num: 7 # keep 7 files
+  size: 1 # size of file 1MB
+wait: 1

+ 34 - 0
ansible/roles/multi-scrobbler/tasks/main.yml

@@ -0,0 +1,34 @@
+---
+- name: Dependencies installed
+  community.general.pkgng:
+    name: "npm git-tiny"
+    state: latest
+
+- name: Source folder exists
+  file:
+    path: /usr/local/src
+    mode: 0755
+    state: directory
+
+- name: Multi-scrobbler source fetched
+  shell: git clone https://github.com/FoxxMD/multi-scrobbler.git /usr/local/src/multi-scrobbler
+
+- name: Multi-scrobbler installed
+  shell:
+    cmd: npm install
+    chdir: /usr/local/src/multi-scrobbler
+
+- name: Multi-scrobbler conf file installed
+  template:
+    src: config.json.j2
+    dest: /usr/local/etc/multi-scrobbler/config.json
+    owner: root
+    mode: 0644
+
+- name: Multi-scrobbler immortal file installed
+  template:
+    src: immortal.yml.j2
+    dest: /usr/local/etc/immortal/multi-scrobbler.yml
+    owner: root
+    mode: 0644
+  notify: Immortal restarted

+ 33 - 0
ansible/roles/multi-scrobbler/templates/config.json.j2

@@ -0,0 +1,33 @@
+{
+  "sourceDefaults": {
+    "maxPollRetries": 0,
+    "maxRequestRetries": 1,
+    "retryMultiplier": 1.5
+  },
+  "clientDefaults": {
+    "maxRequestRetries": 1,
+    "retryMultiplier": 1.5
+  },
+  "sources": [
+    {
+      "type": "lastfm",
+      "clients": [],
+      "name": "LastFM",
+      "data": {
+        "apiKey": "{{mopidy_lastfm_api_key}}",
+        "secret": "{{mopidy_lastfm_secret}}",
+        "redirectUri": "http://maloja1.local:9078/lastfm/callback"
+      }
+    }
+  ],
+  "clients": [
+    {
+      "type": "maloja",
+      "name": "tracks.unbl.ink",
+      "data": {
+        "url": "https://tracks.unbl.ink",
+    	"apiKey": "{{maloja_api_key}}"
+      }
+    }
+  ]
+}

+ 10 - 0
ansible/roles/multi-scrobbler/templates/immortal.yml.j2

@@ -0,0 +1,10 @@
+cmd: node index.js
+cwd: /usr/local/src/multi-scrobbler
+env:
+    CONFIG_DIR: /usr/local/etc/multi-scrobbler
+log:
+  file: /var/log/multi-scrobbler.log
+  age: 86400 # log 1 day
+  num: 7 # keep 7 files
+  size: 1 # size of file 1MB
+wait: 1