opendoor-base-install/setup_vps.sh
2025-05-13 11:16:21 +00:00

169 lines
6.2 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
# Проверка, что скрипт не запущен от root
if [ "$(id -u)" -eq 0 ]; then
echo "Не рекомендуется запускать скрипт от root. Запустите от обычного пользователя с sudo."
exit 1
fi
# Функция для проверки установки пакета
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
}
# Функция для определения дистрибутива
detect_distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
DISTRO=$ID
VERSION_CODENAME=$VERSION_CODENAME
else
echo "Не удалось определить дистрибутив."
exit 1
fi
}
# Функция для установки Docker
install_docker() {
if ! command -v docker &> /dev/null; then
echo "Установка Docker для $DISTRO..."
# Установка зависимостей
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
# Добавление официального GPG ключа Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/$DISTRO/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Добавление репозитория Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$DISTRO \
$VERSION_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Установка Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
if [ $? -eq 0 ]; then
echo "Docker успешно установлен."
else
echo "Ошибка при установке Docker из официального репозитория. Пробуем установить из стандартных репозиториев..."
sudo apt-get install -y docker.io docker-compose
fi
else
echo "Docker уже установлен."
fi
}
# Функция для установки tmux
install_tmux() {
echo "Выберите вариант установки tmux:"
echo "1) Установка из репозитория (простая)"
echo "2) Установка с поддержкой GPU и компиляцией"
read -p "Введите номер варианта (1/2): " tmux_choice
case $tmux_choice in
1)
check_install tmux
;;
2)
echo "Установка tmux с поддержкой GPU и компиляцией..."
sudo apt-get install -y libevent-dev ncurses-dev build-essential bison pkg-config
git clone https://github.com/tmux/tmux.git
cd tmux
git checkout $(git tag | sort -V | tail -n 1)
./configure --enable-gpu
make
sudo make install
cd ..
rm -rf tmux
;;
*)
echo "Неверный выбор. Устанавливается tmux из репозитория."
check_install tmux
;;
esac
}
# Основной процесс установки
echo "Начало установки..."
detect_distro
echo "Определен дистрибутив: $DISTRO $VERSION_CODENAME"
# Обновление пакетов
echo "Обновление пакетов..."
sudo apt-get update && sudo apt-get upgrade -y
# Установка основных утилит
install_tmux
check_install mc
check_install git
check_install net-tools
# Установка Docker
install_docker
# Установка dry
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/
fi
# Установка btop с поддержкой GPU
if ! command -v btop &> /dev/null; then
echo "Установка btop с поддержкой GPU..."
sudo apt-get install -y coreutils sed git build-essential
git clone https://github.com/aristocratos/btop.git
cd btop
make GPU_SUPPORT=true
sudo make install
sudo make setcap
cd ..
rm -rf btop
fi
# Добавление пользователя в группу docker
if ! groups "$USER" | grep -q '\bdocker\b'; then
echo "Добавление пользователя $USER в группу docker..."
sudo usermod -aG docker "$USER"
echo "Перезагрузите сессию или выполните 'newgrp docker' для применения изменений."
fi
# Клонирование репозитория
REPO_DIR="opendoor-vpn-to-tor"
if [ ! -d "$REPO_DIR" ]; then
echo "Клонирование репозитория..."
git clone https://git.softuniq.eu/OpenDoor/opendoor-vpn-to-tor.git "$REPO_DIR"
fi
# Копирование файлов tmux
if [ -d "./tmux" ]; then
echo "Копирование файлов tmux..."
sudo cp -r ./tmux/* /root/
fi
# Проверка установленных версий
echo "Установленные версии:"
tmux -V 2>/dev/null || echo "tmux не установлен"
mc -V 2>/dev/null || echo "mc не установлен"
dry --version 2>/dev/null || echo "dry не установлен"
docker --version 2>/dev/null || echo "docker не установлен"
docker compose version 2>/dev/null || echo "docker compose не установлен"
git --version 2>/dev/null || echo "git не установлен"
btop --version 2>/dev/null || echo "btop не установлен"
echo "Установка и настройка завершены!"