Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

95 lines
2.7KB

  1. #!/bin/bash
  2. GITEA_FULL_DOMAIN=${GITEA_SERVER_NAME}.${GITEA_DOMAIN}
  3. # set LDAP password from secret
  4. if [ ! -z $LDAP_BIND_PWD_FILE -a -f $LDAP_BIND_PWD_FILE ]; then
  5. LDAP_BIND_PWD=`cat $LDAP_BIND_PWD_FILE`;
  6. fi
  7. # set Admin password from secret
  8. if [ ! -z $GITEA_ADMIN_PWD_FILE -a -f $GITEA_ADMIN_PWD_FILE ]; then
  9. GITEA_ADMIN_PWD=`cat $GITEA_ADMIN_PWD_FILE`;
  10. fi
  11. GITEA_SECRET_KEY=`openssl rand -hex 64`
  12. # check needed variables
  13. if [[ -z ${GITEA_ADMIN_PWD} || -z ${ADMIN_EMAIL} \
  14. || -z ${LDAP_SERVER_HOST} || -z ${LDAP_BIND_DN} \
  15. || -z ${LDAP_BIND_PWD} || -z ${LDAP_SEARCH_BASE} \
  16. ]];
  17. then
  18. echo "Missing variable! You must provide: GITEA_ADMIN_PWD, ADMIN_EMAIL and LDAP stuff";
  19. echo ${#GITEA_ADMIN_PWD}, ${ADMIN_EMAIL},
  20. echo ${LDAP_SERVER_HOST}, ${LDAP_BIND_DN}, ${#LDAP_BIND_PWD}, ${LDAP_SEARCH_BASE}
  21. #env;
  22. exit 1;
  23. fi
  24. # ### Conf file ###
  25. echo Tweaking config files
  26. CONF_FILE=${GITEA_CUSTOM}/conf/app.ini
  27. if [[ ! -e ${CONF_FILE} ]]; then
  28. mkdir -p ${GITEA_CUSTOM}/conf
  29. mv /home/${USER}/app.ini ${CONF_FILE}
  30. chown -R ${USER} ${GITEA_CUSTOM}
  31. echo Setting domain and port
  32. sed -i "s/GITEA_FULL_DOMAIN/${GITEA_FULL_DOMAIN}/g" ${CONF_FILE}
  33. sed -i "s/GITEA_HTTP_PORT/${GITEA_HTTP_PORT}/g" ${CONF_FILE}
  34. echo Setting path
  35. sed -i "s/GITEA_CUSTOM/${GITEA_CUSTOM//\//\\/}/g" ${CONF_FILE}
  36. echo Setting secret key
  37. sed -i "s/SECRET_KEY/${GITEA_SECRET_KEY}/g" ${CONF_FILE}
  38. fi
  39. chown -R ${USER} /data
  40. # Create self-signed certificates
  41. su ${USER} -c "cd /${GITEA_CUSTOM}; gitea cert --host localhost,${GITEA_FULL_DOMAIN}"
  42. echo gfd: ${GITEA_FULL_DOMAIN}
  43. # TODO: start gitea to init
  44. echo Starting Gitea to init everything
  45. nohup su ${USER} -c "/app/gitea/gitea web" &
  46. GITEA_PID=`echo $!`
  47. echo Gitea pid: ${GITEA_PID}
  48. CURL_RESULT=1
  49. echo Waiting for web server to be ready
  50. while [[ ${CURL_RESULT} -gt 0 ]]; do
  51. sleep 10
  52. curl localhost:${GITEA_HTTP_PORT} > /dev/null 2>&1
  53. CURL_RESULT=$?;
  54. echo Curl result: ${CURL_RESULT}
  55. done;
  56. echo Killing Gitea
  57. kill -9 ${GITEA_PID}
  58. # Create admin user
  59. echo Creating admin user
  60. su ${USER} -c "gitea admin create-user --username root --password ${GITEA_ADMIN_PWD} --admin --email ${ADMIN_EMAIL}"
  61. # LDAP
  62. echo Creating LDAP access
  63. su ${USER} -c "gitea admin auth add-ldap \
  64. --name ldap \
  65. --security-protocol unencrypted \
  66. --host ${LDAP_SERVER_HOST} \
  67. --port 389 \
  68. --bind-dn ${LDAP_BIND_DN} \
  69. --bind-password ${LDAP_BIND_PWD} \
  70. --user-search-base ${LDAP_SEARCH_BASE} \
  71. --user-filter \"(&(objectclass=*)(|(uniqueIdentifier=%[1]s)(mail=%[1]s)))\" \
  72. --username-attribute uniqueIdentifier \
  73. --firstname-attribute givenName \
  74. --surname-attribute sn \
  75. --email-attribute mail"
  76. exec /bin/s6-svscan /etc/s6