#!/bin/bash set -euo pipefail # ============================== # Конфигурация через переменные # ============================== TARGET_DIR="${TARGET_DIR:-/opt/appdata/pihole/etc/dnsmasq.d}" IPSET_CONF="${IPSET_CONF:-91-ipset-bbrkn.conf}" RESOLVE_CONF="${RESOLVE_CONF:-92-resolve-bbrkn.conf}" DOCKER_CONTAINER="${DOCKER_CONTAINER:-pihole}" echo "Deploying configuration files to $TARGET_DIR" # Бэкап существующих файлов if [ -f "$TARGET_DIR/$IPSET_CONF" ]; then cp "$TARGET_DIR/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF.backup.$(date +%Y%m%d-%H%M%S)" fi if [ -f "$TARGET_DIR/$RESOLVE_CONF" ]; then cp "$TARGET_DIR/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF.backup.$(date +%Y%m%d-%H%M%S)" fi # Копирование новых файлов cp "/tmp/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF" cp "/tmp/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF" # Перезапуск контейнера echo "Restarting $DOCKER_CONTAINER container..." docker restart "$DOCKER_CONTAINER" sleep 5 if ! docker ps | grep -q "$DOCKER_CONTAINER"; then echo "Error: $DOCKER_CONTAINER container failed to start" exit 1 fi echo "Deployment completed successfully" DOMAIN_COUNT=$(grep -c '^ipset=' "$TARGET_DIR/$IPSET_CONF" || echo "0") echo "Applied configuration for $DOMAIN_COUNT domains"