Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

132 rindas
4.2KB

  1. #!/bin/bash
  2. DEFAULT_VOLUMES=/media/volumes
  3. PWD_GEN='< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;'
  4. #PWD_GEN='openssl rand -base64 20'
  5. DEFAULT_LDAP_MAIL_UID='mail'
  6. DEFAULT_LDAP_NEXTCLOUD_UID='nextcloud'
  7. read -p "Main domain: " domain
  8. while [[ ! $domain =~ ^.*\.[a-z]{2,}$ ]]; do
  9. read -p "Please Enter a valid domain: " domain
  10. done
  11. # TODO: more than 1 level domains
  12. org=`echo $domain | cut -f1 -d'.'`
  13. ext=`echo $domain | cut -f2 -d'.'`
  14. read -p "Volumes path ($DEFAULT_VOLUMES): " volumes
  15. if [[ ${#volumes} -eq 0 ]]; then
  16. volumes=$DEFAULT_VOLUMES
  17. fi
  18. read -p "DB admin password (a random one will be generated if empty): " db_pwd
  19. if [[ ${#db_pwd} -eq 0 ]]; then
  20. db_pwd=`eval "$PWD_GEN"`
  21. fi
  22. read -p "LDAP admin password (a random one will be generated if empty): " ldap_pwd
  23. if [[ ${#ldap_pwd} -eq 0 ]]; then
  24. ldap_pwd=`eval "$PWD_GEN"`
  25. fi
  26. read -p "LDAP Mail Bind DN uid ($DEFAULT_LDAP_MAIL_UID): " ldap_mail_uid
  27. if [[ ${#ldap_mail_uid} -eq 0 ]]; then
  28. ldap_mail_uid=$DEFAULT_LDAP_MAIL_UID
  29. fi
  30. read -p "LDAP Mail Bind DN Pwd (a random one will be generated if empty): " ldap_mail_pwd
  31. if [[ ${#ldap_mail_pwd} -eq 0 ]]; then
  32. ldap_mail_pwd=`eval "$PWD_GEN"`
  33. fi
  34. read -p "LDAP Nextcloud Bind DN uid ($DEFAULT_LDAP_NEXTCLOUD_UID): " ldap_nextcloud_uid
  35. if [[ ${#ldap_nextcloud_uid} -eq 0 ]]; then
  36. ldap_nextcloud_uid=$DEFAULT_LDAP_NEXTCLOUD_UID
  37. fi
  38. read -p "LDAP Nextcloud Bind DN Pwd (a random one will be generated if empty): " ldap_nextcloud_pwd
  39. if [[ ${#ldap_nextcloud_pwd} -eq 0 ]]; then
  40. ldap_nextcloud_pwd=`eval "$PWD_GEN"`
  41. fi
  42. read -p "Nextcloud Admin User Pwd (a random one will be generated if empty): " nextcloud_admin_pwd
  43. if [[ ${#nextcloud_admin_pwd} -eq 0 ]]; then
  44. nextcloud_admin_pwd=`eval "$PWD_GEN"`
  45. fi
  46. echo $'\E[33m'
  47. echo "//////////////////////////////////////////////////"
  48. echo "///////////////// PLEASE CONFIRM /////////////////"
  49. echo "//////////////////////////////////////////////////"
  50. echo $'\E[1;30m'
  51. echo Your domain is: $domain
  52. echo Your Volumes path is: $volumes
  53. echo Your LDAP Mail Bind DN Uid is: $ldap_mail_uid
  54. echo Your LDAP Nextcloud Bind DN Uid is: $ldap_nextcloud_uid
  55. echo $'\E[1;37m'
  56. read -p "Are These Settings Correct? Yes (y), No (n): " confirm
  57. while [[ ! $confirm =~ ^[yYnN]{1}$ ]]; do
  58. read -p "Please Enter 'y' or 'n' To Confirm Settings: " confirm
  59. done
  60. if [[ $confirm != [yY] ]]; then
  61. exit 1
  62. fi
  63. # Generate docker secrets
  64. echo $db_pwd | docker secret create db_pwd -
  65. echo $ldap_pwd | docker secret create ldap_pwd -
  66. echo $ldap_mail_pwd | docker secret create ldap_mail_pwd -
  67. echo $ldap_nextcloud_pwd | docker secret create ldap_nextcloud_pwd -
  68. echo $nextcloud_admin_pwd | docker secret create nextcloud_admin_pwd -
  69. echo $'\E[33m'
  70. echo "//////////////////////////////////////////////////"
  71. echo "///////////// COPYING TEMPLATE FILES /////////////"
  72. echo "//////////////////////////////////////////////////"
  73. echo $'\E[1;30m'
  74. cp env.template .env
  75. cp openldap.env.template openldap.env
  76. cp mail.env.template mail.env
  77. cp nextcloud.env.template nextcloud.env
  78. cp haproxy.env.template haproxy.env
  79. for i in `ls *.env .env`; do
  80. sed -i "s/\${DOMAIN}/${domain}/g" $i
  81. sed -i "s/\${ORGANIZATION}/${org}/g" $i
  82. sed -i "s/\${EXTENSION}/${ext}/g" $i
  83. sed -i "s/\${VOLUMES_PATH}/${volumes//\//\\/}/g" $i
  84. sed -i "s/\${MAIL_LDAP_UID}/${ldap_mail_uid}/g" $i
  85. sed -i "s/\${NEXTCLOUD_LDAP_UID}/${ldap_nextcloud_uid}/g" $i
  86. #sed -i "s/\${}/$/g" $i
  87. done;
  88. # read variables
  89. . .env
  90. # repeated env variables
  91. echo "\nNEXTCLOUD_DB_BACKUP=${NEXTCLOUD_DATA_PATH}/nextcloud_db_backup.sql" >> nextcloud.env
  92. echo "\nMAIL_DATA_PATH=${MAIL_DATA_PATH}" >> mail.env
  93. echo "\nNEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH}" >> nextcloud.env
  94. echo $'\E[33m'
  95. echo "//////////////////////////////////////////////////"
  96. echo "//////////////// CREATING FOLDERS ////////////////"
  97. echo "//////////////////////////////////////////////////"
  98. echo $'\E[1;30m'
  99. # openldap
  100. sudo mkdir -p ${LDAP_DATA_PATH}
  101. sudo mkdir -p ${LDAP_CONFIG_PATH}
  102. sudo mkdir -p ${LDAP_CERTS_PATH}
  103. # db
  104. sudo mkdir -p ${DB_DATA_PATH}
  105. #sudo mkdir -p ${DB_CONFIG_PATH}
  106. # mail
  107. sudo mkdir -p ${MAIL_DATA_PATH}
  108. sudo mkdir -p ${MAIL_STATE_PATH}
  109. # nextcloud
  110. sudo mkdir -p ${NEXTCLOUD_DATA_PATH}