https://github.com/inushin/dockerpiholewireguard
This is a complete stack for running PiHole for AdBlock and WireGuard as VPN, with Docker.
https://github.com/inushin/dockerpiholewireguard
docker docker-compose pihole wireguard
Last synced: 6 months ago
JSON representation
This is a complete stack for running PiHole for AdBlock and WireGuard as VPN, with Docker.
- Host: GitHub
- URL: https://github.com/inushin/dockerpiholewireguard
- Owner: Inushin
- License: gpl-3.0
- Created: 2022-12-05T17:39:37.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-01T21:03:25.000Z (about 1 year ago)
- Last Synced: 2025-03-28T22:13:05.824Z (6 months ago)
- Topics: docker, docker-compose, pihole, wireguard
- Homepage:
- Size: 16.6 KB
- Stars: 45
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π³ Docker + PiHole + WireGuard π³

If you find this useful, remember about giving a start β to this repo or share it π
## Description π

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.## Installation β¨

0. You need **Docker** and **Docker Compose** where you are going to launch this so, if you do not have it... click [HERE](https://github.com/Inushin/dockerPiholeWireguard#installing-docker-and-docker-compose-) or go to the end of this `.md` ^^
1. Clone this rep.
2. Edit `wireguard.env` and `pihole.env` with the information you want.
3. Run `docker compose up` π.
4. 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.
5. Check that the 2 containers are deployed:
```yaml
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
```## Docker's useful commands π
- 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`
## Installing Docker and Docker Compose π
**Adjust the installation to your OS. Here you have the one for a VPS with Debian 11**
- Docker and Docker Compose installation
1. Update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS:
```yaml
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
```2. Add Dockerβs official GPG key:
```yaml
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```3. Use the following command to set up the repository:
```yaml
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```4. Starts Docker's service each time you run the SO: `chkconfig docker on`
```yaml
sudo apt-get update
```5. Install Docker Engine, containerd, and Docker Compose. This will install the latest version:
```yaml
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
```6. Give permissions to the desired user by adding it the `docker` group:
```yaml
usermod -aG docker $USER
```7. Check the version and the installation: `docker compose version` `docker --version`
## β Feedback and bugs π
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 ^^
## Version control π
- [v1.0 - Current](https://github.com/Inushin/dockerPiholeWireguard/tree/v1.0) - Creation of the rep with the config finished - 05/12/2022