Build and Test / Build and Test (push) Canceled after 1m24s
Fork of purnell569/MusicBot 0.7.1 (JMusicBot), kept here as a reliable copy with a container image built and served from this Gitea. - README retitled "$uicide Music Bot"; lineage table, Gitea image, Unraid and release instructions. Nothing under src/ changes. - Dockerfile: Maven stage on $BUILDPLATFORM (JAR is arch-neutral, so no QEMU for the build), OCI labels point at this repo and record commit and version via GIT_SHA/VERSION build args. - docker/entrypoint.sh: check the data dir is writable up front (the bot's own error for that is a misleading "another instance is running"), and on a missing config.txt run the bot's generate-config and stop with instructions instead of prompting on a console that does not exist. - deploy/unraid/musicbot.xml: Unraid template, --user 99:100 default. - .gitea/workflows/build-and-test.yml: mvn verify + docker build on push; its presence makes Gitea ignore the GitHub-only workflows in .github/. - scripts/build-and-publish-unraid.sh + docs/PUBLISHING.md: release runbook (keychain-safe registry push, release with zipped JAR). - docker-compose.example.yml points at the Gitea image. Upstream's v0.7.1 tag is preserved as upstream/v0.7.1; this repository's own release tag v0.7.1 is on this commit. Co-Authored-By: Claude Fable 5.1 <[email protected]>
75 lines
3.7 KiB
XML
75 lines
3.7 KiB
XML
<?xml version="1.0"?>
|
|
<!--
|
|
Unraid Docker template for $uicide Music Bot.
|
|
|
|
Drop this into /boot/config/plugins/dockerMan/templates-user/ on the Unraid
|
|
box, or add the repo as a template repository under Docker → Add Container.
|
|
|
|
Bridge networking is correct: the bot only makes outbound connections (to
|
|
Discord and to the audio sources) and listens on nothing, so no ports are
|
|
published and there is no web UI.
|
|
-->
|
|
<Container version="2">
|
|
<Name>MusicBot</Name>
|
|
<Repository>gitea.milesward.dev/mward4/musicbot:latest</Repository>
|
|
<Registry>https://gitea.milesward.dev/mward4/-/packages/container/musicbot</Registry>
|
|
<Network>bridge</Network>
|
|
<MyIP/>
|
|
<Shell>sh</Shell>
|
|
<Privileged>false</Privileged>
|
|
<Support>https://gitea.milesward.dev/mward4/MusicBot/issues</Support>
|
|
<Project>https://gitea.milesward.dev/mward4/MusicBot</Project>
|
|
<Overview>
|
|
$uicide Music Bot - a self-hosted Discord music bot with a clean interface.
|
|
A fork of JMusicBot (jagrosh, maintained by arif-banai, YouTube playback
|
|
fixed by purnell569), built from source and served from this Gitea.
|
|
|
|
FIRST RUN: start the container once with an empty data folder. It writes
|
|
a default config.txt there and stops. Edit that file - in the discord { }
|
|
block set token (your Discord bot token) and owner (your Discord user ID)
|
|
- then start the container again. Playlists/ and serversettings.json live
|
|
in the same folder. If the log says "/musicbot is not writable by uid 99",
|
|
run chown -R 99:100 /mnt/user/appdata/musicbot from the Unraid terminal
|
|
and start again.
|
|
|
|
DISCORD SIDE: create an application at discord.com/developers, add a Bot,
|
|
and under Privileged Gateway Intents turn ON "Message Content Intent". The
|
|
bot will not see commands without it. Invite it to your server with the
|
|
bot scope.
|
|
|
|
PERMISSIONS: Extra Parameters runs the bot as Unraid's usual nobody:users
|
|
(99:100), so a freshly created appdata folder just works with no chown
|
|
step. Remove the --user flag to run as the image's own non-root user
|
|
(10001) instead; then chown -R 10001:10001 the data folder once.
|
|
|
|
VERSIONS: :latest is the newest release. Every release also has its own
|
|
image tag (e.g. 0.7.1) that can be pinned instead; the Releases page on
|
|
Gitea lists them with notes. Java 25 and glibc 2.38+ are inside the image,
|
|
nothing to install on the host.
|
|
</Overview>
|
|
<Category>MediaApp:Music Tools:</Category>
|
|
<WebUI/>
|
|
<TemplateURL>https://gitea.milesward.dev/mward4/MusicBot/raw/branch/main/deploy/unraid/musicbot.xml</TemplateURL>
|
|
<Icon>https://i.imgur.com/zrE80HY.png</Icon>
|
|
<ExtraParams>--user 99:100</ExtraParams>
|
|
<PostArgs/>
|
|
<CPUset/>
|
|
<DateInstalled/>
|
|
<DonateText/>
|
|
<DonateLink/>
|
|
<Requires>
|
|
A Discord bot token (discord.com/developers) with the Message Content
|
|
Intent enabled, and your Discord user ID for the owner setting. Both go
|
|
into config.txt in the data folder after the first run.
|
|
</Requires>
|
|
<Config Name="Data" Target="/musicbot"
|
|
Default="/mnt/user/appdata/musicbot"
|
|
Mode="rw"
|
|
Description="config.txt, serversettings.json and Playlists/. Generated on first run; edit config.txt here to add your bot token."
|
|
Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/musicbot</Config>
|
|
<Config Name="JAVA_OPTS" Target="JAVA_OPTS" Default="-XX:+UseZGC -XX:+AlwaysPreTouch"
|
|
Mode=""
|
|
Description="JVM flags. The default is ZGC with pre-touched memory for stutter-free audio. Add -Xms/-Xmx to cap the heap, e.g. -Xms256m -Xmx512m -XX:+UseZGC -XX:+AlwaysPreTouch"
|
|
Type="Variable" Display="advanced" Required="false" Mask="false">-XX:+UseZGC -XX:+AlwaysPreTouch</Config>
|
|
</Container>
|