From f239b37126c1dac9688ed9d4d4b25157d787190e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Sat, 9 May 2026 11:33:05 -0400 Subject: [PATCH 1/5] Adding host Aranea into Ansible. --- .../gitea_tar-valon_ansible_deploy.yml | 2 +- app-configs/aranea/snapcast/snapserver.conf | 189 ++++++++++++++++++ host_vars/aranea.yml | 2 + inventory/hosts.yml | 3 + tar-valon_config_deploy.yml | 1 + 5 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 app-configs/aranea/snapcast/snapserver.conf create mode 100644 host_vars/aranea.yml diff --git a/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml b/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml index 2d39132..4ecf810 100644 --- a/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml +++ b/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml @@ -68,7 +68,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - host: [rinoa, rikku, lunafreya, ultima] + host: [aranea, lunafreya, rinoa, rikku, ultima] env: VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }} VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }} diff --git a/app-configs/aranea/snapcast/snapserver.conf b/app-configs/aranea/snapcast/snapserver.conf new file mode 100644 index 0000000..bf5482c --- /dev/null +++ b/app-configs/aranea/snapcast/snapserver.conf @@ -0,0 +1,189 @@ +####################################################################################### +# ______ # +# / _____) # +# ( (____ ____ _____ ____ ___ _____ ____ _ _ _____ ____ # +# \____ \ | _ \ (____ || _ \ /___)| ___ | / ___)| | | || ___ | / ___) # +# _____) )| | | |/ ___ || |_| ||___ || ____|| | \ V / | ____|| | # +# (______/ |_| |_|\_____|| __/ (___/ |_____)|_| \_/ |_____)|_| # +# |_| # +# # +# Snapserver config file # +# # +# Source: https://github.com/badaix/snapcast/blob/develop/server/etc/snapserver.conf # # +# # +####################################################################################### + +# default values are commented +# uncomment and edit to change them + +# Settings can be overwritten on command line with: +# "--
.=", e.g. --server.threads=4 + + +# General server settings ##################################################### +# +[server] +# Number of additional worker threads to use +# - For values < 0 the number of threads will be 2 (on single and dual cores) +# or 4 (for quad and more cores) +# - 0 will utilize just the processes main thread and might cause audio drops +# in case there are a couple of longer running tasks, such as encoding +# multiple audio streams +#threads = -1 + +# the pid file when running as daemon +#pidfile = /var/run/snapserver/pid + +# the user to run as when daemonized +#user = snapserver +# the group to run as when daemonized +#group = snapserver + +# directory where persistent data is stored (server.json) +# if empty, data dir will be +# - "/var/lib/snapserver/" when running as daemon +# - "$HOME/.config/snapserver/" when not running as daemon +datadir = /data/ + +# +############################################################################### + + +# HTTP RPC #################################################################### +# +[http] +# enable HTTP Json RPC (HTTP POST and websockets) +enabled = true + +# address to listen on, can be specified multiple times +# use "0.0.0.0" to bind to any IPv4 address or :: to bind to any IPv6 address +# or "127.0.0.1" or "::1" to bind to localhost IPv4 or IPv6, respectively +# use the address of a specific network interface to just listen to and accept +# connections from that interface +bind_to_address = 0.0.0.0 + +# which port the server should listen to +port = 1780 + +# serve a website from the doc_root location +# disabled if commented or empty +doc_root = /usr/share/snapweb + +# Hostname or IP under which clients can reach this host +# used to serve cached cover art +# use as placeholder for your actual host name +#host = + +# +############################################################################### + + +# TCP RPC ##################################################################### +# +[tcp] +# enable TCP Json RPC +enabled = true + +# address to listen on, can be specified multiple times +# use "0.0.0.0" to bind to any IPv4 address or :: to bind to any IPv6 address +# or "127.0.0.1" or "::1" to bind to localhost IPv4 or IPv6, respectively +# use the address of a specific network interface to just listen to and accept +# connections from that interface +bind_to_address = 0.0.0.0 + +# which port the server should listen to +port = 1705 +# +############################################################################### + + +# Stream settings ############################################################# +# +[stream] +# address to listen on, can be specified multiple times +# use "0.0.0.0" to bind to any IPv4 address or :: to bind to any IPv6 address +# or "127.0.0.1" or "::1" to bind to localhost IPv4 or IPv6, respectively +# use the address of a specific network interface to just listen to and accept +# connections from that interface +bind_to_address = 0.0.0.0 + +# which port the server should listen to +port = 1704 + +# source URI of the PCM input stream, can be configured multiple times +# The following notation is used in this paragraph: +# : the whole expression must be replaced with your specific setting +# [square brackets]: the whole expression is optional and can be left out +# [key=value]: if you leave this option out, "value" will be the default for "key" +# +# Format: TYPE://host/path?name=[&codec=][&sampleformat=][&chunk_ms=][&controlscript=[&controlscriptparams=]] +# parameters have the form "key=value", they are concatenated with an "&" character +# parameter "name" is mandatory for all sources, while codec, sampleformat and chunk_ms are optional +# and will override the default codec, sampleformat or chunk_ms settings +# Non blocking sources support the dryout_ms parameter: when no new data is read from the source, send silence to the clients +# Available types are: +# pipe: pipe:///?name=[&mode=create][&dryout_ms=2000], mode can be "create" or "read" +# librespot: librespot:///?name=[&dryout_ms=2000][&username=&password=][&devicename=Snapcast][&bitrate=320][&wd_timeout=7800][&volume=100][&onevent=""][&nomalize=false][&autoplay=false][¶ms=] +# note that you need to have the librespot binary on your machine +# sampleformat will be set to "44100:16:2" +# file: file:///?name= +# process: process:///?name=[&dryout_ms=2000][&wd_timeout=0][&log_stderr=false][¶ms=] +# airplay: airplay:///?name=[&dryout_ms=2000][&port=5000] +# note that you need to have the airplay binary on your machine +# sampleformat will be set to "44100:16:2" +# tcp server: tcp://:?name=[&mode=server] +# tcp client: tcp://:?name=&mode=client +# alsa: alsa:///?name=&device=[&send_silence=false][&idle_threshold=100][&silence_threshold_percent=0.0] +# meta: meta://///.../?name= +# +# librespot: forcing zeroconf advertised port to 22382 via librespot custom params (URL encoded): `--zeroconf-port 22382` +# see: +# - https://github.com/badaix/snapcast/blob/develop/doc/configuration.md#librespot +source = librespot://librespot?name=LibreSpot&devicename=LibreSpot&bitrate=320&sampleformat=44100:16:2&cache=%2Fvar%2Fcache%2Flibrespot%2F¶ms=--zeroconf-port%2022382 +# source = airplay:///usr/bin/shairport-sync?name=shairport[&dryout_ms=2000&devicename=Snapcast&port=5000 +source = pipe:////audio/snapcast_fifo?name=Mopidy + +# Default sample format: :: +sampleformat = 48000:16:2 + +# Default transport codec +# (flac|ogg|opus|pcm)[:options] +# Start Snapserver with "--stream:codec=:?" to get codec specific options +codec = pcm + +# Default source stream read chunk size [ms]. +# The server will continously read this number of milliseconds from the source into buffer and pass this buffer to the encoder. +# The encoded buffer is sent to the clients. Some codecs have a higher latency and will need more data, e.g. Flac will need ~26ms chunks +#chunk_ms = 20 + +# Buffer [ms] +# The end-to-end latency, from capturing a sample on the server until the sample is played-out on the client +buffer = 1000 + +# Send audio to muted clients +send_to_muted = false + +# Streaming client options #################################################### +# +[streaming_client] + +# Volume assigned to new snapclients [percent] +# Defaults to 100 if unset +initial_volume = 100 +# +############################################################################### + + +# Logging options ############################################################# +# +[logging] + +# log sink [null,system,stdout,stderr,file:] +# when left empty: if running as daemon "system" else "stdout" +#sink = + +# log filter :[,:]* +# with tag = * or and level = [trace,debug,info,notice,warning,error,fatal] +#filter = *:info +# +############################################################################### diff --git a/host_vars/aranea.yml b/host_vars/aranea.yml new file mode 100644 index 0000000..b96054c --- /dev/null +++ b/host_vars/aranea.yml @@ -0,0 +1,2 @@ +appdata_base_path: /home/charish/.config/docker +secrets_path: aranea-docker/env diff --git a/inventory/hosts.yml b/inventory/hosts.yml index c61286b..3c1633b 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -1,5 +1,8 @@ all: hosts: + aranea: + ansible_host: 192.168.1.241 + ansible_user: charish lunafreya: ansible_host: 192.168.1.250 ansible_user: charish diff --git a/tar-valon_config_deploy.yml b/tar-valon_config_deploy.yml index 4ea4b8f..bbd329d 100644 --- a/tar-valon_config_deploy.yml +++ b/tar-valon_config_deploy.yml @@ -1,6 +1,7 @@ --- - name: Deploy Docker Service Configurations (Ownership-aware & verbose) hosts: + - aranea - lunafreya - rikku - rinoa -- 2.52.0 From 9bd2815f64f9cdc55220d3d19d477f7e22e40fe5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Sat, 9 May 2026 11:35:10 -0400 Subject: [PATCH 2/5] Forgot to update actual deployment job. --- .gitea/workflows/gitea_tar-valon_ansible_deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml b/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml index 4ecf810..4742e00 100644 --- a/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml +++ b/.gitea/workflows/gitea_tar-valon_ansible_deploy.yml @@ -174,7 +174,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - host: [rinoa, rikku, lunafreya, ultima] + host: [aranea, lunafreya, rinoa, rikku, ultima] env: VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }} VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }} -- 2.52.0 From 854ed976dbad7f6a053f437e502ef0953516c1cd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Sat, 9 May 2026 11:43:42 -0400 Subject: [PATCH 3/5] Updating Hashicorp Vault token. --- group_vars/all.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/group_vars/all.yml b/group_vars/all.yml index 70836cf..471fa8f 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -5,12 +5,12 @@ template_base_path: "{{ playbook_dir }}/app-configs" vault_addr: "https://vault.trez.wtf" vault_token: !vault | $ANSIBLE_VAULT;1.1;AES256 - 36643236376162313863326163316439326261646532653032393231303237353834373433613832 - 3435376637633532613264373866643663336462636465630a663337373365326661613030363730 - 37376337326563633663373462323137336664313737393264396139636632323935343837303863 - 6634393031366261300a363431393764633566636539363436313564613166353163633663373937 - 33623637626262366530366330373630363237393966646332363034623562623537323563313136 - 32396261326666623238366264386630663633336565363733613761373031376466333961353836 - 36333262313232613237326638383531396564353130333635646564383963376262303935656234 - 33653335396437613362333564363163643462306239626233666135336661646334363036623136 - 3132 + 33356331366463343032656164363437313263623962303365306632336362353038653738336338 + 3261303838386531653661353231343361316566633531300a326637636135383832386466656235 + 32316564653863346336316331306130333739663832613536323264336530383834323461313064 + 6639383633643866310a343332616235343462346436373035636266636239346438346633303932 + 64383135616261326466643661356539346233633639343865303964366236373161393764353838 + 65633631346166323961393532393133353838393332663963383566663136613232383662626165 + 63643838306332373237393938326131633838613331363663653638623830633364373464376463 + 39623034306164393863343133313135653839363236613232663563346334303333313634333334 + 6635 \ No newline at end of file -- 2.52.0 From 7b47835749b5ca476e9d3bf71c95e47a8c118394 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Sat, 9 May 2026 12:05:37 -0400 Subject: [PATCH 4/5] Become passwords for Lunafreya and Aranea. --- host_vars/aranea.yml | 7 +++++++ host_vars/lunafreya.yml | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/host_vars/aranea.yml b/host_vars/aranea.yml index b96054c..7464f83 100644 --- a/host_vars/aranea.yml +++ b/host_vars/aranea.yml @@ -1,2 +1,9 @@ appdata_base_path: /home/charish/.config/docker +ansible_become_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 65303564363831353738376239316665393435363663323231383436366566353534636164656336 + 6661633033623139376338656131353964666232383331660a343933643030383438626661633661 + 39333338306565383435326465386366356164643834303431623961653731303139633332326133 + 6561653432656462330a303966633132366637633235316631353839383331333765336237353135 + 39363465623933393535643862316262303333363038636634326233316636396666 secrets_path: aranea-docker/env diff --git a/host_vars/lunafreya.yml b/host_vars/lunafreya.yml index be1bf3c..3cb476a 100644 --- a/host_vars/lunafreya.yml +++ b/host_vars/lunafreya.yml @@ -1,2 +1,9 @@ appdata_base_path: /home/charish/.config/docker +ansible_become_password: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 36393364326361333466363538623966336135396534323830313765323632333131616465316138 + 6462363436313763356230383564616562653930653934620a663439663262653735356666303132 + 33636334643435346539356563643964383139333433383835326538393038653261303236383965 + 3731306137396539380a336437353965326433373663643531343239383739353639343737326232 + 39633434333631316432336165396264313934383030653731633239373264613136 secrets_path: benedikta-docker/env -- 2.52.0 From 75d9486e2d65545dd0beaf707c4f6686e35a4cfc Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Sat, 9 May 2026 12:12:47 -0400 Subject: [PATCH 5/5] Incorrect sudo for Lunafreya vars. --- host_vars/lunafreya.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/host_vars/lunafreya.yml b/host_vars/lunafreya.yml index 3cb476a..8c65878 100644 --- a/host_vars/lunafreya.yml +++ b/host_vars/lunafreya.yml @@ -1,9 +1,9 @@ appdata_base_path: /home/charish/.config/docker ansible_become_password: !vault | $ANSIBLE_VAULT;1.1;AES256 - 36393364326361333466363538623966336135396534323830313765323632333131616465316138 - 6462363436313763356230383564616562653930653934620a663439663262653735356666303132 - 33636334643435346539356563643964383139333433383835326538393038653261303236383965 - 3731306137396539380a336437353965326433373663643531343239383739353639343737326232 - 39633434333631316432336165396264313934383030653731633239373264613136 + 35396634626231373032376235343761316638376262333766376362363930666364303031306533 + 3664323164363738663965343933643536616135393036350a306161626161303935383434326536 + 66376165623634653966313033613230306365393334663334363730653330313031326231383739 + 3036633032376133370a316463653162633566303363376631383033396234383366633737383066 + 35393931393132323062386262623966646139613838373536313631643330313761 secrets_path: benedikta-docker/env -- 2.52.0