|
1 | 1 | # EternalJukebox
|
2 | 2 |
|
3 |
| -The source files for the EternalJukebox, a rehosting of the Infinite Jukebox. |
4 |
| -This repo contains everything you need to host the EternalJukebox on your own server! |
| 3 | +This repository is a fork which fixes bugs because the upstream repo is unmaintained. |
5 | 4 |
|
6 |
| -You can visit the official site [here](https://eternalbox.dev/), in case you want to mess around with it without doing all the hard stuff. |
| 5 | +You can visit the hosted instance of this repository [here](https://eternalbox.floriegl.tech), in case you want to mess around with it without doing all the hard stuff. |
| 6 | + |
| 7 | +The source files for the EternalJukebox, a rehosting of the Infinite Jukebox. |
| 8 | +This repo contains everything you need to host the EternalJukebox on your own server! |
7 | 9 |
|
8 | 10 | # Docker Install
|
9 | 11 |
|
10 |
| -## Prerequesits |
| 12 | +## Prerequisites |
11 | 13 |
|
12 | 14 | You need to install [docker](https://docs.docker.com/engine/install/) and [docker-compose](https://docs.docker.com/compose/install/)
|
13 | 15 |
|
14 |
| -Then, download or clone the repository. |
15 |
| - |
16 | 16 | ## Configuration
|
17 | 17 |
|
18 |
| -To configure, rename `.env.example` to `.env` and change the appropriate values. For advanced configuration edit `envvar_config.yaml`. |
| 18 | +To configure, grab `.env.example` from this repository, rename it to `.env` and change the appropriate values. |
| 19 | + |
| 20 | +You'll also need `envvar_config.yaml`, but only edit this if you want some advanced configuration. |
19 | 21 |
|
20 | 22 | ## Running
|
21 | 23 |
|
22 |
| -To start, run `docker-compose up -d` in the repositories directory. To stop, run `docker-compose down`. |
| 24 | +You can use the following `docker-compose.yaml` as a starting point to run the application without needing a database running, if you want to use a db refer to the main `docker-compose.yaml`. |
| 25 | + |
| 26 | +```yaml |
| 27 | +version: "3" |
| 28 | + |
| 29 | +services: |
| 30 | + main: |
| 31 | + image: daviirodrig/eternaljukebox |
| 32 | + ports: |
| 33 | + - 8080:8080 |
| 34 | + env_file: |
| 35 | + - .env |
| 36 | + volumes: |
| 37 | + - "./envvar_config.yaml:/EternalJukebox/envvar_config.yaml" |
| 38 | +``` |
23 | 39 |
|
24 |
| -If you change anything in the repository, like pulling updates, run `docker-compose build` to re-build the application. |
| 40 | +To start, run `docker compose up -d` in the folder containing `envvar_config.yaml`, `.env` and `docker-compose.yaml`. To stop, run `docker compose down`. |
25 | 41 |
|
26 |
| -If you want to change the port from 8080, edit `docker-compose.yml` line 9, to be `- <your port>:8080` |
| 42 | +If you want to you can upgrade the image by pulling the newest with `docker pull daviirodrig/eternaljukebox` and then restart with `docker compose down` and `docker compose up -d` |
| 43 | + |
| 44 | +If you want to change the port from 8080, edit `docker-compose.yml` port, to be `- <your port>:8080` |
27 | 45 |
|
28 | 46 | # Manual Install
|
29 | 47 |
|
30 | 48 | ## Prerequisites
|
31 | 49 |
|
32 | 50 | ### Java:
|
| 51 | + |
33 | 52 | ##### Windows
|
34 |
| -Download and install Java from https://www.java.com/en/download/ |
| 53 | + |
| 54 | +Download and install Java from https://www.java.com/en/download/ |
| 55 | + |
35 | 56 | ##### Debian-based Linux distributions
|
36 |
| -For Ubuntu or Debian-based distributions execute `sudo apt-get install default-jre` in the terminal |
| 57 | + |
| 58 | +For Ubuntu or Debian-based distributions execute `sudo apt-get install default-jre` in the terminal |
| 59 | + |
37 | 60 | ##### Fedora and CentOS
|
38 |
| -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 |
| 61 | + |
| 62 | +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 |
39 | 63 |
|
40 | 64 | ### Yt-dlp (a more up-to-date fork of Youtube-dl):
|
| 65 | + |
41 | 66 | ##### Windows
|
| 67 | + |
42 | 68 | 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.
|
| 69 | + |
43 | 70 | ##### Linux
|
44 |
| -Use these commands in the terminal to install youtube-dl on Linux: |
45 |
| -`sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp` |
| 71 | + |
| 72 | +Use these commands in the terminal to install youtube-dl on Linux: |
| 73 | +`sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp` |
46 | 74 | `sudo chmod a+rx /usr/local/bin/yt-dlp`
|
47 | 75 |
|
48 | 76 | ### ffmpeg:
|
| 77 | + |
49 | 78 | ##### Windows
|
| 79 | + |
50 | 80 | Download the exe from https://ffmpeg.zeranoe.com/builds/ and place it in `C:\Windows\`, or in another folder on teh PATH.
|
| 81 | + |
51 | 82 | ##### Linux
|
| 83 | + |
52 | 84 | ffmpeg is available to download in most distributions using `sudo apt-get install ffmpeg` or equivalent
|
53 | 85 |
|
54 | 86 | ## Getting the project files:
|
| 87 | + |
55 | 88 | The whole process of obtaining project files is much easier now, as the build process is streamlined through Jenkins.
|
56 | 89 |
|
57 | 90 | The project site is over [here](https://jenkins.abimon.org/job/EternalJukebox/), 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](https://abimon.org/eternal_jukebox)
|
58 | 91 |
|
59 | 92 | ## Configuring
|
| 93 | + |
60 | 94 | 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`)
|
61 | 95 |
|
62 |
| -Now you should go to https://developer.spotify.com/my-applications/ and log in to your spotify account. |
63 |
| -Then click the "Create an app" button and a new page should popup. |
64 |
| -There give it a name and description and click create. |
65 |
| -It should send you to the new app's page, the only thing you need from here is your Client ID and Client Secret |
66 |
| -(Note: Never share these with anyone!) |
| 96 | +Now you should go to https://developer.spotify.com/my-applications/ and log in to your spotify account. |
| 97 | +Then click the "Create an app" button and a new page should popup. |
| 98 | +There give it a name and description and click create. |
| 99 | +It should send you to the new app's page, the only thing you need from here is your Client ID and Client Secret |
| 100 | +(Note: Never share these with anyone!) |
67 | 101 |
|
68 | 102 | You will also need a Youtube Data API key, which you can find about how to obtain [here](https://developers.google.com/youtube/v3/getting-started).
|
69 | 103 |
|
70 | 104 | 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.
|
71 | 105 |
|
72 | 106 | ## Starting the server:
|
73 | 107 |
|
74 |
| -First you need to open the Terminal or Command Prompt. |
75 |
| -Then make sure its running in the folder that your EternalJukebox.jar is in, once again to do this use the `cd` command. |
| 108 | +First you need to open the Terminal or Command Prompt. |
| 109 | +Then make sure its running in the folder that your EternalJukebox.jar is in, once again to do this use the `cd` command. |
76 | 110 | Then execute the jar with `java -jar EternalJukebox.jar`
|
77 | 111 |
|
78 |
| -If everything went right it should say `Listening at http://0.0.0.0:11037` |
| 112 | +If everything went right it should say `Listening at http://0.0.0.0:11037` |
79 | 113 |
|
80 |
| -you should now be able to connect to it with a browser through http://localhost:11037 |
| 114 | +you should now be able to connect to it with a browser through http://localhost:11037 |
81 | 115 |
|
82 |
| -Congrats you did it! |
| 116 | +Congrats you did it! |
83 | 117 |
|
84 | 118 | ## Manually Building
|
| 119 | + |
85 | 120 | This is not recommended unless you're making some modifications, and as such should only be performed by more advanced users
|
86 | 121 |
|
87 |
| -You'll need to obtain a copy of [Gradle](https://gradle.org/install/), likely a [JDK](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html), and [Jekyll](https://jekyllrb.com/). You'll also need the project files in some capacity, be it `git clone` or downloading the archive from GitHub. |
| 122 | +You'll need to obtain a copy of [Gradle](https://gradle.org/install/), likely a [JDK](https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html), and [Jekyll](https://jekyllrb.com/). You'll also need the project files in some capacity, be it `git clone` or downloading the archive from GitHub. |
88 | 123 |
|
89 | 124 | 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`
|
0 commit comments