Created
July 6, 2024 11:55
-
-
Save alxdrlitreev/93e80747f60ad4df1a40875bfee160a1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Переходим в домашний каталог | |
cd ~/ | |
# Удаляем старую копию репозитория, если она существует | |
rm -rf sentinel-api | |
# Клонируем репозиторий | |
git clone https://github.com/norselabs/sentinel-api.git | |
# Устанавливаем golang | |
apt update | |
apt install golang-go -y | |
# Переходим в директорию репозитория | |
cd sentinel-api/ | |
# Загружаем зависимости | |
go mod download | |
# Компилируем приложение | |
GOOS=linux GOARCH=amd64 go build -o /api ./ | |
# Проверяем, существует ли папка /opt/sentinel-api, и создаем ее, если нет | |
if [ ! -d /opt/sentinel-api ]; then | |
mkdir -p /opt/sentinel-api | |
fi | |
# Копируем скомпилированный файл в /opt/sentinel-api | |
cp -f ./api /opt/sentinel-api/ | |
# Создаем системного no-login пользователя sentinel, если его нет | |
if ! id -u sentinel >/dev/null 2>&1; then | |
useradd -r -s /usr/sbin/nologin sentinel | |
fi | |
# Создаем или перезаписываем файл службы systemd | |
cat <<EOL > /etc/systemd/system/sentinel-api.service | |
[Unit] | |
Description=Sentinel API | |
After=network.target | |
StartLimitIntervalSec=0 | |
[Service] | |
Type=simple | |
Restart=always | |
RestartSec=1 | |
User=sentinel | |
WorkingDirectory=/opt/sentinel-api | |
ExecStart=/opt/sentinel-api/api | |
[Install] | |
WantedBy=multi-user.target | |
EOL | |
# Перезапускаем конфигурацию systemd | |
systemctl daemon-reload | |
# Запускаем службу | |
systemctl start sentinel-api | |
# Включаем службу для автоматического запуска при загрузке системы | |
systemctl enable sentinel-api |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment