gitea-install/install-service.sh

61 lines
1.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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