Обновить setup_vps.sh
This commit is contained in:
parent
a725f1aca0
commit
a10e045976
110
setup_vps.sh
110
setup_vps.sh
@ -28,12 +28,42 @@ get_arch() {
|
|||||||
case $ARCH in
|
case $ARCH in
|
||||||
x86_64) echo "amd64" ;;
|
x86_64) echo "amd64" ;;
|
||||||
aarch64) echo "arm64" ;;
|
aarch64) echo "arm64" ;;
|
||||||
armv7l) echo "armv7" ;;
|
armv7l|armhf) echo "arm" ;;
|
||||||
armv6l) echo "armv6" ;;
|
*) echo "unsupported" ;;
|
||||||
*) echo "$ARCH" ;;
|
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Функция для установки dry с учетом архитектуры
|
||||||
|
install_dry() {
|
||||||
|
ARCH=$(get_arch)
|
||||||
|
echo -e "${YELLOW}Определена архитектура: $ARCH${NC}"
|
||||||
|
|
||||||
|
if [ "$ARCH" == "unsupported" ]; then
|
||||||
|
echo -e "${RED}Ваша архитектура не поддерживается. Пропускаем установку dry.${NC}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Для ARM устройств используем версию из репозиториев
|
||||||
|
if [[ "$ARCH" == "arm64" || "$ARCH" == "arm" ]]; then
|
||||||
|
echo -e "${YELLOW}Установка dry из репозиториев для ARM...${NC}"
|
||||||
|
sudo apt-get install -y dry
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${YELLOW}Установка dry...${NC}"
|
||||||
|
DRY_URL="https://github.com/moncho/dry/releases/latest/download/dry-linux-${ARCH}"
|
||||||
|
echo -e "${YELLOW}Скачивание dry для архитектуры ${ARCH}...${NC}"
|
||||||
|
|
||||||
|
if curl -fsSL $DRY_URL -o dry; then
|
||||||
|
chmod +x dry
|
||||||
|
sudo mv dry /usr/local/bin/
|
||||||
|
echo -e "${GREEN}dry успешно установлен.${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}Ошибка при скачивании dry. Попробуем установить из репозиториев...${NC}"
|
||||||
|
sudo apt-get install -y dry || echo -e "${RED}Не удалось установить dry.${NC}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Функция для определения дистрибутива
|
# Функция для определения дистрибутива
|
||||||
detect_distro() {
|
detect_distro() {
|
||||||
if [ -f /etc/os-release ]; then
|
if [ -f /etc/os-release ]; then
|
||||||
@ -50,19 +80,12 @@ detect_distro() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Предупреждение о запуске от root (только информативное)
|
|
||||||
if [ "$(id -u)" -eq 0 ]; then
|
|
||||||
echo -e "${YELLOW}Внимание: Скрипт запущен от root.${NC}"
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Обновление пакетов
|
# Обновление пакетов
|
||||||
echo -e "${YELLOW}Обновление пакетов...${NC}"
|
echo -e "${YELLOW}Обновление пакетов...${NC}"
|
||||||
sudo apt-get update && sudo apt-get upgrade -y
|
sudo apt-get update && sudo apt-get upgrade -y || {
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "${RED}Ошибка при обновлении пакетов.${NC}"
|
echo -e "${RED}Ошибка при обновлении пакетов.${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
# Установка базовых утилит
|
# Установка базовых утилит
|
||||||
check_install tmux
|
check_install tmux
|
||||||
@ -95,34 +118,21 @@ if ! command -v docker &> /dev/null; then
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
|
||||||
# Установка Docker
|
# Установка Docker
|
||||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
if ! sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; then
|
||||||
|
echo -e "${RED}Ошибка при установке Docker. Пробуем установить docker.io...${NC}"
|
||||||
if [ $? -eq 0 ]; then
|
sudo apt-get install -y docker.io docker-compose-plugin || {
|
||||||
echo -e "${GREEN}Docker успешно установлен.${NC}"
|
echo -e "${RED}Не удалось установить Docker.${NC}"
|
||||||
else
|
exit 1
|
||||||
echo -e "${RED}Ошибка при установке Docker. Попробуем установить docker.io из стандартных репозиториев...${NC}"
|
}
|
||||||
sudo apt-get install -y docker.io docker-compose-plugin
|
|
||||||
fi
|
fi
|
||||||
|
echo -e "${GREEN}Docker успешно установлен.${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${GREEN}Docker уже установлен.${NC}"
|
echo -e "${GREEN}Docker уже установлен.${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Установка dry с учетом архитектуры
|
# Установка dry
|
||||||
if ! command -v dry &> /dev/null; then
|
if ! command -v dry &> /dev/null; then
|
||||||
echo -e "${YELLOW}Установка dry...${NC}"
|
install_dry
|
||||||
ARCH=$(get_arch)
|
|
||||||
DRY_URL="https://github.com/moncho/dry/releases/latest/download/dry-linux-${ARCH}"
|
|
||||||
echo -e "${YELLOW}Скачивание dry для архитектуры ${ARCH}...${NC}"
|
|
||||||
curl -sSL $DRY_URL -o dry
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo -e "${RED}Ошибка при скачивании dry.${NC}"
|
|
||||||
echo -e "${YELLOW}Попробуем установить из альтернативного источника...${NC}"
|
|
||||||
sudo apt-get install -y dry
|
|
||||||
else
|
|
||||||
chmod +x dry
|
|
||||||
sudo mv dry /usr/local/bin/
|
|
||||||
echo -e "${GREEN}dry успешно установлен.${NC}"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo -e "${GREEN}dry уже установлен.${NC}"
|
echo -e "${GREEN}dry уже установлен.${NC}"
|
||||||
fi
|
fi
|
||||||
@ -171,7 +181,7 @@ fi
|
|||||||
# Добавление пользователя в группу docker
|
# Добавление пользователя в группу docker
|
||||||
if ! groups $USER | grep -q '\bdocker\b'; then
|
if ! groups $USER | grep -q '\bdocker\b'; then
|
||||||
echo -e "${YELLOW}Добавление пользователя $USER в группу docker...${NC}"
|
echo -e "${YELLOW}Добавление пользователя $USER в группу docker...${NC}"
|
||||||
sudo usermod -aG docker $USER
|
sudo usermod -aG docker $USER || echo -e "${RED}Не удалось добавить пользователя в группу docker.${NC}"
|
||||||
echo -e "${GREEN}Пользователь $USER добавлен в группу docker.${NC}"
|
echo -e "${GREEN}Пользователь $USER добавлен в группу docker.${NC}"
|
||||||
echo -e "${YELLOW}Для применения изменений可能需要 перезапустить сессию.${NC}"
|
echo -e "${YELLOW}Для применения изменений可能需要 перезапустить сессию.${NC}"
|
||||||
else
|
else
|
||||||
@ -182,33 +192,29 @@ fi
|
|||||||
REPO_DIR="opendoor-vpn-to-tor"
|
REPO_DIR="opendoor-vpn-to-tor"
|
||||||
if [ ! -d "$REPO_DIR" ]; then
|
if [ ! -d "$REPO_DIR" ]; then
|
||||||
echo -e "${YELLOW}Клонирование репозитория opendoor-vpn-to-tor...${NC}"
|
echo -e "${YELLOW}Клонирование репозитория opendoor-vpn-to-tor...${NC}"
|
||||||
git clone https://git.softuniq.eu/OpenDoor/opendoor-vpn-to-tor.git "$REPO_DIR"
|
git clone https://git.softuniq.eu/OpenDoor/opendoor-vpn-to-tor.git "$REPO_DIR" || {
|
||||||
|
echo -e "${RED}Ошибка при клонировании репозитория.${NC}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
echo -e "${GREEN}Репозиторий успешно клонирован.${NC}"
|
echo -e "${GREEN}Репозиторий успешно клонирован.${NC}"
|
||||||
|
|
||||||
# Копирование файлов tmux из репозитория в /root/
|
|
||||||
if [ -d "$REPO_DIR/tmux" ]; then
|
|
||||||
echo -e "${YELLOW}Копирование файлов tmux в /root/...${NC}"
|
|
||||||
sudo cp -r "$REPO_DIR/tmux/"* /root/
|
|
||||||
echo -e "${GREEN}Файлы tmux успешно скопированы.${NC}"
|
|
||||||
else
|
|
||||||
echo -e "${YELLOW}Папка tmux не найдена в репозитории.${NC}"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo -e "${GREEN}Репозиторий уже клонирован.${NC}"
|
echo -e "${GREEN}Репозиторий уже клонирован.${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Проверяем и копируем файлы tmux если репозиторий уже существует
|
# Копирование файлов tmux
|
||||||
if [ -d "$REPO_DIR/tmux" ]; then
|
if [ -d "$REPO_DIR/tmux" ]; then
|
||||||
echo -e "${YELLOW}Копирование файлов tmux в /root/...${NC}"
|
echo -e "${YELLOW}Копирование файлов tmux в /root/...${NC}"
|
||||||
sudo cp -r "$REPO_DIR/tmux/"* /root/
|
sudo cp -r "$REPO_DIR/tmux/"* /root/ || echo -e "${RED}Не удалось скопировать файлы tmux.${NC}"
|
||||||
echo -e "${GREEN}Файлы tmux успешно скопированы.${NC}"
|
echo -e "${GREEN}Файлы tmux успешно скопированы.${NC}"
|
||||||
fi
|
else
|
||||||
|
echo -e "${YELLOW}Папка tmux не найдена в репозитории.${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Вывод версий установленных программ
|
# Вывод версий установленных программ
|
||||||
echo -e "\n${GREEN}=== Установленные версии ===${NC}"
|
echo -e "\n${GREEN}=== Установленные версии ===${NC}"
|
||||||
tmux -V || echo "tmux: не удалось получить версию"
|
tmux -V || echo "tmux: не удалось получить версию"
|
||||||
mc -V || echo "mc: не удалось получить версию"
|
mc -V || echo "mc: не удалось получить версию"
|
||||||
dry --version || echo "dry: не удалось получить версию"
|
command -v dry >/dev/null && dry --version || echo "dry: не установлен или не поддерживается"
|
||||||
docker --version || echo "docker: не удалось получить версию"
|
docker --version || echo "docker: не удалось получить версию"
|
||||||
docker compose version || echo "docker compose: не удалось получить версию"
|
docker compose version || echo "docker compose: не удалось получить версию"
|
||||||
git --version || echo "git: не удалось получить версию"
|
git --version || echo "git: не удалось получить версию"
|
||||||
|
Loading…
Reference in New Issue
Block a user