#!/bin/bash # Скрипт для обновления системы и установки пакетов (Версия 2) # Включает установку Docker, Caddy и Zabbix Agent set -e # Прерывать выполнение при ошибке echo "=========================================" echo "Начинаем обновление системы..." echo "=========================================" # 1) Базовое обновление системы echo "Обновление списка пакетов..." apt update echo "Обновление установленных пакетов..." apt upgrade -y echo "Установка базовых пакетов (sudo, curl, fish)..." apt install -y sudo curl fish echo "=========================================" echo "Установка Docker..." echo "=========================================" # Удаление старых пакетов Docker echo "Удаление старых пакетов Docker..." sudo apt remove -y docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc 2>/dev/null || true # Добавление официального GPG ключа Docker echo "Добавление GPG ключа Docker..." sudo apt update sudo apt install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Добавление репозитория Docker echo "Добавление репозитория Docker..." sudo tee /etc/apt/sources.list.d/docker.sources </dev/null || true echo "Docker установлен. Для применения прав группы docker выполните: newgrp docker или перезайдите в систему" echo "=========================================" echo "Установка Caddy..." echo "=========================================" # Установка Caddy echo "Установка Caddy..." sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install -y caddy echo "=========================================" echo "Настройка Caddyfile..." echo "=========================================" # Очистка и запись нового Caddyfile echo "Очистка /etc/caddy/Caddyfile и добавление шаблона..." # Запрос PORT у пользователя read -p "Введите PORT для обратного прокси (например, 8080): " PORT if [ -z "$PORT" ]; then PORT="8080" echo "Порт не указан, используем порт по умолчанию: $PORT" fi # Создание нового Caddyfile sudo tee /etc/caddy/Caddyfile > /dev/null </dev/null || echo 'не установлен')" echo " - Caddy: $(caddy version 2>/dev/null || echo 'не установлен')" echo " - Zabbix Agent: $(zabbix_agentd --version 2>/dev/null | head -1 || echo 'не установлен')" echo "" echo "Caddy настроен на порт: $PORT" echo "Zabbix Agent настроен на сервер: zbx.int.kodyffy.ru" echo "Hostname: $HOSTNAME.kodyffy" echo "" echo "Для применения прав Docker выполните: newgrp docker" echo "Для проверки Caddy: sudo systemctl status caddy" echo "Для проверки Zabbix Agent: sudo systemctl status zabbix-agent" echo "========================================="