Added beets and slskd
This commit is contained in:
@@ -19,4 +19,4 @@
|
||||
- tautulli
|
||||
- gitea
|
||||
- unifi-controller
|
||||
- homepage
|
||||
- beets
|
||||
|
29
ansible/roles/beets/tasks/main.yml
Normal file
29
ansible/roles/beets/tasks/main.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
- name: Create service user
|
||||
user:
|
||||
name: "{{ role_name }}"
|
||||
system: true
|
||||
register: service_user
|
||||
become: true
|
||||
|
||||
- name: Create install directory
|
||||
file:
|
||||
path: "{{ install_directory }}/{{ role_name }}"
|
||||
state: directory
|
||||
owner: "{{ docker_user }}"
|
||||
mode: "{{ docker_compose_directory_mask }}"
|
||||
become: true
|
||||
|
||||
- name: Copy docker-compose file to destination
|
||||
template:
|
||||
src: docker-compose.yml
|
||||
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||
owner: "{{ docker_user }}"
|
||||
mode: "{{ docker_compose_file_mask }}"
|
||||
validate: docker-compose -f %s config
|
||||
become: true
|
||||
|
||||
- name: Start docker container
|
||||
community.docker.docker_compose:
|
||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||
pull: true
|
||||
remove_orphans: yes
|
24
ansible/roles/beets/templates/docker-compose.yml
Normal file
24
ansible/roles/beets/templates/docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
version: "{{ docker_compose_version }}"
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
||||
|
||||
services:
|
||||
beets:
|
||||
container_name: beets
|
||||
image: lscr.io/linuxserver/beets:latest
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik
|
||||
environment:
|
||||
- "PUID={{ service_user.uid }}"
|
||||
- "PGID={{ media_gid }}"
|
||||
- "TZ={{ timezone }}"
|
||||
volumes:
|
||||
- "{{ data_dir }}/{{ role_name }}:/config"
|
||||
- "{{ media_storage_mnt }}/data/media/music:/music"
|
||||
labels:
|
||||
traefik.enable: true
|
||||
traefik.http.routers.beets.rule: "Host(`beets.local.{{ personal_domain }}`)"
|
||||
traefik.http.routers.beets.middlewares: lan-whitelist@file
|
38
ansible/roles/slskd/tasks/main.yml
Normal file
38
ansible/roles/slskd/tasks/main.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
- name: Create service user
|
||||
user:
|
||||
name: "{{ role_name }}"
|
||||
system: true
|
||||
register: service_user
|
||||
become: true
|
||||
|
||||
- name: Create install directory
|
||||
file:
|
||||
path: "{{ install_directory }}/{{ role_name }}"
|
||||
state: directory
|
||||
owner: "{{ docker_user }}"
|
||||
mode: "{{ docker_compose_directory_mask }}"
|
||||
become: true
|
||||
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: "{{ data_dir }}/{{ role_name }}"
|
||||
state: directory
|
||||
owner: "{{ service_user.uid }}"
|
||||
group: "{{ media_gid }}"
|
||||
mode: "{{ docker_compose_directory_mask }}"
|
||||
become: true
|
||||
|
||||
- name: Copy docker-compose file to destination
|
||||
template:
|
||||
src: docker-compose.yml
|
||||
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||
owner: "{{ docker_user }}"
|
||||
mode: "{{ docker_compose_file_mask }}"
|
||||
validate: docker-compose -f %s config
|
||||
become: true
|
||||
|
||||
- name: Start docker container
|
||||
community.docker.docker_compose:
|
||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||
pull: true
|
||||
remove_orphans: yes
|
21
ansible/roles/slskd/templates/docker-compose.yml
Normal file
21
ansible/roles/slskd/templates/docker-compose.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: "{{ docker_compose_version }}"
|
||||
|
||||
services:
|
||||
slskd:
|
||||
container_name: "slskd"
|
||||
image: slskd/slskd
|
||||
restart: unless-stopped
|
||||
network_mode: container:gluetun
|
||||
user: "{{ service_user.uid }}:{{ media_gid }}"
|
||||
environment:
|
||||
- SLSKD_SHARED_DIR=/music
|
||||
- SLSKD_REMOTE_CONFIGURATION=True
|
||||
- SLSKD_DOWNLOADS_DIR=/downloads
|
||||
volumes:
|
||||
- "{{ data_dir }}/{{ role_name }}:/app"
|
||||
- "{{ data_dir }}/{{ role_name }}/downloads:/downloads"
|
||||
- "{{ media_storage_mnt }}/data/media/music:/music:ro"
|
||||
labels:
|
||||
traefik.enable: true
|
||||
traefik.http.routers.slskd.rule: "Host(`soulseek.local.{{ personal_domain }}`)"
|
||||
traefik.http.routers.slskd.middlewares: lan-whitelist@file
|
Reference in New Issue
Block a user