Обновить setup_vps.sh

This commit is contained in:
NW 2025-01-15 12:37:06 +00:00
parent 1064bf1e8c
commit 901b621117

View File

@ -1,23 +1,120 @@
#!/bin/bash
# Обновление пакетов и установка базовых утилит
# Функция для проверки установки пакета
check_install() {
if command -v $1 &> /dev/null; then
echo "$1 уже установлен."
else
echo "Установка $1..."
sudo apt-get install -y $1
if [ $? -eq 0 ]; then
echo "$1 успешно установлен."
else
echo "Ошибка при установке $1."
exit 1
fi
fi
}
# Обновление пакетов
echo "Обновление пакетов..."
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y tmux mc dry git
if [ $? -ne 0 ]; then
echo "Ошибка при обновлении пакетов."
exit 1
fi
# Установка tmux
check_install tmux
# Установка mc (Midnight Commander)
check_install mc
# Установка git
check_install git
# Установка Docker
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
if ! command -v docker &> /dev/null; then
echo "Установка Docker..."
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
if [ $? -eq 0 ]; then
echo "Docker успешно установлен."
else
echo "Ошибка при установке Docker."
exit 1
fi
else
echo "Docker уже установлен."
fi
# Установка Docker Compose (без использования docker-compose)
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Установка Docker Compose (без дефиса, как standalone-бинарник)
if ! command -v docker compose &> /dev/null; then
echo "Установка Docker Compose..."
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Создаём симлинк для использования команды `docker compose` (без дефиса)
sudo ln -s /usr/local/bin/docker-compose /usr/local/bin/docker compose
if [ $? -eq 0 ]; then
echo "Docker Compose успешно установлен."
else
echo "Ошибка при установке Docker Compose."
exit 1
fi
else
echo "Docker Compose уже установлен."
fi
# Добавление текущего пользователя в группу docker, чтобы не использовать sudo для docker команд
sudo usermod -aG docker $USER
# Установка dry (интерфейс для управления Docker)
if ! command -v dry &> /dev/null; then
echo "Установка dry..."
curl -sSL https://github.com/moncho/dry/releases/latest/download/dry-linux-amd64 -o dry
chmod +x dry
sudo mv dry /usr/local/bin/
if [ $? -eq 0 ]; then
echo "dry успешно установлен."
else
echo "Ошибка при установке dry."
exit 1
fi
else
echo "dry уже установлен."
fi
# Добавление текущего пользователя в группу docker
if ! groups $USER | grep -q '\bdocker\b'; then
echo "Добавление пользователя $USER в группу docker..."
sudo usermod -aG docker $USER
if [ $? -eq 0 ]; then
echo "Пользователь $USER добавлен в группу docker."
else
echo "Ошибка при добавлении пользователя в группу docker."
exit 1
fi
else
echo "Пользователь $USER уже в группе docker."
fi
# Клонирование репозитория
REPO_URL="https://git.softuniq.eu/OpenDoor/opendoor-vpn-to-tor.git"
REPO_DIR="opendoor-vpn-to-tor"
if [ -d "$REPO_DIR" ]; then
echo "Репозиторий уже клонирован в директорию $REPO_DIR."
else
echo "Клонирование репозитория $REPO_URL..."
git clone "$REPO_URL" "$REPO_DIR"
if [ $? -eq 0 ]; then
echo "Репозиторий успешно клонирован в директорию $REPO_DIR."
else
echo "Ошибка при клонировании репозитория."
exit 1
fi
fi
# Вывод версий установленных программ
echo "Установленные версии:"
@ -25,7 +122,7 @@ tmux -V
mc -V
dry --version
docker --version
docker-compose --version
docker compose version
git --version
echo "Установка завершена!"
echo "Установка и настройка завершены!"