EternalJukebox
The source files for the EternalJukebox, a rehosting of the Infinite Jukebox.
This repo contains everything you need to host the EternalJukebox on your own server!
You can visit the official site here, in case you want to mess around with it without doing all the hard stuff.
Docker Install
Prerequesits
You need to install docker and docker-compose
Then, download or clone the repository.
Configuration
To configure, rename .env.example
to .env
and change the appropriate values. For advanced configuration edit envvar_config.yaml
.
Running
To start, run docker-compose up -d
in the repositories directory. To stop, run docker-compose down
.
If you change anything in the repository, like pulling updates, run docker-compose build
to re-build the application.
If you want to change the port from 8080, edit docker-compose.yml
line 9, to be - <your port>:8080
Manual Install
Prerequisites
Java:
Windows
Download and install Java from https://www.java.com/en/download/
Debian-based Linux distributions
For Ubuntu or Debian-based distributions execute sudo apt-get install default-jre
in the terminal
Fedora and CentOS
There is a tutorial for installing java on Fedora and CentOS at https://www.digitalocean.com/community/tutorials/how-to-install-java-on-centos-and-fedora
Yt-dlp (a more up-to-date fork of Youtube-dl):
Windows
Download the .exe at https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe and place it in C:\Windows\
, or in another folder on the PATH.
Linux
Use these commands in the terminal to install youtube-dl on Linux:
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp
ffmpeg:
Windows
Download the exe from https://ffmpeg.zeranoe.com/builds/ and place it in C:\Windows\
, or in another folder on teh PATH.
Linux
ffmpeg is available to download in most distributions using sudo apt-get install ffmpeg
or equivalent
Getting the project files:
The whole process of obtaining project files is much easier now, as the build process is streamlined through Jenkins.
The project site is over here, and contains the individual files to download, or an all-in-one zip for all the files. Alternatively, the files can be found over at a permanent server here
Configuring
First thing to do is create a new file called either config.yaml
or config.json
(YAML tends to be easier to write, but takes up slightly more space), then open it with notepad/notepad++ on Windows and whatever text editor you like on Linux (for example nano: nano config.json
)
Now you should go to https://developer.spotify.com/my-applications/ and log in to your spotify account.
Then click the "Create an app" button and a new page should popup.
There give it a name and description and click create.
It should send you to the new app's page, the only thing you need from here is your Client ID and Client Secret
(Note: Never share these with anyone!)
You will also need a Youtube Data API key, which you can find about how to obtain here.
There are a variety of config options (documentation coming soon) that allow most portions of the EternalJukebox to be configured, and these can be entered here.
Starting the server:
First you need to open the Terminal or Command Prompt.
Then make sure its running in the folder that your EternalJukebox.jar is in, once again to do this use the cd
command.
Then execute the jar with java -jar EternalJukebox.jar
If everything went right it should say Listening at http://0.0.0.0:11037
you should now be able to connect to it with a browser through http://localhost:11037
Congrats you did it!
Manually Building
This is not recommended unless you're making some modifications, and as such should only be performed by more advanced users
You'll need to obtain a copy of Gradle, likely a JDK, and Jekyll. You'll also need the project files in some capacity, be it git clone
or downloading the archive from GitHub.
From there, building in Gradle is simple; just run gradle clean shadowJar
from the project file directory. That should produce a jar file in build/libs
that will work for you. In addition, you'll need to build the Jekyll webpages, which can be done by running jekyll build --source _web --destination web