{"id":18733936,"url":"https://github.com/mgoltzsche/mopidy-container","last_synced_at":"2025-09-22T17:04:38.898Z","repository":{"id":63452751,"uuid":"413214202","full_name":"mgoltzsche/mopidy-container","owner":"mgoltzsche","description":"An opinionated mopidy container, integrated with Snapcast","archived":false,"fork":false,"pushed_at":"2025-09-14T17:23:00.000Z","size":207,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-22T17:03:25.306Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mgoltzsche.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-03T22:46:45.000Z","updated_at":"2025-09-19T11:35:07.000Z","dependencies_parsed_at":"2024-01-11T05:29:04.434Z","dependency_job_id":"9d3585a5-ccb1-4e17-813f-ade0238791cc","html_url":"https://github.com/mgoltzsche/mopidy-container","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/mgoltzsche/mopidy-container","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgoltzsche%2Fmopidy-container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgoltzsche%2Fmopidy-container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgoltzsche%2Fmopidy-container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgoltzsche%2Fmopidy-container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mgoltzsche","download_url":"https://codeload.github.com/mgoltzsche/mopidy-container/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgoltzsche%2Fmopidy-container/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276439797,"owners_count":25642752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-22T02:00:08.972Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T15:11:50.268Z","updated_at":"2025-09-22T17:04:38.893Z","avatar_url":"https://github.com/mgoltzsche.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mopidy container\n\nAn opinionated [Mopidy](https://github.com/mopidy/mopidy) container built for amd64 or arm64 (e.g. Raspberry Pi) linux machines designed to stream audio to [Snapcast](https://github.com/badaix/snapcast).  \n\nIt can be deployed using one of the following ways:\n* as a [Docker Compose project](./docker-compose.yaml) that also includes a [Snapcast container](https://github.com/mgoltzsche/snapcast-container).\n* as a [Kubernetes app](./deploy) (without Snapcast, assuming it was installed separately).\n* via the [Kubemate](https://github.com/mgoltzsche/kubemate) web GUI.\n\n## Development\n\nTo list the supported targets, run `make help`.\n\n### Prerequisites\n\n* git\n* make\n* [docker 20+](https://docs.docker.com/engine/install/)\n* [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)\n\n### Build the application\nTo build the application container image using [skaffold](https://skaffold.dev), run:\n```sh\nmake image\n```\n\n### Test the mopidy container using docker\n\nTo test container changes, you can run mopidy simply using docker with the pulseaudio unix socket and cookie mounted:\n```sh\nmake run-mopidy\n```\n\nOnce mopidy started, you can browse it at [`http://localhost:6680`](http://localhost:6680).\n\nTo run the compose project:\n```sh\nmake run-snapcast-compose\n```\n\n### Troubleshooting\n\nWhen the log doesn't give you sufficient information to find the cause of a problem, you can enable debug logs as follows:\n* To enable Mopidy debug logs, set the env var `MOPIDY_OPTS=-v`.\n* To enable GStreamer debug logs, set the env var `GST_DEBUG=3`.\n\n### Deploy the application\nTo deploy the application using [skaffold](https://skaffold.dev), run:\n```sh\nmake deploy\n```\nTo deploy the application in debug mode (debug ports forwarded), stream its logs and redeploy on source code changes automatically, run:\n```sh\nmake debug\n```\n\nTo undeploy the application, run:\n```sh\nmake undeploy\n```\n\n### Apply blueprint updates\nTo apply blueprint updates to the application codebase, update the [kpt](https://kpt.dev/) package:\n1. Before updating the package, make sure you don't have uncommitted changes in order to be able to distinguish package update changes from others.\n2. Call `make blueprint-update` or rather [`kpt pkg update`](https://kpt.dev/reference/cli/pkg/update/) and [`kpt fn render`](https://kpt.dev/reference/cli/fn/render/) (applies the configuration within [`setters.yaml`](./setters.yaml) to the manifests and `skaffold.yaml`).\n3. Before committing the changes, review them carefully and make manual changes if necessary.\n\nTL;DR: [Variant Constructor Pattern](https://kpt.dev/guides/variant-constructor-pattern)\n\n## Release\n\nThe release process is driven by [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0-beta.4/), letting the CI pipeline generate a version and publish a release depending on the [commit messages](https://semantic-release.gitbook.io/semantic-release/#commit-message-format) on the `main` branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgoltzsche%2Fmopidy-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmgoltzsche%2Fmopidy-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgoltzsche%2Fmopidy-container/lists"}