summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-10-01 12:59:19 +0100
committerJoe Carstairs <me@joeac.net>2026-10-01 12:59:19 +0100
commitb67b1091647dcf20f459f882800f653b50ee0a51 (patch)
tree3a79f7a8451c94e4398c0eec0a4d6d03b3fcf100
parent415c5c3f70aa275a853a703e48b38bf5c773519b (diff)
add gonicHEADmain
-rw-r--r--playbook.yml8
-rw-r--r--roles/gonic/tasks/main.yml53
-rw-r--r--roles/gonic/templates/openrc/gonic31
-rw-r--r--vars/common.yml7
4 files changed, 99 insertions, 0 deletions
diff --git a/playbook.yml b/playbook.yml
index 69298fa..33c2571 100644
--- a/playbook.yml
+++ b/playbook.yml
@@ -87,3 +87,11 @@
- common.yml
vars:
vaultwarden_image_url: docker.io/vaultwarden/server
+
+- name: Install gonic
+ hosts: "{{ services.gonic.host }}"
+ become: true
+ roles:
+ - gonic
+ vars_files:
+ - common.yml
diff --git a/roles/gonic/tasks/main.yml b/roles/gonic/tasks/main.yml
new file mode 100644
index 0000000..10832c0
--- /dev/null
+++ b/roles/gonic/tasks/main.yml
@@ -0,0 +1,53 @@
+- name: Install gonic
+ community.general.apk:
+ name: gonic
+
+- name: Create music folder
+ ansible.builtin.file:
+ path: /media/seagate/music
+ state: directory
+
+- name: Create podcasts folder
+ ansible.builtin.file:
+ path: /media/seagate/podcasts
+ state: directory
+
+- name: Create playlists folder
+ ansible.builtin.file:
+ path: /media/seagate/playlists
+ state: directory
+
+- name: Create cache folder
+ ansible.builtin.file:
+ path: /var/gonic/cache
+ state: directory
+
+- name: Symlink music folder to /srv
+ ansible.builtin.file:
+ src: /media/seagate/music
+ dest: /srv/music
+ state: link
+
+- name: Symlink podcasts folder to /srv
+ ansible.builtin.file:
+ src: /media/seagate/podcasts
+ dest: /srv/podcasts
+ state: link
+
+- name: Symlink playlists folder to /srv
+ ansible.builtin.file:
+ src: /media/seagate/playlists
+ dest: /srv/playlists
+ state: link
+
+- name: Add gonic service
+ ansible.builtin.template:
+ src: openrc/gonic
+ dest: /etc/init.d/gonic
+ mode: "755"
+
+- name: Enable and restart gonic service
+ ansible.builtin.service:
+ name: gonic
+ enabled: true
+ state: restarted
diff --git a/roles/gonic/templates/openrc/gonic b/roles/gonic/templates/openrc/gonic
new file mode 100644
index 0000000..fa380b3
--- /dev/null
+++ b/roles/gonic/templates/openrc/gonic
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+
+description="Run gonic"
+
+start()
+{
+ ebegin "Starting gonic"
+ start-stop-daemon --start \
+ --exec /usr/bin/gonic \
+ --background \
+ --chdir ~mox \
+ --stdout /var/log/gonic.log \
+ --stderr /var/log/gonic.log \
+ --make-pidfile \
+ --pidfile /run/gonic.pid \
+ -- -music-path /srv/music \
+ -playlists-path /srv/playlists \
+ -podcast-path /srv/podcasts \
+ -cache-path /var/gonic/cache \
+ -listen-addr "0.0.0.0:{{ services.gonic.port }}"
+ eend $?
+}
+
+stop()
+{
+ ebegin "Stopping gonic"
+ start-stop-daemon --stop \
+ --exec /usr/bingonicmox \
+ --pidfile /run/gonic.pid
+ eend $?
+}
diff --git a/vars/common.yml b/vars/common.yml
index fe330d1..49faeb0 100644
--- a/vars/common.yml
+++ b/vars/common.yml
@@ -14,6 +14,9 @@ services:
gemini:
port: 1965
host: blade-canongate
+ gonic:
+ port: 3653
+ host: blade-canongate
http:
port: 8080
host: pi-broughton
@@ -60,6 +63,10 @@ subdomains:
full_domain: mta-sts.mail.joeac.net
mox_handler: null
service: null
+ - name: music
+ full_domain: music.joeac.net
+ mox_handler: forward
+ service: gonic
- name: pwd
full_domain: pwd.joeac.net
mox_handler: forward