Skip to content

Singularity-Game/Singularity

Repository files navigation

singularity-logo.svg singularity-logo-dark.svg

Introducing Singularity: Your browser's karaoke stage! Gather your friends for a local multiplayer singing experience. No downloads necessary, just pure musical fun in your browser.

Screenshot1 Screenshot3

✨ Features ✨

🎉 Play any Song which is available in the Ultrastar Deluxe File Format

🎉 Local Multiplayer

🎉 Offline Mode for slow or metered Internet Connections

🎉 The Game can be installed as a Progressive Web App

🎉 User Management

Table of Contents

Installation

Docker 🐋

  1. Install Docker
  2. Create a docker-compose.yml File or clone the Repository and use the existing docker-compose.yml
    1. When creating your own docker-compose.yml, paste in the following contents:
       services:
         singularity-db:
           image: mariadb:latest
           command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
           volumes:
             - singularity-db:/var/lib/mysql
           restart: unless-stopped
           environment:
             TZ: UTC+1
             MYSQL_ROOT_PASSWORD: <MYSQL-ROOT-PASSWORD>
             MYSQL_DATABASE: db
             MYSQL_USER: admin
             MYSQL_PASSWORD: <MYSQL-USER-PASSWORD>
        
         singularity:
           image: ghcr.io/singularity-game/singularity:main
           environment:
             APP_URL: <APP-URL>
             AUTHENTICATION_JWT_SECRET: <JWT-SECRET>
             DB_HOST: singularity-db
             DB_PORT: 3306
             DB_USERNAME: admin
             DB_PASSWORD: <MYSQL-USER-PASSWORD>
             DB_DATABASE: db
             SMTP_SECURE: 'true'
             SMTP_HOST: <SMTP-HOST>
             SMTP_USERNAME: <SMTP-USER>
             SMTP_PASSWORD: <SMTP-PASSWORD>
             SMTP_FROM: <SMTP-FROM>
             SONG_DIRECTORY: songs
           volumes:
            - singularity-songs:/usr/src/app/songs
           ports:
            - 3333:3333
          
      volumes:
       singularity-db:
       singularity-songs:
    2. Replace the Placeholders <MYSQL-ROOT-PASSWORD>, <MYSQL-USER-PASSWORD> and <JWT-SECRET> with secure Passwords!
    3. Replace the Placeholder <APP-URL> with the URL your app will be running on. For example http://localhost
    4. Replace the Placeholders <SMTP-HOST>, <SMTP-USER>, <SMTP-PASSWORD> and <SMTP-FROM> with the credentials from your SMTP Server. Without an SMTP Server, Singularity will be unable to send emails and you will be unable to create new users.
  3. Run the command docker compose up
  4. Singularity will now be running on <APP-URL>:3333.
  5. You can login to Singularity with the Username: admin and the Password: admin.

Upload Songs

You need Ultrastar Files to play Singularity. You can download Ultrastar TXT Files, Audio Files, Video Files and Cover Files from the following Song Databases:

You can upload songs to Singularity under Settings > Songs > + New Song

Screenshot2

Once Uploaded the Song will be playable!

Credits