Singularity-Game / Singularity

✨ A Web-Based Singing Game! ✨
GNU Affero General Public License v3.0
8 stars 0 forks source link
game karaoke music sing

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