|
@@ -1,9 +1,18 @@
|
|
|
+
|
|
|
# MusareNode
|
|
|
|
|
|
-This is a rewrite of the original [Musare](https://github.com/Musare/MusareMeteor)
|
|
|
-in NodeJS, Express, SocketIO and VueJS. Everything is ran in it's own docker container, but you can also run it without Docker.
|
|
|
+Based off of the original [Musare](https://github.com/Musare/MusareMeteor), which utilized Meteor.
|
|
|
+
|
|
|
+MusareNode now uses NodeJS, Express, SocketIO and VueJS - among other technologies. We have also implemented the ability to host Musare in [Docker Containers](https://www.docker.com/).
|
|
|
+
|
|
|
+The master branch is available at [musare.com](https://musare.com)
|
|
|
+You can also find the staging branch at [musare.dev](https://musare.dev)
|
|
|
+
|
|
|
+## Contact
|
|
|
|
|
|
-The site is available at [https://musare.com](https://musare.com).
|
|
|
+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).
|
|
|
|
|
|
### Our Stack
|
|
|
|
|
@@ -15,32 +24,31 @@ The site is available at [https://musare.com](https://musare.com).
|
|
|
|
|
|
### 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
|
|
|
-also serves as a load balancer for requests going to the backend.
|
|
|
+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. Each backend
|
|
|
-server handles a group of SocketIO connections. 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.
|
|
|
+The backend is a scalable NodeJS / Redis / MongoDB app. Each backend server handles a group of SocketIO connections. 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 have 1 backend, 1 MongoDB server and 1 Redis server running for production, though it is relatively easy to expand.
|
|
|
+We currently only utilize 1 backend, 1 MongoDB server and 1 Redis server running for production, though it is relatively easy to expand.
|
|
|
|
|
|
## Requirements
|
|
|
-
|
|
|
-Option 1: (not recommended for Windows users)
|
|
|
+Installing with Docker: (not recommended for Windows users)
|
|
|
|
|
|
- [Docker](https://www.docker.com/)
|
|
|
+- [NodeJS](https://nodejs.org/en/download/)
|
|
|
+ _ nodemon: `yarn global add nodemon`
|
|
|
+ _ [node-gyp](https://github.com/nodejs/node-gyp#installation): `yarn global add node-gyp`
|
|
|
+- [Yarn (Windows)](https://yarnpkg.com/lang/en/docs/install/#windows-stable) [Yarn (Unix)](https://yarnpkg.com/lang/en/docs/install/#debian-stable) ([npm](https://www.npmjs.com/) can also be used)
|
|
|
+- [MongoDB](https://www.mongodb.com/download-center) Currently version 4.0
|
|
|
+- [Redis (Windows)](https://github.com/MSOpenTech/redis/releases/tag/win-3.2.100) [Redis (Unix)](https://redis.io/download)
|
|
|
|
|
|
-Option 2:
|
|
|
+Standard Installation:
|
|
|
|
|
|
- [NodeJS](https://nodejs.org/en/download/)
|
|
|
_ nodemon: `yarn global add nodemon`
|
|
|
_ [node-gyp](https://github.com/nodejs/node-gyp#installation): `yarn global add node-gyp`
|
|
|
+- [Yarn (Windows)](https://yarnpkg.com/lang/en/docs/install/#windows-stable) [Yarn (Unix)](https://yarnpkg.com/lang/en/docs/install/#debian-stable) ([npm](https://www.npmjs.com/) can also be used)
|
|
|
- [MongoDB](https://www.mongodb.com/download-center) Currently version 4.0
|
|
|
- [Redis (Windows)](https://github.com/MSOpenTech/redis/releases/tag/win-3.2.100) [Redis (Unix)](https://redis.io/download)
|
|
|
|
|
@@ -64,7 +72,6 @@ The `serverPort` should be the port where the backend will listen on, usually `8
|
|
|
The `apis.youtube.key` value can be obtained by setting up a [YouTube API Key](https://developers.google.com/youtube/v3/getting-started). You need to use the YouTube Data API v3, and create an API key.
|
|
|
The `apis.recaptcha.secret` value can be obtained by setting up a [ReCaptcha Site (v3)](https://www.google.com/recaptcha/admin).
|
|
|
The `apis.github` values can be obtained by setting up a [GitHub OAuth Application](https://github.com/settings/developers). You need to fill in some values to create the OAuth application. The homepage is the homepage of frontend. The authorization callback url is the backend url with `/auth/github/authorize/callback` added at the end. For example `http://localhost:8080/auth/github/authorize/callback`.
|
|
|
-_Discord is currently unsupported_
|
|
|
The `apis.discord.token` is the token for the Discord bot.
|
|
|
The `apis.discord.loggingServer` is the Discord logging server id.
|
|
|
The `apis.discord.loggingChannel` is the Discord logging channel id.
|
|
@@ -86,7 +93,7 @@ The `cookie.secure` value should be `true` for SSL connections, and `false` for
|
|
|
|
|
|
Now you have different paths here.
|
|
|
|
|
|
-### Docker
|
|
|
+### Installing with Docker
|
|
|
|
|
|
_Configuration_
|
|
|
|
|
@@ -147,7 +154,7 @@ To configure docker simply `cp .env.template .env` and configure the .env file t
|
|
|
|
|
|
- Docker ToolBox: The output of `docker-machine ip default`
|
|
|
|
|
|
-### Non-docker
|
|
|
+### Standard Installation
|
|
|
|
|
|
Steps 1-4 are things you only have to do once. The steps to start servers follow.
|
|
|
|
|
@@ -295,10 +302,3 @@ docker-compose exec mongo mongo admin
|
|
|
use musare
|
|
|
db.auth("MUSAREDBUSER","MUSAREDBPASSWORD")
|
|
|
db.users.update({username: "USERNAME"}, {$set: {role: "admin"}})
|
|
|
-```
|
|
|
-
|
|
|
-## Contact
|
|
|
-
|
|
|
-There are multiple ways to contact us. You can send an email to [core@musare.com](core@musare.com).
|
|
|
-
|
|
|
-You can also message us on [Facebook](https://www.facebook.com/MusareMusic), [Twitter](https://twitter.com/MusareApp) or on our [Discord](https://discord.gg/Y5NxYGP).
|