|
- #!/bin/bash
-
- GITEA_FULL_DOMAIN=${GITEA_SERVER_NAME}.${GITEA_DOMAIN}
-
- # set LDAP password from secret
- if [ ! -z $LDAP_BIND_PWD_FILE -a -f $LDAP_BIND_PWD_FILE ]; then
- LDAP_BIND_PWD=`cat $LDAP_BIND_PWD_FILE`;
- fi
-
- # set Admin password from secret
- if [ ! -z $GITEA_ADMIN_PWD_FILE -a -f $GITEA_ADMIN_PWD_FILE ]; then
- GITEA_ADMIN_PWD=`cat $GITEA_ADMIN_PWD_FILE`;
- fi
-
- GITEA_SECRET_KEY=`openssl rand -hex 64`
-
- # check needed variables
- if [[ -z ${GITEA_ADMIN_PWD} || -z ${ADMIN_EMAIL} \
- || -z ${LDAP_SERVER_HOST} || -z ${LDAP_BIND_DN} \
- || -z ${LDAP_BIND_PWD} || -z ${LDAP_SEARCH_BASE} \
- ]];
- then
- echo "Missing variable! You must provide: GITEA_ADMIN_PWD, ADMIN_EMAIL and LDAP stuff";
- echo ${#GITEA_ADMIN_PWD}, ${ADMIN_EMAIL},
- echo ${LDAP_SERVER_HOST}, ${LDAP_BIND_DN}, ${#LDAP_BIND_PWD}, ${LDAP_SEARCH_BASE}
- #env;
- exit 1;
- fi
-
- # ### Conf file ###
-
- echo Tweaking config files
- CONF_FILE=${GITEA_CUSTOM}/conf/app.ini
-
- if [[ ! -e ${CONF_FILE} ]]; then
- mkdir -p ${GITEA_CUSTOM}/conf
- mv /home/${USER}/app.ini ${CONF_FILE}
- chown -R ${USER} ${GITEA_CUSTOM}
-
- echo Setting domain and port
- sed -i "s/GITEA_FULL_DOMAIN/${GITEA_FULL_DOMAIN}/g" ${CONF_FILE}
- sed -i "s/GITEA_HTTP_PORT/${GITEA_HTTP_PORT}/g" ${CONF_FILE}
- echo Setting path
- sed -i "s/GITEA_CUSTOM/${GITEA_CUSTOM//\//\\/}/g" ${CONF_FILE}
- echo Setting secret key
- sed -i "s/SECRET_KEY/${GITEA_SECRET_KEY}/g" ${CONF_FILE}
-
- fi
-
- chown -R ${USER} /data
-
- # Create self-signed certificates
-
- su ${USER} -c "cd /${GITEA_CUSTOM}; gitea cert --host localhost,${GITEA_FULL_DOMAIN}"
- echo gfd: ${GITEA_FULL_DOMAIN}
-
- # TODO: start gitea to init
- echo Starting Gitea to init everything
- nohup su ${USER} -c "/app/gitea/gitea web" &
- GITEA_PID=`echo $!`
- echo Gitea pid: ${GITEA_PID}
- CURL_RESULT=1
- echo Waiting for web server to be ready
- while [[ ${CURL_RESULT} -gt 0 ]]; do
- sleep 10
- curl localhost:${GITEA_HTTP_PORT} > /dev/null 2>&1
- CURL_RESULT=$?;
- echo Curl result: ${CURL_RESULT}
- done;
-
- echo Killing Gitea
- kill -9 ${GITEA_PID}
-
- # Create admin user
- echo Creating admin user
- su ${USER} -c "gitea admin create-user --username root --password ${GITEA_ADMIN_PWD} --admin --email ${ADMIN_EMAIL}"
-
- # LDAP
- echo Creating LDAP access
- su ${USER} -c "gitea admin auth add-ldap \
- --name ldap \
- --security-protocol unencrypted \
- --host ${LDAP_SERVER_HOST} \
- --port 389 \
- --bind-dn ${LDAP_BIND_DN} \
- --bind-password ${LDAP_BIND_PWD} \
- --user-search-base ${LDAP_SEARCH_BASE} \
- --user-filter \"(&(objectclass=*)(|(uniqueIdentifier=%[1]s)(mail=%[1]s)))\" \
- --username-attribute uniqueIdentifier \
- --firstname-attribute givenName \
- --surname-attribute sn \
- --email-attribute mail"
-
- exec /bin/s6-svscan /etc/s6
|