opendoor-vpn-to-tor/setup_vps.sh
2025-01-15 12:50:05 +00:00

146 lines
5.4 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
# Установка 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 (без дефиса, как 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
# Установка 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
# Копирование конфигурации tmux и плагинов в /root
TMUX_SOURCE="$REPO_DIR/tmux"
TMUX_DEST="/root"
if [ -d "$TMUX_SOURCE" ]; then
echo "Копирование конфигурации tmux и плагинов в /root..."
sudo cp -r "$TMUX_SOURCE"/. "$TMUX_DEST"
if [ $? -eq 0 ]; then
echo "Конфигурация tmux и плагины успешно скопированы в $TMUX_DEST."
else
echo "Ошибка при копировании конфигурации tmux и плагинов."
exit 1
fi
else
echo "Директория с конфигурацией tmux не найдена в репозитории."
exit 1
fi
# Вывод версий установленных программ
echo "Установленные версии:"
tmux -V
mc -V
dry --version
docker --version
docker compose version
git --version
echo "Установка и настройка завершены!"