- Play music from YouTube, Soundcloud
- Search query or URL
- Supports playlists
- Multi server support
- Simple web interface
- Edit queue (i.e. drag songs) from the web interface
poggersbotv2_web.mp4
poggersbotv2_text.mp4
- Install docker https://docs.docker.com/get-docker/
- Clone this repository
git clone https://github.com/zigzag1001/poggersbotv2 && cd poggersbotv2- Create file named
.envinside this repo and copy these contents into it:
DISCORD_TOKEN = <your discord bot token>
BASE_URL = http://example.com:7777/
PORT = 7777
PREFIX = r;
PROXY = 0.0.0.0:0000 # Optional, helps with youtube blocking ip's-
The discord token is required, url and port just make the web interface work. If you already have a Discord app skip to 7
-
To create a Discord app and get the token:
a. Create app -> https://discord.com/developers/applications?new_application=true
b. In the left menu click
Bot, Token will be below the bot's usernamec. If hidden, click reset token, it will show up
-
To get invite link:
a. In the left menu click
OAuth2->URL generatorb. For scopes select
bot, for permissions select the following:Read Messages/View Channels,Send Messages,Embed Links,Read Message History,Add Reactions,Connect,Speak -
Build and run the docker containers using compose (you might need to run as sudo)
docker compose upAfter a few minutes you should see the bot indicate that it is running
Notes:
- BASE_URL is the url where the bot is hosted, for example http://example.com, can also be an ip like http://192.168.1.1
- If you are not using 80 or 443 for your port, you need to add the port to BASE_URL, for example http://example.com:7777
- For other people to access the web interface, you need to port forward the port you set in .env
- If using a reverse proxy, with subpath, http://example.com/subpath, /subpath will be taken as the base
Caddy
handle_path /poggersbotv2* {
reverse_proxy poggersweb:<PORT>
}Make sure that docker poggersweb and your reverse proxy can communicate (i.e. same network)
Bot uses prefix r;, for example r;play <query>
Use r;help to get a list of commands
Some commands also have shorter aliases
r;play - r;p
r;queue - r;q
r;shuffle - r;sh
r;skip - r;s
r;loop - r;l
r;web - r;w
For play you can enter either search, url or playlist url
For shuffle you can optionally enter a playlist url, it will shuffle the playlist before adding to queue
For queue you can optionally enter a number, it will show that many songs from the queue, default is 10
- In general, the project is a bit wonky, I used it to learn more SQL, HTML/JS/CSS and in general about how to connect a web interface to another thing

