Installation.md 5.4 KB

Installation

Musare can be installed with Docker (recommended) or without, guides for both installations can be found below.

Docker

Dependencies

Instructions

  1. git clone https://github.com/Musare/MusareNode.git
  2. cd MusareNode
  3. cp backend/config/template.json backend/config/default.json and configure as per Configuration
  4. cp frontend/dist/config/template.json frontend/dist/config/default.json and configure as per Configuration
  5. cp .env.example .env and configure as per Configuration.
  6. ./musare.sh build
  7. ./musare.sh start
  8. (optional) Register a new user on the website and grant the admin role by running ./musare.sh admin add USERNAME.

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

Windows Only

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).


Non-Docker

Dependencies

Instructions

  1. git clone https://github.com/Musare/MusareNode.git
  2. cd MusareNode
  3. Setup MongoDB
  4. Setup Redis
  5. cp backend/config/template.json backend/config/default.json and configure as per Configuration
  6. cp frontend/dist/config/template.json frontend/dist/config/default.json and configure as per Configuration
  7. Start services
    • Linux
      1. Execute systemctl start redis mongod
      2. Execute cd frontend && npm run dev and cd backend && npm run dev separately.
    • Windows
      • Automatic Run windows-start.cmd or just double click the windows-start.cmd file and all servers will automatically start up.
      • Manual
        1. Run startRedis.cmd and startMongo.cmd to start Redis and Mongo.
        2. Execute cd frontend && npm run dev and cd backend && npm run dev separately.
  8. (optional) Register a new user on the website and grant the admin role by running the following in the mongodb shell.

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

Setting up MongoDB

  • Windows Only

    1. In the root directory, create a folder called .database
    2. Create a file called startMongo.cmd in the root directory with the contents:

      "C:\Program Files\MongoDB\Server\4.0\bin\mongod.exe" --dbpath "C:\Path\To\MusareNode\.database"

      Make sure to adjust your paths accordingly.

    3. Start the database by executing the script startMongo.cmd you just made

  • Set up the MongoDB database itself

    1. Start MongoDB
      • Linux Execute systemctl start mongod
      • Windows Execute the startMongo.cmd script you just made
    2. Connect to Mongo from a command prompt

      mongo admin

    3. Create an admin user

      db.createUser({user: 'admin', pwd: 'PASSWORD_HERE', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]})

    4. Connect to the Musare database

      use musare

    5. Create the "musare" user

      db.createUser({user: 'musare', pwd: 'OTHER_PASSWORD_HERE', roles: [{role: 'readWrite', db: 'musare'}]})

    6. Exit

      exit

    7. Add the authentication

      • Linux
        1. Add auth=true to /etc/mongod.conf
        2. Restart MongoDB systemctl restart mongod
      • Windows
        1. In startMongo.cmd add --auth at the end of the first line
        2. Restart MongoDB

Setting up Redis

  • Windows

    1. In the folder where you installed Redis, edit the redis.windows.conf file

      1. In there, look for the property notify-keyspace-events.
      2. Make sure that property is uncommented and has the value Ex.

        It should look like notify-keyspace-events Ex when done.

    2. Create a file called startRedis.cmd in the main folder with the contents:

      "C:\Path\To\Redis\redis-server.exe" "C:\Path\To\Redis\redis.windows.conf" "--requirepass" "PASSWORD"

      And again, make sure that the paths lead to the proper config and executable. Replace PASSWORD with your Redis password.

  • Linux

    1. In /etc/redis/redis.conf
      1. Uncomment notify-keyspace-events and set its value to Ex.
      2. Uncomment requirepass foobared and replace foobared with your Redis password.
    2. Restart Redis systemctl restart redis