129 lines
4.4 KiB
Bash
129 lines
4.4 KiB
Bash
#!/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
|
|
|
|
# Добавление текущего пользователя в группу 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
|
|
|
|
# Вывод версий установленных программ
|
|
echo "Установленные версии:"
|
|
tmux -V
|
|
mc -V
|
|
dry --version
|
|
docker --version
|
|
docker compose version
|
|
git --version
|
|
ifconfig --version
|
|
|
|
echo "Установка и настройка завершены!" |