My personal playlist manager. https://boombox.gbasil.dev
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Basil 8ab38f1d14 Added a button to fetch video info if not filled 3 months ago
data/images 🚀 1.0.0-beta release 7 months ago
prisma 🐛 Fixed Docker 7 months ago
public 🚀 1.0.0-beta release 7 months ago
src Added a button to fetch video info if not filled 3 months ago
.dockerignore 🚀 1.0.0-beta release 7 months ago
.env.example 🔥 Removed BOOMBOX_MALOJA_REQUIRE_AUTH ENV var 6 months ago
.eslintrc.json 🚀 1.0.0-beta release 7 months ago
.gitignore 🐛 Fixed next/link-related errors on home page 6 months ago
Dockerfile 🔥 Removed BOOMBOX_MALOJA_REQUIRE_AUTH ENV var 6 months ago
LICENSE 🎉 Initial commit 8 months ago
README.md 🚀 1.0.0-beta release 7 months ago
docker-compose.example.yml 🔥 Removed BOOMBOX_MALOJA_REQUIRE_AUTH ENV var 6 months ago
next-env.d.ts 🎉 Initial commit 8 months ago
next.config.mjs 🚀 1.0.0-beta release 7 months ago
package.json Add sharing & opening in YouTube 3 months ago
postcss.config.cjs 🎉 Initial commit 8 months ago
tailwind.config.cjs 🚧 Added Maloja integration, general progress 8 months ago
tsconfig.json 🎉 Initial commit 8 months ago
yarn.lock Add sharing & opening in YouTube 3 months ago

README.md

Boombox

My personal playlist manager. It's open source (GPL-3, don't try anything funny), but please don't rebrand it or claim it as your own.

To quote myself, as per the text on the homepage of the website:

This is my eclectic music playlist. I enjoy listening to music a lot, so I created a playlist page on my website. As time went on, I started running into problems, like the deletion of videos, the inability to fix them with great ease, and managing the mess that resulted from my first foray into both React and planned out web design. Ive been meaning to craft a separate music-centric website for a while, and inspired by the likes of osu!, Paco, and Celeste, this is the result.

Notes

  • When adding the authors of a song, type their names separated by ", "
  • Boombox uses Logto for authentication and Maloja for scrobbling
  • Larger thumnails won't upload due to a 3MB Next.js API route limit, as downsizing the image on the frontend isn't implemented yet

Running

Boombox can be run as a Next.js app, or under Docker. Pick your poison.

Next.js

  1. Install Node.js and Yarn and clone the repo.
  2. Set up instances of Logto and Maloja.
  3. Copy .env.example to .env, and fill in the values as instructed.
  4. Make sure you add a redirect URI in Logto (<URL to Boombox>/api/logto/sign-in-callback).
  5. Run the following commands in a terminal in this directory to start it:
    # Install dependencies
    yarn
    # Build the Next.js app
    yarn build
    # Run the Next.js server
    yarn start
    

Docker

The Docker Compose configuration will run Boombox itself, as well as Maloja with Logto and Maloja.

  1. Install Docker and clone the repo.
  2. Copy docker-compose.example.yml to docker-compose.yml, and change the environment variables that you currently can, like the domain-related ones.
  3. Run the following commands in a terminal in this directory to start it:
    # Start the Docker containers.
    docker compose up
    
  4. Go to Logto and Maloja and update the docker-compose.yml file with the proper environment variables, then stop the the containers (CTRL+C). Make sure you add a redirect URI in Logto (<URL to Boombox>/api/logto/sign-in-callback).
  5. Start them again by using the same command. You can append the -d flag to have it run in the background this time.

Developing

Follow the instructions for running on Next.js, but instead of running yarn build and yarn start, run yarn dev.