{"id":15898691,"url":"https://github.com/kenellorando/cadence","last_synced_at":"2025-10-04T14:15:16.945Z","repository":{"id":45912483,"uuid":"83625870","full_name":"kenellorando/cadence","owner":"kenellorando","description":"All-in-one web radio suite with browser UI, music search, request, artwork, and real-time stream information.","archived":false,"fork":false,"pushed_at":"2024-08-06T05:20:40.000Z","size":48727,"stargazers_count":62,"open_issues_count":24,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-15T22:54:12.121Z","etag":null,"topics":["cadenceradio","compose","docker-compose","icecast","icecast2","internet-radio","internet-station","liquidsoap","radio","radio-player","self-hosted","selfhosted","stream","web-player","web-radio","web-radio-server","webradio","zutomayo"],"latest_commit_sha":null,"homepage":"https://cadenceradio.com","language":"Go","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/kenellorando.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}},"created_at":"2017-03-02T02:39:51.000Z","updated_at":"2025-04-08T22:36:14.000Z","dependencies_parsed_at":"2024-05-08T01:27:23.815Z","dependency_job_id":"3e01667b-9b24-46ca-beb9-d0c250bcddd5","html_url":"https://github.com/kenellorando/cadence","commit_stats":{"total_commits":1678,"total_committers":9,"mean_commits":"186.44444444444446","dds":"0.40047675804529204","last_synced_commit":"eca4f37a1314d99906d2a7cdf6de69f7755da211"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenellorando%2Fcadence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenellorando%2Fcadence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenellorando%2Fcadence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kenellorando%2Fcadence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kenellorando","download_url":"https://codeload.github.com/kenellorando/cadence/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249167439,"owners_count":21223505,"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":["cadenceradio","compose","docker-compose","icecast","icecast2","internet-radio","internet-station","liquidsoap","radio","radio-player","self-hosted","selfhosted","stream","web-player","web-radio","web-radio-server","webradio","zutomayo"],"created_at":"2024-10-06T10:07:33.127Z","updated_at":"2025-10-04T14:15:11.914Z","avatar_url":"https://github.com/kenellorando.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 📻 About\n\n**Cadence** (or *CadenceRadio*) is an all-in-one internet radio suite. \n\nThe project ships *Icecast* and *Liquidsoap* working out-of-the-box, made complete by a *Cadence API* providing song request, library search, album artwork, and real-time stream information in a browser UI.\n\n**See a live demo on [cadenceradio.com](https://cadenceradio.com/)!**\n\n\u003cimg src=\"https://user-images.githubusercontent.com/17265041/219263637-6971ce33-209a-4eb5-b67e-547f271dc3c8.png\" width=\"600\" \u003e\n\n## 🏃 Get Started\n\nAn interactive installation script is provided. Users familiar with Docker can be up and running in ~5 minutes.\n\n### Server Preparation\n\n- [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose V2](https://docs.docker.com/compose/install/) are installed.\n- You have some music files (e.g. `.mp3`, `.flac`) with title and artist metadata.\n\n### Installation\n\nClone the Cadence repository to your server, then run the following:\n\n```bash\n$ chmod +x ./install.sh\n$ ./install.sh\n```\n\nYou will be prompted to provide an absolute path to a directory containing music, a stream hostname, a rate limit timeout, a service password, and optional reverse proxy configuration. If you need help figuring out what values to use, refer to the [Installation Guide](https://github.com/kenellorando/cadence/wiki/Installation#interactive-prompt-guide). \n\nYour radio stack will automatically launch and Cadence's web UI will become accessible at `localhost:8080`.\n\nAfter initial installation, simply run `docker compose pull` to check for container updates, then `docker compose up` to start your station again. Run `./install.sh` again at any time to reconfigure. If you make changes to code locally, run `docker compose up --build` to build and run.\n\n## 🔬 Technical Details\n\n### Architecture\n\u003cdetails\u003e\n\u003csummary\u003e\u003ci\u003eBasic Architecture\u003c/i\u003e\u003c/summary\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/17265041/228726513-e71775c4-dce4-4ef3-b4c2-1bbd37999769.png\" width=\"800\" \u003e\n\n\u003c/details\u003e\n\nIf you're interested in implementation details, [this blog post](https://cuddle.fish/posts/2022-11-08-cadence) does a dive into how a basic *Icecast/Liquidsoap* web radio works and the value Cadence provides.\n\n### API Reference for Custom Clients\nCadence's GitHub Wiki also hosts an [API Reference](https://github.com/kenellorando/cadence/wiki/API-Reference) with complete request/response details, useful for anyone developing custom scripts or clients for their station.\n\n### Discord Server Integration\nCadence installations can be directly integrated with Discord Servers using [CadenceBot](https://github.com/za419/CadenceBot). CadenceBot allows you to control your station through Discord chat and listen to the radio in voice channels! \nYou can quickly demo a CadenceBot by [adding it to your Discord server](https://discord.com/api/oauth2/authorize?client_id=372999377569972224\u0026permissions=274881252352\u0026scope=bot).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenellorando%2Fcadence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkenellorando%2Fcadence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenellorando%2Fcadence/lists"}