Обновлены шаблоны и скрипты настройки Taiga

master 72
parent ebf4a9645a
commit 6cd2a98724

@ -2,183 +2,69 @@
export PATH="/lib/rc/bin:$PATH" export PATH="/lib/rc/bin:$PATH"
set -ueo pipefail set -ueo pipefail
. /var/db/repos/container/scripts/functions.sh . /var/db/repos/container/scripts/functions.sh
. /var/db/repos/calculate/scripts/ini.sh . /var/db/repos/calculate/scripts/ini.sh
regular() { cd /var/calculate/www/taiga
if [[ ${ini[taiga.public_register]} == 'True' ]]
then
local public_register='true'
else
local public_register='false'
fi
replace=(
"taiga-back/settings/config.py" ""
"('USER':).*" "\1 '${ini[postgresql.taiga_user]}',"
"('PASSWORD':).*" "\1 '${ini[postgresql.taiga_password]}',"
"^.*(SECRET_KEY =).*" "\1 \"${ini[taiga.secret_key]}\""
"^.*(TAIGA_SITES_SCHEME =).*" "\1 \"${ini[taiga.protocol]}\""
"^.*(TAIGA_SITES_DOMAIN =).*" "\1 \"${ini[taiga.taiga_sites_domain]}\""
"^.*(MEDIA_ROOT =).*" "\1 '/var/calculate/www/taiga/taiga-back/media'"
"^.*(DEFAULT_FROM_EMAIL =).*" "\1 '${ini[taiga.from_email]}'"
"^.*(EMAIL_USE_TLS =).*" "\1 ${ini[taiga.smtp_tls]}"
"^.*(EMAIL_USE_SSL =).*" "\1 ${ini[taiga.smtp_ssl]}"
"^.*(EMAIL_HOST =).*" "\1 '${ini[taiga.smtp_host]}'"
"^.*(EMAIL_PORT =).*" "\1 ${ini[taiga.smtp_port]}"
"^.*(EMAIL_HOST_USER =).*" "\1 '${ini[taiga.smtp_user]}'"
"^.*(EMAIL_HOST_PASSWORD =).*" "\1 '${ini[taiga.smtp_password]}'"
"(\"url\": \"amqp://).*(:5672/taiga\")" "\1${ini[rabbitmq.taiga_user]}:${ini[rabbitmq.taiga_password]}@localhost\2"
"^.*(CELERY_BROKER_URL =).*" "\1 \"amqp://${ini[rabbitmq.taiga_user]}:${ini[rabbitmq.taiga_password]}@localhost:5672/taiga\""
"^.*(CELERY_TIMEZONE =).*" "\1 '${ini[taiga.timezone]}'"
"^.*(ENABLE_TELEMETRY =).*" "\1 False"
"^.*(PUBLIC_REGISTER_ENABLED =).*" "\1 ${ini[taiga.public_register]}"
"^.*(USER_EMAIL_ALLOWED_DOMAINS =).*" "\1 $(arr_to_list ${ini[taiga.user_email_allowed_domains]})"
"^.*(MAX_PRIVATE_PROJECTS_PER_USER =).*" "\1 ${ini[taiga.max_private_projects_per_user]}"
"^.*(MAX_PUBLIC_PROJECTS_PER_USER =).*" "\1 ${ini[taiga.max_public_projects_per_user]}"
"taiga-front-dist/dist/conf.json" ""
"(\"api\":).*" "\1 \"${ini[taiga.protocol]}://${ini[taiga.taiga_sites_domain]}/api/v1/\","
"(\"eventsUrl\":).*" "\1 \"wss://${ini[taiga.taiga_sites_domain]}/events\","
"(\"defaultLanguage\":).*" "\1 \"${ini[taiga.language]}\","
"(\"publicRegisterEnabled\":).*" "\1 ${public_register},"
"(\"feedbackEnabled\":).*" "\1 false,"
"(\"supportUrl\":).*" "\1 \"${ini[taiga.protocol]}://${ini[taiga.taiga_sites_domain]}\","
"(\"gravatar\":).*" "\1 false,"
"taiga-events/.env" ""
"^.*(RABBITMQ_URL=).*" "\1\"amqp://${ini[rabbitmq.taiga_user]}:${ini[rabbitmq.taiga_password]}@localhost:5672/taiga\""
"^.*(SECRET=).*" "\1\"${ini[taiga.secret_key]}\""
"taiga-protected/.env" ""
"^.*(SECRET_KEY=).*" "\1\"${ini[taiga.secret_key]}\""
)
}
check_conf() {
conf=
for (( i=0; i < ${#replace[@]}; i += 2 ))
do
from=${replace[$i]}
to=${replace[$i+1]}
if [[ $to == '' ]]
then
conf=$from
continue
fi
if [[ ! -e $conf ]]
then
eerror "~/taiga/$conf not found."
exit 2
fi
grep -qE "$from" $conf || exit 1
done
}
check_show() {
conf=
for (( i=0; i < ${#replace[@]}; i += 2 ))
do
from=${replace[$i]}
to=${replace[$i+1]}
if [[ $to == '' ]]
then
conf=$from
echo "$conf"
continue
fi
err=0
grep -qE "$from" $conf || err=1
if [[ $err == 0 ]]
then
einfo $from
else
eerror $from || true
fi
eend $err || true
done
}
configure_conf() { configure_conf() {
conf= local config=$1
for (( i=0; i < ${#replace[@]}; i += 2 )) einfo "Setting up $config ..."
do test -f $config.old || cp $config $config.old
from=${replace[$i]} for (( i=0; i < ${#replace[@]}; i += 2 )); do
to=${replace[$i+1]} var=${replace[$i]}
val=${replace[$i+1]}
if [[ $to == '' ]] grep -qE "$var" $config || eerror "Parametr '$var' is not found."
then
if [[ $conf != '' ]] sed -i -E "s|^(\s*)(['\"]?)(${var})(['\"]?)(\s*)([:=])(\s*)?.*$|\1\2\3\4\5\6\7${val}|g" \
then $config
eend
fi
conf=$from
ebegin $conf
continue
fi
sed -i -E "s|$from|$to|g" $conf
done done
eend eend
} }
[[ ${ini[taiga.public_register]} == 'True' ]] && public_register='true' || public_register='false'
show_conf() { replace=(
conf= USER \'${ini[postgresql.taiga_user]}\',
for (( i=0; i < ${#replace[@]}; i += 2 )) PASSWORD \'${ini[postgresql.taiga_password]}\',
do SECRET_KEY \"${ini[taiga.secret_key]}\"
from=${replace[$i]} TAIGA_SITES_SCHEME \"${ini[taiga.protocol]}\"
to=${replace[$i+1]} TAIGA_SITES_DOMAIN \"${ini[taiga.taiga_sites_domain]}\"
MEDIA_ROOT '/var/calculate/www/taiga/taiga-back/media'
if [[ $to == '' ]] DEFAULT_FROM_EMAIL \'${ini[taiga.from_email]}\'
then EMAIL_USE_TLS ${ini[taiga.smtp_tls]}
conf=$from EMAIL_USE_SSL ${ini[taiga.smtp_ssl]}
echo '#-------------------------------------------------------------------------' EMAIL_HOST \'${ini[taiga.smtp_host]}\'
echo " $conf" EMAIL_PORT ${ini[taiga.smtp_port]}
echo '#-------------------------------------------------------------------------' EMAIL_HOST_USER \'${ini[taiga.smtp_user]}\'
continue EMAIL_HOST_PASSWORD \'${ini[taiga.smtp_password]}\'
fi url \"amqp://${ini[rabbitmq.taiga_user]}:${ini[rabbitmq.taiga_password]}@localhost:5672/taiga\"
CELERY_BROKER_URL \"amqp://${ini[rabbitmq.taiga_user]}:${ini[rabbitmq.taiga_password]}@localhost:5672/taiga\"
grep -E "$from" $conf CELERY_TIMEZONE \'${ini[taiga.timezone]}\'
done ENABLE_TELEMETRY False
} PUBLIC_REGISTER_ENABLED ${ini[taiga.public_register]}
USER_EMAIL_ALLOWED_DOMAINS $(arr_to_list ${ini[taiga.user_email_allowed_domains]})
check_homedir() { MAX_PRIVATE_PROJECTS_PER_USER ${ini[taiga.max_private_projects_per_user]}
homedir=/var/calculate/www/taiga MAX_PUBLIC_PROJECTS_PER_USER ${ini[taiga.max_public_projects_per_user]}
if [[ -d $homedir ]] )
then configure_conf taiga-back/settings/config.py
cd $homedir
else replace=(
eerror "Missing directory $homedir!" api \"${ini[taiga.protocol]}://${ini[taiga.taiga_sites_domain]}/api/v1/\",
exit 1 eventsUrl \"wss://${ini[taiga.taiga_sites_domain]}/events\",
fi defaultLanguage \"${ini[taiga.language]}\",
} publicRegisterEnabled ${public_register},
feedbackEnabled false,
regular supportUrl \"${ini[taiga.protocol]}://${ini[taiga.taiga_sites_domain]}\",
gravatar false,
check_homedir )
configure_conf taiga-front-dist/dist/conf.json
ebegin 'Checking Custom Variables'
`check_conf` || { replace=(
if [[ $? == 1 ]] RABBITMQ_URL \"amqp://${ini[rabbitmq.taiga_user]}:${ini[rabbitmq.taiga_password]}@localhost:5672/taiga\"
then SECRET \"${ini[taiga.secret_key]}\"
check_show # отобразим несоответствия )
exit 1 configure_conf taiga-events/.env
fi
exit replace=(
} SECRET_KEY \"${ini[taiga.secret_key]}\"
eend )
configure_conf taiga-protected/.env
einfo 'Setting up configuration files'
configure_conf
if [[ $# == 1 && $1 == 'show' ]]
then
einfo 'Customized parameters:'
show_conf
fi

@ -10,7 +10,7 @@ export PATH="/lib/rc/bin:$PATH"
data=$(PGPASSWORD=${ini[postgresql.taiga_password]} psql -U ${ini[postgresql.taiga_user]} -d ${ini[postgresql.taiga_database]} -c '\dt' 2>/dev/null) data=$(PGPASSWORD=${ini[postgresql.taiga_password]} psql -U ${ini[postgresql.taiga_user]} -d ${ini[postgresql.taiga_database]} -c '\dt' 2>/dev/null)
if [[ -e $data ]]; then if [[ -z $data ]]; then
cd ~ cd ~
cd taiga-back cd taiga-back
source .venv/bin/activate source .venv/bin/activate
@ -23,4 +23,3 @@ if [[ -e $data ]]; then
DJANGO_SETTINGS_MODULE=settings.config python manage.py compilemessages DJANGO_SETTINGS_MODULE=settings.config python manage.py compilemessages
DJANGO_SETTINGS_MODULE=settings.config python manage.py collectstatic --noinput DJANGO_SETTINGS_MODULE=settings.config python manage.py collectstatic --noinput
fi fi

@ -31,4 +31,3 @@ psql -U postgres -c "ALTER USER ${ini[postgresql.taiga_user]} WITH PASSWORD '${i
cl-core-setup -n postgresql -f cl-core-setup -n postgresql -f
/etc/init.d/postgresql-$(pgver slot) restart /etc/init.d/postgresql-$(pgver slot) restart

@ -14,4 +14,3 @@ export PATH="/lib/rc/bin:$PATH"
rabbitmqctl add_user ${ini[rabbitmq.taiga_user]} ${ini[rabbitmq.taiga_password]} rabbitmqctl add_user ${ini[rabbitmq.taiga_user]} ${ini[rabbitmq.taiga_password]}
rabbitmqctl add_vhost taiga rabbitmqctl add_vhost taiga
rabbitmqctl set_permissions -p taiga ${ini[rabbitmq.taiga_user]} ".*" ".*" ".*" rabbitmqctl set_permissions -p taiga ${ini[rabbitmq.taiga_user]} ".*" ".*" ".*"

@ -4,29 +4,19 @@
set -ueo pipefail set -ueo pipefail
export PATH="/lib/rc/bin:$PATH" export PATH="/lib/rc/bin:$PATH"
echo "Taiga setup"
. /var/db/repos/calculate/scripts/ini.sh . /var/db/repos/calculate/scripts/ini.sh
echo "Taiga setup"
chown taiga: /var/calculate/ini.env chown taiga: /var/calculate/ini.env
su - taiga -c '/var/db/repos/container/scripts/taiga/install.sh' su - taiga -c '/var/db/repos/container/scripts/taiga/install.sh'
/var/db/repos/container/scripts/taiga/postgresql.sh /var/db/repos/container/scripts/taiga/postgresql.sh
/var/db/repos/container/scripts/taiga/rabbitmq.sh /var/db/repos/container/scripts/taiga/rabbitmq.sh
/var/db/repos/container/scripts/taiga/config.sh /var/db/repos/container/scripts/taiga/config.sh
su - taiga -c '/var/db/repos/container/scripts/taiga/migrate.sh' su - taiga -c '/var/db/repos/container/scripts/taiga/migrate.sh'
if [[ ! -e /etc/runlevels/default/taiga ]]; then if [[ ! -e /etc/runlevels/default/taiga ]]; then
cl-setup-system cl-setup-system
rc-update -u rc-update -u
fi fi
openrc openrc
echo -e "\nAll is done! Open the link ${ini[taiga.protocol]}://${ini[taiga.taiga_sites_domain]} on your browser."
echo "All is done! Open the link ${ini[taiga.protocol]}://${ini[taiga.taiga_sites_domain]} on your browser."

Loading…
Cancel
Save