#!/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} установлена и включена в автозагрузку."