Getting started

First run#

The first successful startup records that owner setup is required without writing a credential-bearing URL to request or application logs. Print the URL only in a private operator shell and treat it as a credential.

Claim the owner account#

  1. Confirm /livez succeeds on loopback and /readyz reports ready only after Discord and every approved server are connected.

  2. Generate a one-time URL from a private operator shell:

    docker compose -f compose.release.yaml run --rm vtune node dist/scripts/setup-token.js
    
  3. Open the printed setup URL in the browser that holds your Discord session.

  4. Complete Discord OAuth and accept the instance terms.

  5. Confirm the dashboard identifies you as the instance owner.

The setup URL expires after SETUP_TOKEN_TTL_HOURS (24 hours by default). If it expires or is lost before use, generate another from the pinned release:

docker compose -f compose.release.yaml run --rm vtune node dist/scripts/setup-token.js

Complete the instance#

  • Confirm the bot is present in every ALLOWED_GUILD_IDS server and register its commands with the published-container command in Discord application setup.
  • Select an approved Discord server and voice channel.
  • Configure the DJ role and default volume.
  • Invite members deliberately; there is no public registration.
  • Create a group, upload a small test file, share it, and verify playback.
  • Create and verify an operator backup, then copy it off the application host.

Acceptance check#

Test sign-in, upload conversion, a private track, a shared track, queue control, bot reconnect, and a verified restore into a disposable data volume before inviting a wider group.