Cargando ahora

Adguard: Instalar y hacer backup desplegándolo en container (por ejemplo con Docker)

adguard

En mi caso he utilizado una SBC Orange PI de 15 euros para instalar mi Adguard y así es mas independiente y el consumo energético es despreciable. El sistema operativo que he usado es Arch Linux, para equipos con recursos limitados es siempre la mejor opción. Si tienes interés en verlo en un vídeo de Youtube ponte en contacto conmigo, a mayor interés mas posibilidades que publiquemos un vídeo tutorial.

Parte 1: Instalación de AdGuard Home en un Contenedor Docker

Paso 1: Instalar Docker en Arch Linux

Antes de comenzar, necesitas tener Docker instalado en tu sistema.

Instala Docker:

sudo pacman -S docker

Inicia y Habilita el Servicio Docker:

sudo systemctl start docker.service
sudo systemctl enable docker.service

Agregar tu Usuario al Grupo Docker (Opcional):

Para ejecutar comandos Docker sin sudo​​:

sudo usermod -aG docker $USER

Nota: Después de ejecutar este comando, cierra sesión y vuelve a iniciarla para que los cambios surtan efecto.


Paso 2: Crear Directorios para Configuración y Datos Persistentes

Necesitamos crear directorios en el host para almacenar los datos y la configuración de AdGuard Home. Esto garantiza que los datos se mantengan incluso si el contenedor se elimina o recrea.

mkdir -p ~/adguardhome/config
mkdir -p ~/adguardhome/work

Paso 3: Ejecutar AdGuard Home con Docker

Puedes ejecutar AdGuard Home usando el comando docker run​​ o crear un archivo docker-compose.yml​​. Aquí te mostraré ambas opciones.

Opción A: Usando docker run

docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  -v ~/adguardhome/work:/opt/adguardhome/work \
  -v ~/adguardhome/config:/opt/adguardhome/conf \
  -p 53:53/tcp -p 53:53/udp \
  -p 67:67/udp \
  -p 68:68/udp \
  -p 80:80/tcp \
  -p 443:443/tcp \
  -p 3000:3000/tcp \
  adguard/adguardhome

Explicación de los parámetros:

  • ​–name adguardhome​​: Nombra el contenedor «adguardhome».
  • ​–restart unless-stopped​​: Configura el contenedor para reiniciarse automáticamente.
  • ​-v​​: Monta volúmenes para persistencia de datos.
    • ​~/adguardhome/work​​ y ~/adguardhome/config​​: Directorios en el host.
  • ​-p​​: Mapea puertos entre el host y el contenedor.
    • Puertos comunes utilizados por AdGuard Home.
  • ​adguard/adguardhome​​: Imagen oficial de AdGuard Home en Docker Hub.

Opción B: Usando Docker Compose

  1. Instala Docker Compose: Puedes instalar docker-compose​​ utilizando pip​​: sudo pacman -S python-pip sudo pip install docker-compose
  2. Crear un archivo docker-compose.yml: nano ~/adguardhome/docker-compose.yml Contenido del archivo: version: '3' services: adguardhome: container_name: adguardhome image: adguard/adguardhome:latest restart: unless-stopped volumes: - ./work:/opt/adguardhome/work - ./config:/opt/adguardhome/conf ports: - "53:53/tcp" - "53:53/udp" - "67:67/udp" - "68:68/udp" - "80:80/tcp" - "443:443/tcp" - "3000:3000/tcp"
  3. Ejecutar Docker Compose: cd ~/adguardhome docker-compose up -d

Paso 4: Configurar AdGuard Home

Accede a la interfaz web para completar la configuración inicial.

  • URL de Acceso:
    • Si estás en el mismo host: http://localhost:3000​​
    • Desde otro dispositivo: http://<IP_DEL_HOST>:3000​​
  • Asistente de Configuración: Sigue los pasos del asistente para:
  • Seleccionar el idioma.
  • Aceptar los términos y condiciones.
  • Configurar las interfaces de red y puertos (puedes dejar los valores por defecto).
  • Establecer una contraseña de administrador.

Paso 5: Configurar el DNS en Tus Dispositivos o Router

Para que AdGuard Home filtre el tráfico DNS y bloquee anuncios, necesitas apuntar tus dispositivos o router al servidor DNS de AdGuard Home.

  • En el Router:
    • Cambia el servidor DNS primario a la IP del host donde se está ejecutando AdGuard Home.
  • En Dispositivos Individuales:
    • Configura el servidor DNS en las opciones de red de cada dispositivo.

Parte 2: Realizar Copias de Seguridad de AdGuard Home en un Contenedor

Al usar contenedores, la persistencia de datos depende de los volúmenes montados. Aquí te mostraré cómo respaldar y restaurar tu configuración y datos.

Paso 1: Identificar los Directorios de Datos y Configuración

  • Directorios en el Host:
    • Configuración: ~/adguardhome/config​​
    • Datos: ~/adguardhome/work​​

Estos directorios contienen:

  • Configuración: AdGuardHome.yaml​​ y otros archivos de configuración.
  • Datos: Listas de filtros, registros, estadísticas, etc.

