|
@@ -1,84 +1,75 @@
|
|
|
-# MusareNode
|
|
|
+
|
|
|
|
|
|
-Based off of the original [Musare](https://github.com/Musare/MusareMeteor), which utilized Meteor.
|
|
|
+# Musare
|
|
|
|
|
|
-MusareNode now uses NodeJS, Express, VueJS and websockets - among other technologies. We have also implemented the ability to host Musare in [Docker Containers](https://www.docker.com/).
|
|
|
+Musare is an open-source collaborative music listening and catalogue curation application. Currently supporting YouTube based content.
|
|
|
|
|
|
-The master branch is available at [musare.com](https://musare.com)
|
|
|
-You can also find the staging branch at [musare.dev](https://musare.dev)
|
|
|
+The master branch is available at [musare.com](https://musare.com).
|
|
|
|
|
|
-<br />
|
|
|
+You can also find the staging branch at [musare.dev](https://musare.dev).
|
|
|
|
|
|
-## Getting Started
|
|
|
+---
|
|
|
+
|
|
|
+## Documentation
|
|
|
- [Installation](./.wiki/Installation.md)
|
|
|
- [Configuration](./.wiki/Configuration.md)
|
|
|
- [Utility Script](./.wiki/Utility_Script.md)
|
|
|
-
|
|
|
-<br />
|
|
|
-
|
|
|
-## Our Stack
|
|
|
-
|
|
|
-- NodeJS
|
|
|
-- MongoDB
|
|
|
-- Redis
|
|
|
-- Nginx (not required)
|
|
|
-- VueJS
|
|
|
-
|
|
|
-### **Frontend**
|
|
|
-
|
|
|
-The frontend is a [vue-cli](https://github.com/vuejs/vue-cli) generated, [vue-loader](https://github.com/vuejs/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.
|
|
|
-
|
|
|
-<br />
|
|
|
-
|
|
|
-## 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`](https://github.com/jonathan-grah/vue-roaster), using the following code:
|
|
|
-
|
|
|
-```js
|
|
|
-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:
|
|
|
-
|
|
|
-```bash
|
|
|
-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
|
|
|
-```
|
|
|
-
|
|
|
-<br />
|
|
|
+- [Technical Overview](./.wiki/Technical_Overview.md)
|
|
|
+- [Backend Commands](./.wiki/Backend_Commands.md)
|
|
|
+- [User Guide](./.wiki/User_Guide.md)
|
|
|
+- [Contributing](./.wiki/Contributing.md)
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Features
|
|
|
+- Playlists
|
|
|
+ - User created playlists
|
|
|
+ - Automatically generated playlists for genres
|
|
|
+ - Privacy configuration
|
|
|
+ - Liked and Disliked songs playlists per user
|
|
|
+ - Bulk import songs from YouTube playlist
|
|
|
+ - Add songs from verified catalogue or YouTube
|
|
|
+ - Ability to download in JSON format
|
|
|
+- Stations
|
|
|
+ - Playlist mode to listen to selected playlists
|
|
|
+ - Party mode to allow other users to add songs to queue
|
|
|
+ - Ability to blacklist playlists to prevent songs within from playing
|
|
|
+ - Themes
|
|
|
+ - Privacy configuration
|
|
|
+ - Favoriting
|
|
|
+ - Official stations controlled by admins (playlist mode only)
|
|
|
+ - User created and controlled stations
|
|
|
+ - Pause playback just in local session
|
|
|
+ - Station-wide pausing by admins or owners
|
|
|
+ - Vote to skip songs
|
|
|
+ - Force skipping song by admins or owners
|
|
|
+ - Add songs to queue from verified catalogue or YouTube (party mode only)
|
|
|
+- Song Management
|
|
|
+ - Verify songs to allow them to be searched for and played in official stations
|
|
|
+ - Hide songs to remove from unverified catalogue
|
|
|
+ - Import Album (WIP) to import songs in bulk
|
|
|
+ - Discogs integration to import metadata
|
|
|
+ - Ability for users to report issues with songs and admins to resolve
|
|
|
+ - Configurable skip duration and song duration to cut intros and outros
|
|
|
+ - Request songs from YouTube in official stations or admin area
|
|
|
+ - Any song added to playlists or stations will be automatically requested
|
|
|
+- Users
|
|
|
+ - Activity logs
|
|
|
+ - Profile page showing public playlists and activity logs
|
|
|
+ - Text or gravatar profile pictures
|
|
|
+ - Email or Github login/registration
|
|
|
+ - Preferences to tailor site usage
|
|
|
+ - Password reset
|
|
|
+ - ActivityWatch integration
|
|
|
+- Punishments
|
|
|
+ - Ban users
|
|
|
+ - Ban IPs
|
|
|
+- News
|
|
|
+ - Admins can add/edit/remove news items
|
|
|
+ - Markdown editor
|
|
|
+
|
|
|
+---
|
|
|
|
|
|
## Contact
|
|
|
|
|
|
-Get in touch with us via email at [core@musare.com](mailto:core@musare.com) or join our [Discord Guild](https://discord.gg/Y5NxYGP).
|
|
|
-
|
|
|
-You can also find us on [Facebook](https://www.facebook.com/MusareMusic) and [Twitter](https://twitter.com/MusareApp).
|
|
|
+Get in touch with us via email at [core@musare.com](mailto:core@musare.com).
|