Configure PiHole usando Docker MacVlan Networks

Descripción general

 

 

Internet está lleno de anuncios estos días y el pihole es una forma fantástica de bloquear todos estos anuncios de forma configurable. No todo el mundo tiene una Raspberry Pi de repuesto, pero algunas personas sí tienen un servidor con Docker instalado.

Esta publicación de blog mostrará algunos trucos realmente interesantes utilizando las redes Macvlan de Docker y las redes Linux para crear una instancia pihole conectada a su red local.

El resultado final será un contenedor acoplable pihole que se ejecutará con una IP dedicada, expuesta a su red local. Esto permitirá que todos los clientes lo utilicen como servidor DNS y habilitará bonitos gráficos de uso y desgloses de clientes en su panel de administración de pihole.

 

 

 

Usaremos el siguiente código:

version: '2'

services:
  pihole:
    container_name: pihole-vlan
    image: pihole/pihole:latest # check the latest version on docker hub.
    hostname: pihole # set an easy hostname to remember
    domainname: exampledomain # your local domain name
    mac_address: de:ad:be:ef:ff:01 # can change or leave this
    cap_add:
      - NET_ADMIN
    networks:
      macvlan: # same as network specified below
        ipv4_address: 192.168.1.3 # the IP of the pihole container
    dns:
      - 127.0.0.1 # use local DNS, since the pihole 
      - 1.1.1.1 # optional fallback DNS
    ports: # expose all pihole ports.
      - 443/tcp
      - 53/tcp
      - 53/udp
      - 67/udp
      - 80/tcp
    volumes: # mount our data volumes.
       - '/Externo/pihole/etc-pihole:/etc/pihole/etc-pihole/:/etc/pihole/'
       - '/Externo/pihole/etc-pihole:/etc/pihole/etc-dnsmasq.d/:/etc/dnsmasq.d/'
       - '/Externo/pihole/etc-pihole:/etc/pihole/backups/:/backups/' # backups explained later
    environment: # set variables for pihole configuration.
      ServerIP: 192.168.1.3 # must match ipv4_address above
      VIRTUAL_HOST: pihole.exampledomain  # Must be hostname + domainname from above
      WEBPASSWORD: "SirGamba"
      TZ: 'Europe/Madrid' # pick your timezone
    restart: unless-stopped

networks:
  macvlan:   # externally created network (later in article)
    external: true
    

Explicación de algunas líneas del archivo acoplable:

  • Configuramos el container_nameimagehostnamecomo de costumbre.
  • Tenemos que especificar una dirección mac para que los enlaces de red funcionen correctamente más adelante.
  • Agregamos la NET_ADMINcapacidad que permite la modificación de interfaces de red en el sistema host.
  • configuramos una estática ipv4_addressen nuestra macvlan0red (usada más adelante): esta es la dirección que será su DNS local para toda su red
  • Configuramos manualmente DNS en el contenedor de host en localhost, para que utilice el solucionador pihole
  • Exponemos todos los puertos pihole.
  • Establecemos algunas variables de entorno obligatorias. IMPORTANTE: asegúrese de que la ServerIPvariable coincida con la dirección IP estática que eligió anteriormente.

Nota: también notarás que hacemos referencia a una red externa llamada macvlan0, en lugar de incluir una sección como esta que define una red en el archivo docker-compose:

networks:
  pihole_network:
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: 10.0.37.9/24
          gateway: 10.0.37.1 
          ip_range: 10.0.37.59/28

Esta sería una solución decente si solo usa un contenedor, pero para un mejor mantenimiento se recomienda crear la red macvlan externamente y simplemente conectar el contenedor configurando

networks:
  macvlan0:
    external: true

Esto asegurará que su red no desaparezca cuando ejecute un archivo docker-compose down, ya que eso interrumpiría los scripts de inicio definidos a continuación.

Crear la red macvlan

Como se mencionó anteriormente, queremos crear la red acoplable manualmente:

docker network create -d macvlan \
    --subnet=10.0.37.9/24 --gateway=10.0.37.1 \
    --ip-range 10.0.37.59/28 \
    -o parent=eth0 \
    --aux-address="myserver=10.0.37.60" \
    macvlan0

Aquí hay una explicación de las banderas :

  • -destablece el driver, que en este caso es macvlan
  • --subnet  dirección de su subred local. Tome la IP de su servidor y agregue la /24bandera para que el rango se establezca de .1  a.254
  • --gatewayes la IP de su enrutador local, para que el contenedor acoplable pueda marcar a Internet
  • -oestablece opciones específicas del controlador. En este caso, le informamos al macvlanconductor que utilice la eth0interfaz principal. Esto debe configurarse en la misma interfaz física que utiliza su servidor para la IP física.
  • --aux-addressdefine una dirección reservada en esta nueva red. Esto garantiza que a ningún contenedor acoplable se le asigne esta IP, ya que provocaría una colisión de red. Debe elegir una dirección que esté dentro del rango de IP de macvlan.
  • --ip-rangees el comando más importante aquí. Consulte a continuación una explicación sobre cómo configurar esto.

