This repo aims to provide an opinionated, containerized bundle of Mopidy and Snapcast that runs on both an amd64 linux machine and a Raspberry Pi.
To list the supported targets, run make help
.
- git
- make
- docker 20+
- kubectl
To build the application container image using skaffold, run:
make image
To test container changes, you can run mopidy simply using docker with the pulseaudio unix socket and cookie mounted:
make run-mopidy
Once mopidy started, you can browse it at http://localhost:6680
.
When the log doesn't give you sufficient information to find the cause of a problem, you can enable debug logs as follows:
- To enable Mopidy debug logs, set the env var
MOPIDY_OPTS=-v
. - To enable GStreamer debug logs, set the env var
GST_DEBUG=3
.
To deploy the application using skaffold, run:
make deploy
To deploy the application in debug mode (debug ports forwarded), stream its logs and redeploy on source code changes automatically, run:
make debug
To undeploy the application, run:
make undeploy
To apply blueprint updates to the application codebase, update the kpt package:
- Before updating the package, make sure you don't have uncommitted changes in order to be able to distinguish package update changes from others.
- Call
make blueprint-update
or ratherkpt pkg update
andkpt fn render
(applies the configuration withinsetters.yaml
to the manifests andskaffold.yaml
). - Before committing the changes, review them carefully and make manual changes if necessary.
TL;DR: Variant Constructor Pattern
The release process is driven by Conventional Commits, letting the CI pipeline generate a version and publish a release depending on the commit messages on the main
branch.