{"id":19840503,"url":"https://github.com/zefer/mothership","last_synced_at":"2025-05-01T19:30:42.442Z","repository":{"id":20507275,"uuid":"23785852","full_name":"zefer/mothership","owner":"zefer","description":"A music player interface","archived":false,"fork":false,"pushed_at":"2024-11-12T08:22:19.000Z","size":1325,"stargazers_count":25,"open_issues_count":20,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T17:11:21.612Z","etag":null,"topics":["angular","go","mpd","websockets"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zefer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2014-09-08T09:50:53.000Z","updated_at":"2024-11-12T08:22:23.000Z","dependencies_parsed_at":"2024-06-19T01:39:31.966Z","dependency_job_id":"7fc383d1-344c-4262-942d-eb41813b3da4","html_url":"https://github.com/zefer/mothership","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fmothership","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fmothership/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fmothership/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zefer%2Fmothership/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zefer","download_url":"https://codeload.github.com/zefer/mothership/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251932566,"owners_count":21667168,"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","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":["angular","go","mpd","websockets"],"created_at":"2024-11-12T12:27:10.655Z","updated_at":"2025-05-01T19:30:41.941Z","avatar_url":"https://github.com/zefer.png","language":"Go","readme":"# Mothership\n\n[![Build Status](https://circleci.com/gh/zefer/mothership.svg?\u0026style=shield)](https://circleci.com/gh/zefer/mothership)\n\nMothership is a music player interface for [MPD][mpd],\noptimised for browsing your music collection in its original directory\nstructure.\n\nMothership is built with Go, AngularJS \u0026 WebSockets providing a snappy,\nreal-time user experience. All connected clients keep the UI in sync with the\nplayer state.\n\nMothership is cross-platform \u0026 extremely portable, building to a single,\nself-contained binary with no external dependencies other than an [MPD][mpd]\nserver to point it to.\n\n![screenshots](https://user-images.githubusercontent.com/101193/28209521-b7a2e07a-688a-11e7-8a47-ecac04bb9844.png)\n\n## Build\n\nTo build the Mothership binary, install the [development\nprerequisites](#development-prerequisites), then:\n\n```\n(cd frontend \u0026\u0026 grunt build)\ngo-bindata frontend.go -prefix \"frontend/dist/\" frontend/dist/...\ngo build\n```\n\nCross-compilation is achieved by modifying the `go build` command. For example:\n\n* Build for a Raspberry Pi 2: `GOOS=linux GOARM=7 GOARCH=arm go build`\n* Build for a Raspberry Pi 1: `GOOS=linux GOARM=6 GOARCH=arm go build`\n* Build for linux/386: `GOOS=linux GOARCH=386 go build`\n* Build for darwin/386: `GOOS=darwin GOARCH=386 go build`\n* Build for windows/386: `GOOS=windows GOARCH=386 go build`\n\n## Run\n\nFirstly, [build Mothership](#build), then:\n\n```\nmothership -mpdaddr=music:6600 -port :8080\nopen localhost:8080\n```\n\nModify `-mpdaddr` to point to the host:port (or ip:port) of your running MPD\nserver.\n\n## Deploy\n\nDeployment is simple, transfer the binary \u0026 run it. A complete example is\nprovided below:\n\n* [Example server configuration](https://github.com/zefer/ansible/tree/master/roles/mothership)\n  (using Ansible)\n* [Example deploy script](bin/deploy)\n\n## Develop\n\nWhile developing, the assets are not packaged into a binary, this allows us to\nmake front-end changes without rebuilding the back-end.\n\nInstall the [development prerequisites](#development-prerequisites), then:\n\n```\n(cd frontend \u0026\u0026 grunt)\ngo build \u0026\u0026 mothership -mpdaddr=music:6600 -port :8080\nopen localhost:8080\n```\n\n`grunt` watches for changes and runs all front-end tests.\n\n`go test ./...` runs all the back-end tests, or run a single package with a\ncommand like `(cd handlers \u0026\u0026 go test)`.\n\n## Development prerequisites\n\n* [Go][go]\n* [Node.js][nodejs] \u0026 npm\n* `go get github.com/jteeuwen/go-bindata/...`\n* `(cd frontend \u0026\u0026 npm install)`\n\n## Extras\n\n* Add an LCD with [Flashlight][flashlight]\n* Build a multi-room audio system with Raspberry Pis, [MPD][mpd] \u0026\n  [PulseAudio][pulseaudio]:\n  * [Server](https://github.com/zefer/ansible/blob/master/music_server.yml)\n  * [Clients](https://github.com/zefer/ansible/blob/master/music_client_pulse.yml)\n\n## License\n\nThis project uses the MIT License. See [LICENSE](LICENSE).\n\n[MPD]: http://www.musicpd.org/\n[go]: https://golang.org/\n[nodejs]: https://nodejs.org/\n[pulseaudio]: http://www.freedesktop.org/wiki/Software/PulseAudio/\n[flashlight]: https://github.com/zefer/flashlight\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzefer%2Fmothership","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzefer%2Fmothership","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzefer%2Fmothership/lists"}