Nota: el rango de ip debe ser:

  1. Una subsección de su red local principal (es decir, dentro de la subred). En este caso, el rango de IP es 10.0.37.59/28, que se expande a 10.0.37.49:10.0.37.62
  2. Debería --aux-addressestar presente dentro del rango de IP, por lo que en este caso elegimos 10.0.37.60

Set up a PiHole using Docker MacVlan Networks — Blog :: Ivan Smirnov

Tutorial Completo 👉 Instalar DOCKER en OpenMediaVault 6 como ellos manda

Buenas a todos, en este vídeo vamos a ver como instalar el nuevo sistema de Docker integrado de OpenMediaVault, a continuación os dejo el primer comando que tenéis que poner para poder instalar las OMV-Extras. También más abajo, como habilitar el repositorio e instalar. Por último, podéis encontrar en enlace a su guía.

Instalar openmediavault-omvextrasorg.
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
Habilite el repositorio docker. En la GUI en System > omv-extras, haga clic en el botón Docker repo
    • En la GUI de OMV, vaya a System > Plugins busque y seleccione el complemento, luego haga clic en Instalar en el menú superior.
  • Crear el usuario «appuser»

    • En la GUI OMV vaya a Usuarios > Usuarios haga clic en el botón +Crear
      • Definir el nombre de usuario de la aplicación
      • Asignar contraseña.
      • En el campo de grupos lo agregamos a los grupos docker y usuarios.
        • La pertenencia a estos grupos debe garantizar que appuser tenga permisos de escritura en las carpetas dockerappdata y compose. Compruébalo. Si no es así, asegúrese de que los permisos de carpeta son 775, el propietario es root y el grupo propietario es usuarios. Consulte Permisos de NAS en OMV
        • Si necesita restablecer algunos permisos en su NAS, puede usar el complemento Reset Permissions para OMV6
      • Haga clic en Guardar.
    • Abra las columnas UID y GID y anote los valores que tiene el usuario appuser.
      • Ejemplo: UID=1002 GID=100
      • Si ya tenía un usuario, el UID del usuario de la aplicación será 1001. Si tenía 2 usuarios, el UID del usuario de la aplicación será 1002, etc. Esto puede variar en su sistema.
    • Asegúrese de que el usuario appuser tiene los permisos de lectura o lectura/escritura necesarios, según el caso, en las carpetas incluidas en cada contenedor. Puede usar la GUI de OMV para hacer esto.

OMV6:docker_in_omv [omv-extras.org]

Instalar Docker en OpenMediaVault 6

¿ Qué es Docker ?

www.docker.com

Un contenedor es una unidad estándar de software que empaqueta el código y todas sus dependencias para que la aplicación se ejecute de manera rápida y confiable de un entorno informático a otro. Una imagen de contenedor de Docker es un paquete de software ligero, independiente y ejecutable que incluye todo lo necesario para ejecutar una aplicación: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema y configuraciones.

Las imágenes de contenedores se convierten en contenedores en tiempo de ejecución y, en el caso de los contenedores de Docker, las imágenes se convierten en contenedores cuando se ejecutan en Docker Engine. Disponible para aplicaciones basadas en Linux y Windows, el software en contenedores siempre se ejecutará de la misma manera, independientemente de la infraestructura. Los contenedores aíslan el software de su entorno y garantizan que funcione de manera uniforme a pesar de las diferencias, por ejemplo, entre el desarrollo y la puesta en escena.

O, más brevemente, es una forma de instalar cualquier aplicación en OMV sin romper el sistema .

omv6:docker_in_omv [omv-extras.org]

⚡️ Instalar PLEX OpenMediaVault DOCKER Rápido 🏃‍♂️

Para instalar Plex en Docker, hay varias formas de hacerlo. Una de ellas es utilizando docker-compose. Podemos copiarlo desde aquí o en su linuxserver/plex – Docker Image | Docker Hub

docker-compose (recommended, click here for more info)

---
version: "2.1"
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - VERSION=docker
      - PLEX_CLAIM= #optional
    volumes:
      - /path/to/library:/config
      - /path/to/tvseries:/tv
      - /path/to/movies:/movies
    restart: unless-stopped

 