Paso 2: Realizar la Copia de Seguridad

Opción 1: Crear un Archivo Comprimido con tar

tar -czvf ~/adguardhome_backup_$(date +%F).tar.gz -C ~/adguardhome/ config work
  • Explicación:
    • ​tar -czvf​​: Crea un archivo tar comprimido con gzip.
    • ​~/adguardhome_backup_$(date +%F).tar.gz​​: Nombre del archivo de respaldo con la fecha actual.
    • ​-C ~/adguardhome/​​: Cambia al directorio ~/adguardhome/​​ antes de empaquetar.
    • ​config work​​: Directorios a incluir en la copia de seguridad.

Opción 2: Copiar los Directorios Manualmente

cp -r ~/adguardhome/config ~/adguardhome_backup/config_$(date +%F)
cp -r ~/adguardhome/work ~/adguardhome_backup/work_$(date +%F)
  • Asegúrate de que el directorio ~/adguardhome_backup/​​ exista.

Paso 3: Automatizar las Copias de Seguridad (Opcional)

Puedes crear un script y programar una tarea cron para realizar copias de seguridad periódicas.

Crear un Script de Respaldo

  1. Crear el archivo del script: nano ~/adguardhome/backup_adguard.sh
  2. Agregar el siguiente contenido: #!/bin/bash tar -czvf ~/adguardhome_backup_$(date +%F).tar.gz -C ~/adguardhome/ config work
  3. Hacer el script ejecutable: chmod +x ~/adguardhome/backup_adguard.sh

Programar con cron

  1. Editar el crontab: crontab -e
  2. Agregar la siguiente línea para realizar un respaldo diario a las 3 a.m.: 0 3 * * * /bin/bash ~/adguardhome/backup_adguard.sh

Paso 4: Restaurar la Copia de Seguridad

Paso 1: Detener y Eliminar el Contenedor Existente (si es necesario)

docker stop adguardhome
docker rm adguardhome

Paso 2: Restaurar los Archivos de Respaldo

Si usaste un archivo tar:

tar -xzvf ~/adguardhome_backup_YYYY-MM-DD.tar.gz -C ~/adguardhome/
  • Reemplaza YYYY-MM-DD​​ con la fecha correspondiente.

Si copiaste los directorios manualmente:

cp -r ~/adguardhome_backup/config_YYYY-MM-DD ~/adguardhome/config
cp -r ~/adguardhome_backup/work_YYYY-MM-DD ~/adguardhome/work

Paso 3: Reiniciar el Contenedor

Opción A: Usando docker run

Ejecuta nuevamente el comando docker run​​ como en la instalación inicial.

Opción B: Usando Docker Compose

cd ~/adguardhome
docker-compose up -d

Consideraciones Adicionales

Seguridad y Permisos

  • Permisos de Archivos: Asegúrate de que los directorios y archivos de configuración tienen los permisos adecuados para que Docker pueda acceder a ellos. chmod -R 755 ~/adguardhome/

Actualización de AdGuard Home

Para actualizar AdGuard Home a una versión más reciente:

  1. Extraer la Última Imagen de Docker: docker pull adguard/adguardhome:latest
  2. Recrear el Contenedor: Si usas docker run:
    • Detén y elimina el contenedor existente: docker stop adguardhome docker rm adguardhome
    • Ejecuta nuevamente el comando docker run​​.
    Si usas Docker Compose: cd ~/adguardhome docker-compose pull docker-compose up -d

Configuración de Puertos y Firewall

  • Asegúrate de que los puertos necesarios están abiertos y no hay conflictos con otros servicios.
  • Firewall: Si tienes un firewall activo, permite el tráfico en los puertos utilizados por AdGuard Home. sudo iptables -A INPUT -p tcp --match multiport --dports 53,67,68,80,443,3000 -j ACCEPT sudo iptables -A INPUT -p udp --match multiport --dports 53,67,68 -j ACCEPT

Uso de HTTPS en la Interfaz Web

Si deseas acceder a la interfaz web de AdGuard Home a través de HTTPS, puedes configurar certificados SSL.

  • Generar Certificados (Ejemplo con Let’s Encrypt): Puedes utilizar herramientas como Let’s Encrypt junto con Certbot para obtener certificados SSL gratuitos.
  • Montar los Certificados en el Contenedor: Actualiza tu docker-compose.yml​​ o comando docker run​​ para incluir los volúmenes de los certificados. Ejemplo en docker-compose.yml: volumes: - ./work:/opt/adguardhome/work - ./config:/opt/adguardhome/conf - /ruta/a/certificados/:/opt/certs/
  • Configurar AdGuard Home: En la interfaz web, ve a Settings > Encryption Settings y configura las rutas a tus certificados.

Recursos Adicionales


¡Espero que esta guía te sea de gran ayuda para instalar y respaldar AdGuard Home utilizando contenedores en Arch Linux! Si tienes más preguntas o necesitas asistencia adicional, no dudes en consultarme. ¡Buena suerte con tu implementación!

Share this content:

Publicar comentario

Puede que te hayas perdido