Hell 0 world,
Petit billet rapide sur comment ajouter des services dans la page « services bloqués » de AdGuard Home.
Docker AdGuard
Pour ma part AdGuard Home est dans une instance Docker avec comme conf :
version: '3.8'
services:
adguard:
container_name: adguardhome
image: adguard/adguardhome
environment:
- TZ=Europe/Paris
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
ports:
- 53:53/tcp # port DNS
- 53:53/udp # port DNS
- 5151:80/tcp # port HTTP
- 853:853/tcp
- 5152:3000/tcp
restart: unless-stopped
Mon docker à cette tête :
root@virgile:/disk/DOCKER/adguard# find
.
./work
./work/data
./work/data/sessions.db
./work/data/stats.db
./work/data/filters
./work/data/filters/2.txt
./work/data/filters/1.txt
./work/data/filters/4.txt
./work/data/querylog.json
./docker-compose.ym
./conf
./conf/AdGuardHome.yaml
./AdGuardHome
Modif code Adguard Home
Je voudrais rajouter à la page Services bloqués d’autre « service » de mon choix.
Du coup j’ai repéré dans le code ou il fallait faire les modifs :
- blocked.go
- constants.js
Il suffit donc de récupérer le code modifié les 2 fichiers compilé et remplacé le fichier ./AdGuardHome mon docker.
Dans le fichier bloked.go j’ai ajouté les lignes ci-dessous après « var serviceRulesArray = []svc{ » :
{"searchengine", []string{
"||bing.com^",
"||yahoo.co.uk^",
"||aol.co.uk^",
"||ask.com^",
"||excite.com^",
"||bing.com^",
"||yahoo.co.uk^",
"||aol.co.uk^",
"||ask.com^",
"||excite.com^",
"||google.com^",
}},
Et dans constants.js après « export const SERVICES = [ » j’ai ajouté :
{
id: 'searchengine',
name: 'Moteur de rechreche',
},
Docker de compilation nodejs npm yarn go
Du coup … J’ai fait un autre docker pour compiler le tout 🙂
FROM ubuntu
MAINTAINER Guillaume Astier Ruiz "guillaume@tuxme.net"
RUN apt -y update
RUN apt -y install nodejs
RUN apt -y install npm
RUN npm update
RUN npm install webpack -g
RUN npm config set registry http://registry.npmjs.org/
RUN npm install --global yarn
RUN apt -y install git curl
RUN curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
RUN apt update && apt -y install yarn wget
RUN mkdir temp
RUN cd /temp && wget https://dl.google.com/go/go1.15.6.linux-amd64.tar.gz && tar -xvf go1.15.6.linux-amd64.tar.gz
RUN mv /temp/go /bin/
RUN echo 'PATH=${PATH}:/bin/go/bin/' >> /root/.profile
RUN git clone https://github.com/AdguardTeam/AdGuardHome
COPY blocked.go /AdGuardHome//internal/dnsfilter/blocked.go
COPY constants.js /AdGuardHome/client/src/helpers/constants.js
RUN mkdir /res/
COPY build.sh /
Le fichier de build :
#!/bin/bash
export PATH=${PATH}:/bin/go/bin/
cd /AdGuardHome/
make init
make &> /res/log.txt
cp AdGuardHome /res/
Donc dans le docker de compilation on a :
root@virgile:~/git# ls -l docker-compil-AdGuardHome
total 21256
-rw-r--r-- 1 root root 7963 mars 7 09:12 blocked.go
-rwxr-xr-x 1 root root 115 mars 7 11:21 build.sh
-rw-r--r-- 1 root root 16233 mars 6 23:38 constants.js
-rw-r--r-- 1 root root 944 mars 7 09:33 Dockerfile
drwxr-xr-x 2 root root 4096 mars 7 09:34 res
Compilation et restart
Y a plus qu’a ….
docker run -v $(pwd)/res/:/res -ti compiladguard /build.sh
Pour regarder les logs de compil :
tail -f /res/log.txt
Copier le binaire
cp docker-compil-AdGuardHome/res/AdGuardHome /disk/DOCKER/adguard/
# remplacer /disk/DOCKER/adguard/ par le path de votre docker adguard :)
On relance le docker-compose de adguard home :
root@virgile:/disk/DOCKER/adguard# docker-compose restart
Et voilà … :
