feat: add NaviMusic template - #1059
Conversation
…uration support for NaviMusic #1058
built with Refined Cloudflare Pages Action⚡ Cloudflare Pages Deployment
|
There was a problem hiding this comment.
Pull request overview
Adds a new Dokploy blueprint under blueprints/navi-music/ to deploy the NaviMusic Discord music bot, including pinned image version, template env inputs for credentials, and catalog metadata.
Changes:
- Added
docker-compose.ymlfor thenavi-musicservice usinganvian/navi-music:4.2.2and wiring required/optional credentials via env vars. - Added
template.tomlexposing Discord/Spotify/YouTube-related environment fields in Dokploy. - Added
meta.json(and logo asset) to register the template in the catalog.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| blueprints/navi-music/docker-compose.yml | Defines the NaviMusic service with pinned image and env var wiring. |
| blueprints/navi-music/template.toml | Declares Dokploy template env fields for required/optional credentials. |
| blueprints/navi-music/meta.json | Adds catalog metadata (id/name/version/links/tags/logo). |
Comments suppressed due to low confidence (1)
blueprints/navi-music/template.toml:9
- Same issue here: the quoted "# ..." line is a literal env string without '='. Prefer a TOML comment so
config.envremains a list of real KEY=VALUE entries only.
"# Optional YouTube authentication. See NaviMusic's README for how to obtain these values.",
"YOUTUBE_POTOKEN=",
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
blueprints/navi-music/template.toml:8
- The env array includes a quoted string starting with
#("# Optional YouTube authentication..."). Dokploy expectsconfig.enventries to beKEY=VALUEstrings; this quoted comment would be treated as an environment entry without=, which can break parsing/validation or produce an invalid env item.
"# Optional YouTube authentication. See NaviMusic's README for how to obtain these values.",
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (1)
blueprints/navi-music/template.toml:10
YOUTUBE_OAUTH2is treated as mandatory upstream (the app throws on startup when the OAuth token is blank), but this template currently presents the YouTube credentials without indicating thatYOUTUBE_OAUTH2must be provided. With the current defaults (empty string), deployments will crash-loop unless users proactively fill it in.
"SPOTIFY_CLIENT_ID=",
"SPOTIFY_CLIENT_SECRET=",
"YOUTUBE_POTOKEN=",
"YOUTUBE_VISITOR=",
"YOUTUBE_OAUTH2=",
|
Thanks for the contribution! I deploy-tested this template and unfortunately it cannot work as a one-click template in its current state — the container cannot boot with any placeholder configuration, so every fresh deploy ends in a permanent crash-loop. What I tested1. Template defaults (all env vars empty), locally and on a live Dokploy instance: Result: exit 1 at Spring startup: On Dokploy the deploy itself finishes "done", but the container then sits in a 2. Non-empty placeholder for So the only way the container starts at all is with a valid YouTube OAuth2 refresh token (obtained via an interactive device-code flow) — before the Discord token even comes into play. There is no placeholder value a template can ship that lets the app boot. (Side note: the upstream README still says "If Suggested fix (upstream)You already handle a blank
The template itself is otherwise in good shape (per-blueprint meta.json, pinned image, no host ports/container_name, mirrors the upstream compose, no domain needed for a bot), and the project checks out as real and actively maintained — so once the image can boot without third-party credentials, this should be good to re-test and merge. Happy to re-run the deploy test when a fixed version is available. |
4.1.1+ throws at startup unless a valid YouTube OAuth2 refresh token (interactive device-code flow) is provided, so no placeholder config can ever boot those tags. 4.1.0 is the newest release that boots without it. Also wrap the entrypoint so a clean exit (empty/invalid DISCORD_TOKEN is logged, not thrown) idles with instructions in the logs instead of restart-looping; non-zero exits still hit the restart policy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Update: I found a way to make this work as a one-click template without waiting for an upstream release, and pushed the fix to this branch (29388e2). Root cause (re-verified today)
Fix applied
Deploy test (live Dokploy instance, template defaults, all env empty)
@andre-carbajal once upstream ships a release that boots with a blank |
Summary
anvian/navi-music:4.2.2and includes catalog metadata and logo.Validation
node build-scripts/generate-meta.js --checkNotes
NaviMusic is a Discord bot and does not expose an HTTP service, so the template does not define a domain or ports. A live deployment should be tested in a Dokploy instance with valid Discord credentials.