61 lines
1.6 KiB
Bash
61 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
source "$(dirname "$0")/lib/common.sh"
|
||
init_script_dir
|
||
|
||
SERVICE_NAME="gitea"
|
||
UNIT_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
||
TEMPLATE_FILE="${SCRIPT_DIR}/systemd/gitea.service"
|
||
|
||
usage() {
|
||
cat <<'EOF'
|
||
Использование: sudo ./install-service.sh
|
||
|
||
Регистрирует systemd-службу для автозапуска Gitea при загрузке системы.
|
||
|
||
Управление после установки:
|
||
sudo systemctl start gitea
|
||
sudo systemctl stop gitea
|
||
sudo systemctl status gitea
|
||
sudo systemctl enable gitea
|
||
sudo systemctl disable gitea
|
||
EOF
|
||
}
|
||
|
||
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
||
err "Запустите скрипт от root: sudo ./install-service.sh"
|
||
exit 1
|
||
fi
|
||
|
||
if [[ ! -f "$TEMPLATE_FILE" ]]; then
|
||
err "Не найден шаблон: $TEMPLATE_FILE"
|
||
exit 1
|
||
fi
|
||
|
||
check_dependencies
|
||
|
||
if [[ ! -f "${SCRIPT_DIR}/.env" ]]; then
|
||
err "Файл .env не найден. Сначала выполните ./deploy.sh install"
|
||
exit 1
|
||
fi
|
||
|
||
log "Создание unit-файла: $UNIT_FILE"
|
||
sed "s|__GITEA_DIR__|${SCRIPT_DIR}|g" "$TEMPLATE_FILE" > "$UNIT_FILE"
|
||
|
||
log "Перезагрузка systemd..."
|
||
systemctl daemon-reload
|
||
|
||
log "Включение автозапуска..."
|
||
systemctl enable "$SERVICE_NAME"
|
||
|
||
if docker compose ps --status running -q 2>/dev/null | grep -q .; then
|
||
log "Контейнеры уже запущены."
|
||
else
|
||
log "Запуск службы..."
|
||
systemctl start "$SERVICE_NAME"
|
||
fi
|
||
|
||
systemctl status "$SERVICE_NAME" --no-pager || true
|
||
log "Служба ${SERVICE_NAME} установлена и включена в автозагрузку."
|