Auto Merge of PR 92 - aranea-setup-app-configs_2026-05-08T18-56-15

Merged by Trez.One
This commit was merged in pull request #92.
This commit is contained in:
2026-05-09 12:19:28 -04:00
7 changed files with 220 additions and 11 deletions
@@ -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 }}
@@ -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 }}
+189
View File
@@ -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:
# "--<section>.<name>=<value>", 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 <hostname> as placeholder for your actual host name
#host = <hostname>
#
###############################################################################
# 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:
# <angle brackets>: 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=<name>[&codec=<codec>][&sampleformat=<sampleformat>][&chunk_ms=<chunk ms>][&controlscript=<control script filename>[&controlscriptparams=<control script command line arguments>]]
# 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:///<path/to/pipe>?name=<name>[&mode=create][&dryout_ms=2000], mode can be "create" or "read"
# librespot: librespot:///<path/to/librespot>?name=<name>[&dryout_ms=2000][&username=<my username>&password=<my password>][&devicename=Snapcast][&bitrate=320][&wd_timeout=7800][&volume=100][&onevent=""][&nomalize=false][&autoplay=false][&params=<generic librepsot process arguments>]
# note that you need to have the librespot binary on your machine
# sampleformat will be set to "44100:16:2"
# file: file:///<path/to/PCM/file>?name=<name>
# process: process:///<path/to/process>?name=<name>[&dryout_ms=2000][&wd_timeout=0][&log_stderr=false][&params=<process arguments>]
# airplay: airplay:///<path/to/airplay>?name=<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://<listen IP, e.g. 127.0.0.1>:<port>?name=<name>[&mode=server]
# tcp client: tcp://<server IP, e.g. 127.0.0.1>:<port>?name=<name>&mode=client
# alsa: alsa:///?name=<name>&device=<alsa device>[&send_silence=false][&idle_threshold=100][&silence_threshold_percent=0.0]
# meta: meta:///<name of source#1>/<name of source#2>/.../<name of source#N>?name=<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&params=--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: <sample rate>:<bits per sample>:<channels>
sampleformat = 48000:16:2
# Default transport codec
# (flac|ogg|opus|pcm)[:options]
# Start Snapserver with "--stream:codec=<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:<filename>]
# when left empty: if running as daemon "system" else "stdout"
#sink =
# log filter <tag>:<level>[,<tag>:<level>]*
# with tag = * or <log tag> and level = [trace,debug,info,notice,warning,error,fatal]
#filter = *:info
#
###############################################################################
+9 -9
View File
@@ -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
+9
View File
@@ -0,0 +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
+7
View File
@@ -1,2 +1,9 @@
appdata_base_path: /home/charish/.config/docker
ansible_become_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
35396634626231373032376235343761316638376262333766376362363930666364303031306533
3664323164363738663965343933643536616135393036350a306161626161303935383434326536
66376165623634653966313033613230306365393334663334363730653330313031326231383739
3036633032376133370a316463653162633566303363376631383033396234383366633737383066
35393931393132323062386262623966646139613838373536313631643330313761
secrets_path: benedikta-docker/env
+3
View File
@@ -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
+1
View File
@@ -1,6 +1,7 @@
---
- name: Deploy Docker Service Configurations (Ownership-aware & verbose)
hosts:
- aranea
- lunafreya
- rikku
- rinoa