|
3 | 3 | # *************************************** |
4 | 4 | # * * |
5 | 5 | # * install and update SunEngine * |
6 | | -# * Script version: 0.6 * |
| 6 | +# * Script version: 0.7 * |
7 | 7 | # * * |
8 | 8 | # *************************************** |
9 | 9 |
|
@@ -243,7 +243,8 @@ checkPostgreSQLVersion() { |
243 | 243 | checkPostgreSQLVersion |
244 | 244 |
|
245 | 245 | # Проверяем пользователя от бд, ведь для безопасности для всего должны быть свои пользователи верно? |
246 | | -ddd=$(su - postgres -c "psql -c \"CREATE USER \\\"$HOST\\\" WITH PASSWORD '$PGUSERPASS';\"" 2>&1) |
| 246 | +ddd=$(su - postgres -c "PGPASSWORD=$PGPASS psql -c \"CREATE USER \\\"$HOST\\\" WITH PASSWORD '$PGUSERPASS';\"") |
| 247 | + |
247 | 248 | if [ "$ddd" != "CREATE ROLE" ] |
248 | 249 | then |
249 | 250 | if $PGUSERPASSFLAG |
|
254 | 255 | exit 0 |
255 | 256 | fi |
256 | 257 |
|
257 | | - PGUSERPASS=$(whiptail --title "Пароль $HOST" --inputbox "Введите пароль от PostgreSQL пользователя \"$HOST\"" 10 60 3>&1 1>&2 2>&3) |
| 258 | + PGUSERPASS=$(whiptail --title "Пароль $HOST" --inputbox "Введите пароль от PostgreSQL пользователя \"$HOST\"" 10 60 $PGUSERPASS 3>&1 1>&2 2>&3) |
258 | 259 | # Обработка кнопки "Отмена" |
259 | 260 | exitstatus=$? |
260 | 261 | if [[ $exitstatus != 0 ]] |
|
268 | 269 |
|
269 | 270 | createDb() |
270 | 271 | { |
271 | | - su - postgres -c "psql -c \"CREATE DATABASE \\\"$HOST\\\" OWNER \\\"$HOST\\\";\"" |
| 272 | + su - postgres -c "PGPASSWORD=$PGPASS psql -c \"CREATE DATABASE \\\"$HOST\\\" OWNER \\\"$HOST\\\";\"" |
272 | 273 | echo "БД $HOST создана" |
273 | 274 | } |
274 | 275 |
|
275 | 276 | # проверяем существование БД |
276 | | -if (su - postgres -c "psql -l -At" | grep "^$HOST|" > /dev/null) |
| 277 | +if (su - postgres -c "PGPASSWORD=$PGPASS psql -l -At" | grep "^$HOST|" > /dev/null) |
277 | 278 | then |
278 | 279 | if ($SILENT || whiptail --title "PostgreSQL" --yesno "Обнаружена БД скорее всего она осталась от предыдущей установки, удалить?" 11 60) |
279 | 280 | then |
280 | | - su - postgres -c "dropdb \"$HOST\"" |
| 281 | + su - postgres -c "PGPASSWORD=$PGPASS dropdb \"$HOST\"" |
281 | 282 | createDb |
282 | 283 | else |
283 | 284 | echo "БД уже есть, возможно вы хотели запустить обновление а не установку?" |
@@ -305,75 +306,82 @@ then |
305 | 306 | echo "Пользователь $USER создан" |
306 | 307 | fi |
307 | 308 |
|
308 | | -DIR=$(echo "$DIRECTORY/SunEngine.Build" | tr -s '/') |
| 309 | +DIRGIT=$(echo "$DIRECTORY/SunEngine.Build" | tr -s '/') |
| 310 | +DIR=$(echo "$DIRECTORY" | tr -s '/') |
309 | 311 |
|
310 | 312 | # качаем файлы SunEngine |
311 | | -su - $USER -c "git clone \"https://github.com/sunengine/Build\" \"$DIR\" > /dev/null" |
| 313 | + |
| 314 | +git clone "https://github.com/sunengine/Build" "$DIRGIT" > /dev/null |
312 | 315 | exitstatus=$? |
313 | 316 | if [ $exitstatus != 0 ] |
314 | 317 | then |
315 | 318 | echo "Не удалось скачать файлы движка" |
316 | 319 | exit 0; |
317 | 320 | fi |
318 | 321 |
|
| 322 | +mv $DIRGIT/* $DIR |
| 323 | + |
319 | 324 | # DataBaseConnection.json |
320 | | -su - $USER -c "sed -i \"s/<DataBaseName>/$HOST/g\" \"$DIR/Config.server.template/DataBaseConnection.json\"" |
321 | | -su - $USER -c "sed -i \"s/<DataBaseUser>/$HOST/g\" \"$DIR/Config.server.template/DataBaseConnection.json\"" |
322 | | -su - $USER -c "sed -i \"s/<DataBasePassword>/$PGUSERPASS/g\" \"$DIR/Config.server.template/DataBaseConnection.json\"" |
| 325 | +sed -i "s/<DataBaseName>/$HOST/g" "${DIR}Config.server.template/DataBaseConnection.json" |
| 326 | +sed -i "s/<DataBaseUser>/$HOST/g" "${DIR}Config.server.template/DataBaseConnection.json" |
| 327 | +sed -i "s/<DataBasePassword>/$PGUSERPASS/g" "${DIR}Config.server.template/DataBaseConnection.json" |
323 | 328 |
|
324 | 329 | # SunEngine.json |
325 | | -su - $USER -c "sed -i \"s/<domain>/$HOST/g\" \"$DIR/Config.server.template/SunEngine.json\"" |
326 | | -su - $USER -c "sed -i \"s/<port>/$PORT/g\" \"$DIR/Config.server.template/SunEngine.json\"" |
327 | | -su - $USER -c "sed -i \"s!auto!$DIR!g\" \"$DIR/Config.server.template/SunEngine.json\"" |
| 330 | +sed -i "s/<domain>/$HOST/g" "${DIR}Config.server.template/SunEngine.json" |
| 331 | +sed -i "s/<port>/$PORT/g" "${DIR}Config.server.template/SunEngine.json" |
| 332 | +sed -i "s!auto!$DIR!g" "${DIR}Config.server.template/SunEngine.json" |
328 | 333 |
|
329 | 334 | ADMINUSERNAME="admin" |
330 | 335 | ADMINPASSWORD="nimda" |
331 | 336 | ADMINEMAIL="admin@email." |
332 | 337 |
|
333 | 338 | # DataBaseConnection.json |
334 | | -su - $USER -c "sed -i \"s/<admin-email>/$ADMINEMAIL/g\" \"$DIR/Config.server.template/Init/Users.json\"" |
335 | | -su - $USER -c "sed -i \"s/<admin-user-name>/$ADMINUSERNAME/g\" \"$DIR/Config.server.template/Init/Users.json\"" |
336 | | -su - $USER -c "sed -i \"s/<admin-password>/$ADMINPASSWORD/g\" \"$DIR/Config.server.template/Init/Users.json\"" |
| 339 | +sed -i "s/<admin-email>/$ADMINEMAIL/g" "${DIR}Config.server.template/Init/Users.json" |
| 340 | +sed -i "s/<admin-user-name>/$ADMINUSERNAME/g" "${DIR}Config.server.template/Init/Users.json" |
| 341 | +sed -i "s/<admin-password>/$ADMINPASSWORD/g" "${DIR}Config.server.template/Init/Users.json" |
337 | 342 |
|
338 | 343 | echo -e "Создан пользователь администратор\nимя пользователя: $ADMINUSERNAME\nпароль: $ADMINPASSWORD\nemail: $ADMINEMAIL" |
339 | 344 |
|
340 | 345 | # index-page.json |
341 | | -su - $USER -c "sed -i \"s/<admin-user-name>/$ADMINUSERNAME/g\" \"$DIR/Config.server.template/Init/Materials/index-page.json\"" |
| 346 | +sed -i "s/<admin-user-name>/$ADMINUSERNAME/g" "${DIR}Config.server.template/Init/Materials/index-page.json" |
342 | 347 |
|
343 | 348 | # копируем настройки с темплейта |
344 | | -su - $USER -c "cp -r \"$DIR/Config.server.template\" \"$DIR/Config\"" |
| 349 | +cp -r "${DIR}Config.server.template" "${DIR}Config" |
| 350 | + |
| 351 | +# меняем владельца папки |
| 352 | +chown ${USER}:${USER} -R * |
345 | 353 |
|
346 | 354 | # Заполняем БД данными |
347 | | -su - $USER -c "dotnet \"$DIR/Server/SunEngine.dll\" config:\"$DIR/Config\" init migrate" |
| 355 | +dotnet "${DIR}Server/SunEngine.dll" config:"${DIR}Config" init migrate |
348 | 356 |
|
349 | 357 | # systemd |
350 | 358 | echo "настраиваю systemd демон $HOST.service" |
351 | | -su - $USER -c "sed -i \"s/<host>/$HOST/g\" \"$DIR/Resources/systemd.template\"" |
352 | | -su - $USER -c "sed -i \"s!<dir>!$DIR!g\" \"$DIR/Resources/systemd.template\"" |
353 | | -su - $USER -c "sed -i \"s/<user>/$USER/g\" \"$DIR/Resources/systemd.template\"" |
354 | | -cp "$DIR/Resources/systemd.template" "/etc/systemd/system/$HOST.service" |
| 359 | +sed -i "s/<host>/$HOST/g" "${DIR}Resources/systemd.template" |
| 360 | +sed -i "s!<dir>!$DIR!g" "${DIR}Resources/systemd.template" |
| 361 | +sed -i "s/<user>/$USER/g" "${DIR}Resources/systemd.template" |
| 362 | +cp "${DIR}Resources/systemd.template" "/etc/systemd/system/$HOST.service" |
355 | 363 |
|
356 | 364 | # добавляем сервис в автозагрузку |
357 | 365 | systemctl enable $HOST |
358 | 366 | # запускаем сервис |
359 | 367 | systemctl start $HOST |
360 | 368 |
|
361 | 369 | # nginx стартовый конфиг |
362 | | -su - $USER -c "sed -i \"s/<host>/$HOST/g\" \"$DIR/Resources/nginx.template\"" |
363 | | -su - $USER -c "sed -i \"s!<wwwroot>!$DIR/wwwroot!g\" \"$DIR/Resources/nginx.template\"" |
364 | | -cp "$DIR/Resources/nginx.template" "/etc/nginx/sites-available/$HOST.conf" |
| 370 | +sed -i "s/<host>/$HOST/g" "${DIR}Resources/nginx.template" |
| 371 | +sed -i "s!<wwwroot>!${DIR}wwwroot!g" "${DIR}Resources/nginx.template" |
| 372 | +cp "${DIR}Resources/nginx.template" "/etc/nginx/sites-available/$HOST.conf" |
365 | 373 | ln -s "/etc/nginx/sites-available/$HOST.conf" "/etc/nginx/sites-enabled/$HOST.conf" |
366 | 374 | nginx -s reload |
367 | 375 |
|
368 | 376 | echo "настраиваем сертификат для https" |
369 | 377 | $SILENTINSTALL apt-get -y install certbot |
370 | 378 |
|
371 | | -certbot certonly --webroot -w "$DIR/wwwroot" -d $HOST -n |
| 379 | +certbot certonly --webroot -w "${DIR}wwwroot" -d $HOST -n |
372 | 380 |
|
373 | 381 | # nginx рабочий конфиг |
374 | | -su - $USER -c "sed -i \"s/<host>/$HOST/g\" \"$DIR/Resources/nginxssl.template\"" |
375 | | -su - $USER -c "sed -i \"s!<wwwroot>!$DIR/wwwroot!g\" \"$DIR/Resources/nginxssl.template\"" |
376 | | -su - $USER -c "sed -i \"s/<port>/$PORT/g\" \"$DIR/Resources/nginxssl.template\"" |
377 | | -cp "$DIR/Resources/nginxssl.template" "/etc/nginx/sites-available/$HOST.conf" |
| 382 | +sed -i "s/<host>/$HOST/g" "${DIR}Resources/nginxssl.template" |
| 383 | +sed -i "s!<wwwroot>!${DIR}wwwroot!g" "${DIR}Resources/nginxssl.template" |
| 384 | +sed -i "s/<port>/$PORT/g" "${DIR}Resources/nginxssl.template" |
| 385 | +cp "${DIR}Resources/nginxssl.template" "/etc/nginx/sites-available/$HOST.conf" |
378 | 386 |
|
379 | 387 | nginx -s reload |
0 commit comments