A modern, open-source, collaborative music app
Owen Diffey ba0e18df82 fix(SongItem): Added clearInterval for formatRequestedAt | 3 years ago | |
---|---|---|
.wiki | 3 years ago | |
backend | 3 years ago | |
frontend | 3 years ago | |
tools | 3 years ago | |
.env.example | 3 years ago | |
.gitattributes | 4 years ago | |
.gitignore | 3 years ago | |
.travis.yml | 3 years ago | |
LICENCE | 8 years ago | |
README.md | 3 years ago | |
docker-compose.yml | 3 years ago | |
fallback.html | 7 years ago | |
musare.sh | 3 years ago | |
windows-start.cmd | 4 years ago |
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
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.
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.
Below is a list of helpful tips / solutions we've collected while developing MusareNode.
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).
You can create Toast notifications using our custom package, toasters
, using the following code:
import Toast from "toasters";
new Toast({ content: "Hi!", persistant: true });
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
Get in touch with us via email at core@musare.com or join our Discord Guild.