If you find this useful, remember about giving a start ⭐ to this repo or share it 🔁
This is a complete stack for running PiHole for AdBlock and WireGuard as VPN, with Docker.
It is composed by 2 containers:
pihole
, blocking ads.wireguard
, personal and free VPN for our server.
-
You need Docker and Docker Compose where you are going to launch this so, if you do not have it... click HERE or go to the end of this
.md
^^ -
Clone this rep.
-
Edit
wireguard.env
andpihole.env
with the information you want. -
Run
docker compose up
😀. -
For having our PiHole database updated, run the script
updatePihole
with crontab (set the crontab with the root user). This script will remove and deploy again our PiHole container pulling a new and updated image. -
Check that the 2 containers are deployed:
pihole "/s6-init" pihole running (healthy) 53/tcp, 53/udp, 67/tcp, 80/tcp, 443/tcp, 67/udp
wireguard "/init" wireguard running 0.0.0.0:51820->51820/udp, :::51820->51820/udp
-
Run Docker Compose:
docker compose up -d
/docker compose up
-
Check Docker Compose's volumens status:
docker compose ps -a
/docker compose ps
-
Check Docker's images:
docker images -a
-
Remove Docker's images:
docker rmi -f imageID1 imageID2 ...
(-f = force) -
Enter to a Docker's volumen:
docker compose exec VolumenID sh
/docker compose exec VolumenID bash
-
Copy a file to the docker we want to:
docker cp file docker_id:/dir
-
Remove all dangling (not tagged or associated with a container) containers, volumes, networks and images:
docker system prune
-
Remove all unused containers and images with at least one container associated to them:
docker system prune -a
-
Shows all unused local images:
docker images ls -f dangling=true
-
Shows all unused local volumes:
docker volume ls -f dangling=true
-
Remove all local volumes not used by at least one container:
docker volume prune
Adjust the installation to your OS. Here you have the one for a VPS with Debian 11
- Docker and Docker Compose installation
- Update the
apt
package index and install packages to allowapt
to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Add Docker’s official GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Use the following command to set up the repository:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Starts Docker's service each time you run the SO:
chkconfig docker on
sudo apt-get update
- Install Docker Engine, containerd, and Docker Compose. This will install the latest version:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- Give permissions to the desired user by adding it the
docker
group:
usermod -aG docker $USER
- Check the version and the installation:
docker compose version
docker --version
If you find any bug or just want to give your feedback (remember the ⭐ ^^), Feel free to do it. I am, like you, constantly learning and things change so quickly that... no one knows ^^
- v1.0 - Current - Creation of the rep with the config finished - 05/12/2022