bootstrap.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/usr/bin/env bash
  2. function command_exists { type "$1" &> /dev/null; }
  3. # install mosh
  4. if command_exists "mosh"; then
  5. echo "Skipping mosh install"
  6. else
  7. echo "Installing mosh"
  8. sudo apt-get install -y mosh
  9. fi
  10. # install python
  11. if command_exists "py"; then
  12. echo "Skipping python install"
  13. else
  14. echo "Installing python"
  15. sudo apt-get install -y python2.7
  16. fi
  17. # install build-essential
  18. if command_exists "build-essential"; then
  19. echo "Skipping build-essential install"
  20. else
  21. echo "Installing build-essential"
  22. sudo apt-get install -y build-essential
  23. fi
  24. # install NodeJS
  25. if command_exists "nodejs"; then
  26. echo "Skipping nodejs install"
  27. else
  28. echo "Installing nodejs"
  29. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  30. sudo apt-get install -y nodejs
  31. fi
  32. # install mongodb
  33. if command_exists "mongo"; then
  34. echo "Skipping mongodb install"
  35. else
  36. echo "Installing mongodb"
  37. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
  38. echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  39. sudo apt-get update
  40. sudo apt-get install -y mongodb-org
  41. fi
  42. # setup a service for mongodb
  43. if [ -f /etc/init/mongodb.conf ]; then
  44. echo "Skipping mongodb service"
  45. else
  46. echo "Setting up mongoDB service"
  47. sudo tee -a /etc/init/mongodb.conf > /dev/null <<EOF
  48. description "Service file for starting / stopping mongodb"
  49. author "Musare Developers"
  50. start on filesystem
  51. stop on shutdown
  52. console log
  53. script
  54. exec mongod
  55. end script
  56. pre-start script
  57. echo "[\`date\`] mongodb starting" >> /var/log/mongodb.log
  58. end script
  59. pre-stop script
  60. rm /var/run/mongodb.pid
  61. echo "[\`date\`] mongodb stopping" >> /var/log/mongodb.log
  62. end script
  63. EOF
  64. fi
  65. # setup a service for Musare
  66. if [ -f /etc/init/musare.conf ]; then
  67. echo "Skipping musare service"
  68. else
  69. echo "Setting up musare service"
  70. sudo tee -a /etc/init/musare.conf > /dev/null <<EOF
  71. description "Service file for starting / stopping musare"
  72. author "Musare Developers"
  73. start on filesystem
  74. stop on shutdown
  75. setgid www-data
  76. console log
  77. script
  78. until mountpoint -q /musare; do sleep 1; done
  79. echo \$\$ > /var/run/musare.pid
  80. cd /musare/backend/
  81. nodemon -L app.js
  82. end script
  83. pre-start script
  84. echo "[\`date\`] musare starting" >> /var/log/musare.log
  85. end script
  86. pre-stop script
  87. rm /var/run/musare.pid
  88. echo "[\`date\`] musare stopping" >> /var/log/musare.log
  89. end script
  90. EOF
  91. fi
  92. # automatically install all of our dependencies
  93. cd /musare
  94. cd backend
  95. npm install --no-bin-links && npm prune
  96. cd ../
  97. cd frontend
  98. npm install --no-bin-links && npm prune
  99. cd ../
  100. sudo npm install -g nodemon
  101. sudo npm install -g webpack
  102. sudo mkdir -p /data/db