Skip to content

mavifindsbugs/groovity

Repository files navigation

Groovity - Self Hosted Music Queue for Parties & Events

GitHub stars Docker Made with Love

A simple web application that displays the currently playing Spotify song and allows guests to request songs via QR code. Works best with tablets.

Groovity Showcase

Features

  • Display currently playing Spotify song
  • QR code for easy song requests
  • Search and add songs to queue
  • View song queue

Setup

  1. Install dependencies:

    bun install
  2. Configure Spotify API:

    • Go to Spotify Developer Dashboard
    • Create a new app
    • Copy your Client ID and Client Secret
    • Add redirect URI (you have to use HTTPS, use something like ngrok for easy local development)
  3. Set up environment variables:

    cp env.example .env

    Edit .env and add your Spotify credentials:

    SPOTIFY_CLIENT_ID=your_client_id
    SPOTIFY_CLIENT_SECRET=your_client_secret
    SPOTIFY_REDIRECT_URI=http://localhost:5173/auth/spotify
    
  4. Start the development server:

    bun run dev
  5. Open your browser:

Docker

  1. Copy environment file:

    cp env.example .env
  2. Edit .env with your Spotify credentials:

    SPOTIFY_CLIENT_ID=your_client_id
    SPOTIFY_CLIENT_SECRET=your_client_secret
    SPOTIFY_REDIRECT_URI=http://localhost:3000/auth/spotify
    
  3. Start the application:

    docker-compose up -d
  4. Access at http://localhost:3000

Docker Compose Example

services:
  groovity:
    image: mavifindsbugs/groovity:latest
    ports:
      - "3000:3000"
    env_file:
      - .env
    volumes:
      - groovity_data:/app/data

Nginx

For deployment with Nginx see following exampple:

  1. Nginx configuration in nginx/conf.d/groovity.conf (update server name!)
  2. SSL certificates in nginx/ssl/ directory

Security

Use at your own risk. This software is provided as-is without any warranty.

If you discover a security vulnerability, please report it responsibly by creating an issue on GitHub.