😱 Instalar DOCKER FÁCIL usando PLANTILLAS – OMV – REDDIT

Cómo funciona:

  1. Inicie sesión en Portainer y vaya a Configuración

  2. Habilitar Usar plantillas externas

  3. Agregue nuestra URL de plantilla https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Template/template.json

  4. Haz clic en Guardar configuración

  5. Ve a Plantillas de aplicaciones y haz clic en actualizar en la parte superior

La plantilla de aplicación SelfhostedPro y NASHosted Portainer (¡83 aplicaciones y contando!) : portainer (reddit.com)

CODE SERVER instalado en Docker OMV

linuxserver/code-server – Docker Image | Docker Hub

 

---
version: "2.1"
services:
  code-server:
    image: lscr.io/linuxserver/code-server:latest
    container_name: code-server
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - PASSWORD=password #optional
      - HASHED_PASSWORD= #optional
      - SUDO_PASSWORD=password #optional
      - SUDO_PASSWORD_HASH= #optional
      - PROXY_DOMAIN=code-server.my.domain #optional
      - DEFAULT_WORKSPACE=/config/workspace #optional
    volumes:
      - /path/to/appdata/config:/config
    ports:
      - 8443:8443
    restart: unless-stopped

☁️ CREAR NUBE PRIVADA – FILERUN Docker Compose – Nueva versión

Buenos días, en este vídeo y artículo, vamos a ver como instalar Filerun en Docker.

Es una nube privada que podemos instalar en nuestro sistema operativo Linux, en mi caso Raspberry Pi.

Te dejo por aquí el código del archivo docker-compose.yml que tienes que crear

version: '2'

services:
  db:
    image: tobi312/rpi-mariadb:10.3
    environment:
      MYSQL_ROOT_PASSWORD: cambialo
      MYSQL_USER: cambialo
      MYSQL_PASSWORD: cambialo
      MYSQL_DATABASE: your_mysql_database
      PUID: 1000
      PGID: 1000
      TZ: Europe/Madrid
    volumes:
      - ./config/filerun/db:/var/lib/mysql

  web:
    image: filerun/filerun:arm64v8
    environment:
      FR_DB_HOST: db
      FR_DB_PORT: 3306
      FR_DB_NAME: your_mysql_database
      FR_DB_USER: cambialo
      FR_DB_PASS: cambialo
      APACHE_RUN_USER: pi
      APACHE_RUN_USER_ID: 1000
      APACHE_RUN_GROUP: pi
      APACHE_RUN_GROUP_ID: 1000
    depends_on:
      - db
    links:
      - db:db
    ports:
      - "8080:80"
    volumes:
      - ./config/filerun/html:/var/www/html
      - ./config/filerun:/user-files

Instalar QBitTorrent en Docker Compose

https://youtu.be/jUWNyWaLfyA

Lo primero que tenemos que hacer es asegurarnos de que tenemos instalado Docker-Compose o instalarlo si no es el  caso:

apt install docker-compose

Después, para mantener un poco el orden, he creado una carpeta para este caso y entro en ella:

mkdir qbittorrent
cd qbittorrent/

Ahora creamos un archivo con un nombre concreto y copiamos las líneas necesarias para su instalación:

nano docker-compose.yml

Este texto siguiente es el que tenemos que copiar, cambiaremos lo necesario para nuestra instalación, como la zona y país, puerto, ruta de los volumes, etc…

---
version: "2.1"
services:
  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - WEBUI_PORT=8080
    volumes:
      - /path/to/appdata/config:/config
      - /path/to/downloads:/downloads
    ports:
      - 8080:8080
      - 6881:6881
      - 6881:6881/udp
    restart: unless-stopped

Para  guardar y salir, Control + X y Yes o Si para completar.

Una vez terminado, para instalarlo ejecutaremos el siguiente comando:

docker-compose up -d

Para poder acceder vía web, tenemos que poner en nuestro navegador, la IP o nombre del equipo donde lo hemos instalado, seguido de :8080

Actualizar Raspberry Pi a Debian 11

Vamos a ver con estos pasos como actualizar nuestros sistema operativo en la Raspberry Pi a la última versión, en este caso Debian 11.

El sistema operativo Raspberry Pi se basa en Debian y sigue sus versiones. La última versión del sistema operativo Raspberry Pi disponible para descargar es actualmente «Buster», basada en Debian 10.
Si está atrasado y necesita actualizar su sistema operativo Raspberry Pi o desea probar la siguiente versión («Bullseye», por ejemplo, Debian 11), puede seguir estos pasos.

El sistema operativo Raspberry Pi utilizó repositorios de paquetes para descargar nuevas actualizaciones para el software instalado. Al usar repositorios para otra versión, es posible actualizar a la última versión sin perder ningún dato. La URL se establece en /etc/apt/sources.list.

