opendoor-base-install/setup_vps.sh
2025-02-03 19:27:11 +00:00

186 lines
6.3 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.

#!/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
if [ $? -ne 0 ]; then
echo "Ошибка при обновлении пакетов."
exit 1
fi
# Установка tmux
check_install tmux
# Установка mc (Midnight Commander)
check_install mc
# Установка git
check_install git
# Установка net-tools
check_install net-tools
# Установка Docker
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 Plugin (docker compose, без дефиса)
if ! docker compose version &> /dev/null; then
echo "Установка Docker Compose Plugin..."
sudo apt-get install -y docker-compose-plugin
if [ $? -eq 0 ]; then
echo "Docker Compose Plugin успешно установлен."
else
echo "Ошибка при установке Docker Compose Plugin."
exit 1
fi
else
echo "Docker Compose Plugin уже установлен."
fi
# Установка 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
# Установка btop с поддержкой GPU
if ! command -v btop &> /dev/null; then
echo "Установка btop с поддержкой GPU..."
# Установка зависимостей для компиляции
echo "Установка зависимостей для компиляции btop..."
sudo apt-get install -y coreutils sed git build-essential gcc-11 g++-11
# Клонирование репозитория btop
echo "Клонирование репозитория btop..."
git clone https://github.com/aristocratos/btop.git
cd btop
# Компиляция с поддержкой GPU
echo "Компиляция btop с поддержкой GPU..."
make GPU_SUPPORT=true
# Установка btop
echo "Установка btop..."
sudo make install
# Настройка прав для мониторинга GPU
echo "Настройка прав для мониторинга GPU..."
sudo make setcap
# Возврат в исходную директорию
cd ..
rm -rf btop
if [ $? -eq 0 ]; then
echo "btop успешно установлен с поддержкой GPU."
else
echo "Ошибка при установке btop."
exit 1
fi
else
echo "btop уже установлен."
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."
echo "Перезагрузите сессию или выполните 'newgrp 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
# Копирование файлов из папки tmux в /root/
TMUX_SOURCE_DIR="./tmux/"
TMUX_TARGET_DIR="/root/"
if [ -d "$TMUX_SOURCE_DIR" ]; then
echo "Копирование файлов из $TMUX_SOURCE_DIR в $TMUX_TARGET_DIR..."
sudo cp -r "$TMUX_SOURCE_DIR"/* "$TMUX_TARGET_DIR"
if [ $? -eq 0 ]; then
echo "Файлы успешно скопированы."
else
echo "Ошибка при копировании файлов."
exit 1
fi
else
echo "Папка $TMUX_SOURCE_DIR не найдена. Копирование не выполнено."
fi
# Вывод версий установленных программ
echo "Установленные версии:"
tmux -V
mc -V
dry --version
docker --version
docker compose version
git --version
btop --version
ifconfig --version
echo "Установка и настройка завершены!"