install.sh 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/bin/bash
  2. USER=zammad
  3. REPOURL=git@github.com:martini/zammad.git
  4. DBNAME=zammad
  5. DBUSER=zammad
  6. function check_requirements() {
  7. items="git useradd sudo getent curl bash gcc make svn apg"
  8. for item in $items
  9. do
  10. which $item > /dev/null
  11. if [ $? -ne 0 ]; then
  12. echo Please install $item and start this script again.
  13. exit 1
  14. fi
  15. done
  16. }
  17. check_requirements
  18. #
  19. # @TODO Should the mysql user be created?
  20. # @TODO Install Elasticsearch?
  21. # @TODO Should the script create a VirtualHost or a config file to include for apache/nginx?
  22. #
  23. #
  24. # Check for zammad user and create if needed
  25. #
  26. id -u "${USER}" > /dev/null 2>&1
  27. if [ $? -ne 0 ]; then
  28. useradd -c 'user running zammad' -m -s /bin/bash $USER
  29. fi
  30. #
  31. # find the user's homedir and primary group name
  32. #
  33. HOMEDIR=$(getent passwd $USER | cut -d: -f 6)
  34. GROUP=$(id -gn $USER)
  35. cd "${HOMEDIR}"
  36. sudo -u "${USER}" -H git clone $REPOURL zammad
  37. cd zammad
  38. LATEST=$(git tag --list|sort|tail -1)
  39. git checkout tags/"${LATEST}"
  40. chown -R "${USER}":"${GROUP}" .
  41. #
  42. # RVM
  43. #
  44. sudo -u "${USER}" -H bash -c 'curl -sSL https://get.rvm.io | bash -s stable'
  45. #
  46. # install Ruby
  47. #
  48. sudo -u "${USER}" -H bash -l -c 'rvm install 2.1.2'
  49. sudo -u "${USER}" -H bash -l -c 'rvm alias create default 2.1.2'
  50. #
  51. # after rvm requirements
  52. # Installing required packages: gawk, g++, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev................
  53. sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && gem install rails --no-ri --no-rdoc'
  54. sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && bundle install'
  55. DBPASS=$(apg -x8|head -1)
  56. echo Password $DBPASS
  57. mysql -e "GRANT ALL ON ${DBNAME}.* to '${DBUSER}'@'localhost' IDENTIFIED BY '$DBPASS'";
  58. sudo -u $USER -H cp ${HOMEDIR}/zammad/config/database.yml.dist ${HOMEDIR}/zammad/config/database.yml
  59. sudo -u $USER -H sed -i s/some_pass/${DBPASS}/g ${HOMEDIR}/zammad/config/database.yml
  60. sudo -u $USER -H sed -i s/some_user/${DBUSER}/g ${HOMEDIR}/zammad/config/database.yml
  61. sudo -u $USER -H sed -i s/zammad_prod/zammad/g ${HOMEDIR}/zammad/config/database.yml
  62. #
  63. #
  64. #
  65. sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake db:create'
  66. sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake db:migrate'
  67. sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake db:seed'
  68. sudo -u "${USER}" -H bash -l -c 'cd ~/zammad && RAILS_ENV=production rake assets:precompile'