A modern, open-source, collaborative music app

Kristian Vos 4f71f419c6 Merge branch 'odiffey-owen-party-playlist-fix' into polishing 3 năm trước cách đây
.wiki 1fe7f06e3e refactor: changed frontend config naming due to devServer config changes 3 năm trước cách đây
backend d79092f618 Merge branch 'owen-reduce-limits' of https://github.com/odiffey/MusareNode into odiffey-owen-reduce-limits 3 năm trước cách đây
frontend 9291920353 Merge branch 'owen-party-playlist-fix' of https://github.com/odiffey/MusareNode into odiffey-owen-party-playlist-fix 3 năm trước cách đây
tools a50df37c68 fix(setup-mongo): fixed issue with port being dynamic when it should be static 3 năm trước cách đây
.env.example 8fb18c9986 musare.sh improvements and Configuration doc update for .env 3 năm trước cách đây
.gitattributes a47f6fff6d fix: some sh files line endings to LF 4 năm trước cách đây
.gitignore 1d0d7faa9e Now defaulting to serve backend from /backend when using docker 3 năm trước cách đây
.travis.yml 77fea86931 Disabled backend CI eslint check until proper backend linting is implemented 3 năm trước cách đây
LICENCE 31d9626d16 Lol, this blew my mind.. http://www.gcse.com/english/licence.htm 8 năm trước cách đây
README.md 86118b1a08 Config and Installation docs improvements 3 năm trước cách đây
docker-compose.yml 3b66fe6bb4 Started on Manage Station modal 3 năm trước cách đây
fallback.html dc6070e00f ITS CHRISTMASSSSS!! 7 năm trước cách đây
musare.sh 40b304089b musare.sh shellcheck and Configuration doc .env improvements 3 năm trước cách đây
windows-start.cmd 20052878b1 chore: removed yarn 4 năm trước cách đây

README.md

MusareNode

Based off of the original Musare, which utilized Meteor.

MusareNode now uses NodeJS, Express, VueJS and websockets - among other technologies. We have also implemented the ability to host Musare in Docker Containers.

The master branch is available at musare.com You can also find the staging branch at musare.dev


Getting Started


Our Stack

  • NodeJS
  • MongoDB
  • Redis
  • Nginx (not required)
  • VueJS

Frontend

The frontend is a vue-cli generated, vue-loader single page app, that's served over Nginx or Express. The Nginx server not only serves the frontend, but can also serve as a load balancer for requests going to the backend.

Backend

The backend is a scalable NodeJS / Redis / MongoDB app. User sessions are stored in a central Redis server. All data is stored in a central MongoDB server. The Redis and MongoDB servers are replicated to several secondary nodes, which can become the primary node if the current primary node goes down.

We currently only utilize 1 backend, 1 MongoDB server and 1 Redis server running for production, though it is relatively easy to expand.


Extra

Below is a list of helpful tips / solutions we've collected while developing MusareNode.

Fixing the "couldn't connect to docker daemon" error

Some people have had issues while trying to execute the docker-compose command. To fix this, you will have to run docker-machine env default. This command will print various variables. At the bottom, it will say something similar to @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i. Run this command in your shell. You will have to do this command for every shell you want to run docker-compose in (every session).

Calling Toasts

You can create Toast notifications using our custom package, toasters, using the following code:

import Toast from "toasters";
new Toast({ content: "Hi!", persistant: true });

Set user role

When setting up you will need to grant yourself the admin role, using the following commands:

docker-compose exec mongo mongo admin

use musare
db.auth("MUSAREDBUSER","MUSAREDBPASSWORD")
db.users.update({username: "USERNAME"}, {$set: {role: "admin"}})

OR use the Linux script:

tools/linux/makeUserAdmin.sh YOUR_MUSARE_USERNAME YOUR_MONGO_MUSARE_PASSWORD


Contact

Get in touch with us via email at core@musare.com or join our Discord Guild.

You can also find us on Facebook and Twitter.