Skip to content

Instantly share code, notes, and snippets.

@alxdrlitreev
Created July 6, 2024 11:55
Show Gist options
  • Save alxdrlitreev/93e80747f60ad4df1a40875bfee160a1 to your computer and use it in GitHub Desktop.
Save alxdrlitreev/93e80747f60ad4df1a40875bfee160a1 to your computer and use it in GitHub Desktop.
#!/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