From c7ddefaa3de621ba48f1f5977378e3e9d3f64b5f Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Thu, 14 Sep 2023 12:08:56 +0200 Subject: [PATCH] add ampache stack --- ansible/inventory/group_vars/all.yml | 6 +++ ansible/playbooks/stacks.yml | 1 + ansible/roles/ampache/docker-stack.yml.j2 | 56 +++++++++++++++++++++++ ansible/roles/ampache/tasks/main.yml | 5 ++ 4 files changed, 68 insertions(+) create mode 100644 ansible/roles/ampache/docker-stack.yml.j2 create mode 100644 ansible/roles/ampache/tasks/main.yml diff --git a/ansible/inventory/group_vars/all.yml b/ansible/inventory/group_vars/all.yml index 4d994f0..ad74503 100644 --- a/ansible/inventory/group_vars/all.yml +++ b/ansible/inventory/group_vars/all.yml @@ -47,6 +47,12 @@ nfs_shares: path: /mnt/data/grafana/data - name: kitchenowl_data path: /mnt/data/kitchenowl/data + - name: ampache_mysql + path: /mnt/data/ampache/mysql + - name: ampache_config + path: /mnt/data/ampache/config + - name: music + path: /mnt/data/nextcloud/data/data/pim/files/Music database_passwords: nextcloud: !vault | diff --git a/ansible/playbooks/stacks.yml b/ansible/playbooks/stacks.yml index 1ade0ac..eacabcb 100644 --- a/ansible/playbooks/stacks.yml +++ b/ansible/playbooks/stacks.yml @@ -20,3 +20,4 @@ - {role: syncthing, tags: syncthing} - {role: monitoring, tags: monitoring} - {role: kitchenowl, tags: kitchenowl} + - {role: ampache, tags: ampache} diff --git a/ansible/roles/ampache/docker-stack.yml.j2 b/ansible/roles/ampache/docker-stack.yml.j2 new file mode 100644 index 0000000..0b5a2e7 --- /dev/null +++ b/ansible/roles/ampache/docker-stack.yml.j2 @@ -0,0 +1,56 @@ +# vi: ft=yaml +version: '3.7' + +networks: + traefik: + external: true + +volumes: + ampache_mysql: + driver_opts: + type: "nfs" + o: "addr=192.168.30.10,nolock,soft,rw" + device: ":/mnt/data/ampache/mysql" + ampache_config: + driver_opts: + type: "nfs" + o: "addr=192.168.30.10,nolock,soft,rw" + device: ":/mnt/data/ampache/config" + music: + driver_opts: + type: "nfs" + o: "addr=192.168.30.10,nolock,soft,rw" + device: ":/mnt/data/nextcloud/data/data/pim/files/Music" + +services: + ampache: + image: ampache/ampache:6 + volumes: + - type: volume + source: ampache_mysql + target: /var/lib/mysql + volume: + nocopy: true + - type: volume + source: ampache_config + target: /var/www/config + volume: + nocopy: true + - type: volume + source: music + target: /media + read_only: true + volume: + nocopy: true + networks: + - traefik + deploy: + labels: + - traefik.enable=true + - traefik.http.routers.ampache.entrypoints=websecure + - traefik.http.routers.ampache.rule=Host(`music.kun.is`) + - traefik.http.routers.ampache.tls=true + - traefik.http.routers.ampache.tls.certresolver=letsencrypt + - traefik.http.routers.ampache.service=ampache + - traefik.http.services.ampache.loadbalancer.server.port=80 + - traefik.docker.network=traefik diff --git a/ansible/roles/ampache/tasks/main.yml b/ansible/roles/ampache/tasks/main.yml new file mode 100644 index 0000000..3e730ce --- /dev/null +++ b/ansible/roles/ampache/tasks/main.yml @@ -0,0 +1,5 @@ +- name: Deploy Docker stack + docker_stack: + name: ampache + compose: + - "{{ lookup('template', '{{ role_path }}/docker-stack.yml.j2') | from_yaml }}"