Desde terminal

Comience abriendo una ventana de terminal.
Puede hacer esto en el escritorio, en Raspberry Pi OS Lite o incluso a través de una conexión SSH, no importa.

Estos son los pasos a seguir:

  • Abra el archivo sources.list con:
    sudo nano /etc/apt/sources.list
  • Verá una o más líneas como esta:
    deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
  • Edite esta línea y reemplace el nombre del código Debian actual con el que desea instalar, por ejemplo:
    deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi

El siguiente paso es realizar una actualización completa de su sistema:

  • Actualice las listas de paquetes:
    sudo apt update
  • Luego actualiza todo con:
    sudo apt upgrade
  • Presione “Y” para confirmar la instalación.
    Comenzará a descargar todos los paquetes ahora.
  • Presione “q” para salir del texto apt-listchanges.
  • Dependiendo de los paquetes que tenga, es posible que deba responder algunas preguntas durante la instalación (sobrescribir la configuración, reiniciar los servicios, etc.).

Tomará un tiempo descargar e instalar todo el paquete nuevo.
Una vez hecho esto, es una buena idea reiniciar su sistema para aplicar todos los cambios directamente:
sudo reboot

Eso es todo, ahora estoy actualizado con la diana ejecutándose en mi Raspberry Pi 4: 

cat /etc/debian_version

Fuente

Crear tu PROPIA NUBE con SYNCTHING RASPBERRY PI nativa

Vamos a configurar Syncthing para hacer copia y sincronización de nuestros archivos entre equipos. Esta será una instalación nativa en Raspberry Pi OS, más abajo puedes ver como instalarlo en Docker.

Comandos para ejecutar la instalación en Linux

Vamos actualizar los paquetes del sistema primero.

sudo apt update
sudo apt upgrade

Si estás en una Raspberry Pi, es recomendable actualizar el firmare.

sudo rpi-update

Ahora ya podemos pasar el comando de instalación.

sudo apt install syncthing

Si te da error de apt-transport-https, tenemos que instalarlo para corregirlo, sino no hace falta.

sudo apt install apt-transport-https
sudo apt install -f

Configuración

Para arrancarlo basta con escribir el nombre y ejecutar.

syncthing

Si ves líneas que empiezan por INFO es que está corriendo correctamente, podemos pararlo con Control + C para seguir con la configuración.

Ahora vamos a editar el siguiente archivo con nano por ejemplo

nano ~/.config/syncthing/config.xml

Cambia la dirección 127.0.0.1 a 0.0.0.0. Quedará algo parecido a esto

<gui enabled="true" tls="false" debugging="false">
    <address>0.0.0.0:8384</address>
    <user></user>
    <password></password>
    <apikey></apikey>
    <theme>default</theme>
</gui>

Arrancar servicio Syncthing automáticamente

Es necesario copiar el siguiente contenido en el archivo /etc/systemd/system/syncthing@.service recuerda que puede ejecutarlo con nano delante, y sudo para que tengas permisos.

sudo nano /etc/systemd/system/syncthing@.service
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
Wants=syncthing-inotify@.service

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

Se puede descargar de la siguiente forma pero a mí no me ha funcionado.

wget https://raw.githubusercontent.com/syncthing/syncthing/master/etc/linux-systemd/system/syncthing%40.service
sudo mv syncthing@.service /etc/systemd/system/

Ahora ejecutaremos los siguiente comandos para habilitar el servicio, arrancarlo y revisar como está.

sudo systemctl enable syncthing@pi.service
sudo systemctl start syncthing@pi.service
systemctl status syncthing@pi.service

Tutoriales de OpenMediaVault

Más tutoriales de OpenMediaVault que pueden serte útiles. 

/ ========================================= /

¿Quieres ser generoso y ayudar a apoyar mi canal?

A continuación, se muestran algunas formas de apoyo:

Hazte Miembro: http://www.playonlinew.com/miembro

Ko-fi: https://ko-fi.com/sirgamba

/ ========================================= /

¡Recuerda dejar un me gusta en este video y suscríbete si quieres ver más!

/ ========================================= /

👉 También puedes seguirme en:

► SUSCRIBETE https://goo.gl/qDLQKe

► FORO de ayuda http://Playonlinew.com

► Twitch: https://www.twitch.tv/gamba85

► Twitter: https://twitter.com/Gamba85_

► Facebook: https://goo.gl/NzWfVU

► Canal Gaming: http://www.playonlinew.com/gambagamer

► Discord https://discord.gg/pajjFWt

Fuente

 

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies