#!/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