Zonecast
MenuClose

OPEN SOURCE. OPEN POSSIBILITIES.

Your audio. Your infrastructure. Your code.

In-store audio for chain stores, built so you can inspect, adapt, and run it yourself. A practical foundation for teams that want control over their software.

A REAL WORKSPACE, WITH THE SOURCE

One account.
As many moving parts
as your day needs.

Manage multiple locations and audio zones in one self-hosted account. Organize your catalogs, create schedules, target campaigns, and configure announcements using the dashboard or API.

Single tenant describes account isolation. It does not mean you are limited to one store.

Bring your own audio.
Build your own setup.

What the MIT license covers

The core API, dashboard, storage worker, website, and shared packages use the MIT license. You can use and modify those components under its terms. The cloud control service is proprietary and is not part of the open-source distribution.

You remain responsible for your infrastructure, operation, and the audio you upload. Zonecast does not bundle a licensed music catalog or grant music rights.

A clear path to self-hosting.

The self-hosted stack uses Node.js, pnpm, PostgreSQL, FFmpeg, and private S3-compatible object storage. The dashboard connects to your core API. A separate storage worker processes uploads in the background.

  1. Get the open-source distribution. Use the core, dashboard, storage worker, and shared packages. Exclude the proprietary control service.
  2. Configure one account. Set its persistent account ID, database schema, administrator credential, and storage settings. Leave CONTROL_API_URL unset to use standalone mode.
  3. Initialize the core and build the services. Apply the core migrations, then build and run the API, dashboard, and worker.
  4. Connect your player integration. Use device authorization and the documented player sync contract. Review the current playback-engine scope before rollout.
# From a configured open-source checkout
pnpm install --frozen-lockfile
pnpm db:core:migrate
pnpm --filter @retail-audio/api build
pnpm --filter @retail-audio/storage-worker build
pnpm --filter @retail-audio/dashboard build

# Run as separate managed processes
node --env-file=.env services/api/dist/main.js
node --env-file=.env services/storage-worker/dist/main.js
pnpm --filter @retail-audio/dashboard start

Provide the dashboard with API_URL and SESSION_SECRET in its process environment. The commands above assume your database and private object storage are already configured. Deployment settings ship with the open-source distribution.

Open source, launching soon. This page describes the self-hosted architecture and setup. It is not a download link.

Want multiple accounts without multiple deployments?

Zonecast Cloud is the paid option for managed hosting and separate accounts. Keep the same core approach to music and messaging, with less infrastructure to operate.