# Pi-hole

### Boost Your Network Privacy with Pi-hole

In an era where online privacy is increasingly important, Pi-hole stands out as a powerful tool to help you regain control over your network traffic. Pi-hole acts as a network-wide ad blocker and privacy enhancer, ensuring a smoother and more secure browsing experience. In this blog post, we'll delve into the features of Pi-hole, provide detailed installation instructions using Docker Compose, and guide you through the basic setup.

#### What is Pi-hole?

Pi-hole is a network-wide ad blocker that acts as a DNS sinkhole. It intercepts DNS requests and blocks domains known for serving advertisements, trackers, and malicious content. By implementing Pi-hole, you can effectively reduce unwanted ads, protect your privacy, and improve your network performance across all devices connected to your network.

### Key Features of Pi-hole

#### 1. **Network-Wide Ad Blocking**

- **Comprehensive Blocking**: Block ads across all devices on your network, including computers, smartphones, and smart TVs.
- **No Client Configuration Needed**: Once set up, Pi-hole automatically filters traffic for all devices without needing individual configuration.

#### 2. **Privacy Protection**

- **Tracker Blocking**: Prevent trackers from monitoring your online activity, enhancing your privacy.
- **Malware Protection**: Block access to known malicious domains to safeguard your devices from potential threats.

#### 3. **Customizable Blocking Lists**

- **Predefined Lists**: Utilize default ad and tracker lists that are regularly updated.
- **Custom Lists**: Add or remove domains from your blocklists to tailor Pi-hole’s blocking capabilities to your needs.

#### 4. **Detailed Analytics**

- **Dashboard**: Access a user-friendly web interface that provides insights into blocked queries, top domains, and client activity.
- **Query Log**: Review detailed logs of DNS queries to understand which domains are being queried and blocked.

#### 5. **Flexible Integration**

- **DNS Configuration**: Configure Pi-hole as your network’s DNS server or set it up as a DNS forwarder.
- **Device Compatibility**: Works with any device that uses DNS for name resolution.

#### 6. **User Management**

- **Admin Access**: Set up multiple admin accounts with customizable permissions.
- **Client-Specific Blocking**: Create different blocking rules for different devices or users.

### Installing Pi-hole Using Docker Compose

To get Pi-hole up and running on your server, follow these steps to install it using Docker Compose.

#### Prerequisites

- Docker and Docker Compose installed on your server
- Basic knowledge of Docker and Docker Compose

#### Step-by-Step Installation

1. **Create a Docker Compose File**
    
    First, create a directory for Pi-hole and navigate into it. Then, create a file named `docker-compose.yml` with the following content:
    
    ```yaml
    services:
      pihole:
        image: pihole/pihole:latest
        container_name: pihole
        environment:
          - WEBPASSWORD=yourpassword
          - DNS1=8.8.8.8
          - DNS2=8.8.4.4
          - ServerIP=your_server_ip
          - PiHoleDNS=your_server_ip
          - FTLCONF_LOCAL_IPV4=your_server_ip
        ports:
          - "80:80"
          - "443:443"
          - "53:53/tcp"
          - "53:53/udp"
        volumes:
          - pihole_data:/etc/pihole
          - dnsmasq_data:/etc/dnsmasq.d
        networks:
          - pihole_net
        restart: unless-stopped
    
    networks:
      pihole_net:
        driver: bridge
    
    volumes:
      pihole_data:
      dnsmasq_data:
    
    ```
    
    Replace `yourpassword` with a strong password for the Pi-hole admin interface, and `your_server_ip` with the IP address of your server.
2. **Deploy the Containers**
    
    Open a terminal, navigate to the directory containing your `docker-compose.yml` file, and run:
    
    ```bash
    docker-compose up -d
    ```
    
    This command will download the Pi-hole image and start the Pi-hole container in detached mode.
3. **Access Pi-hole**
    
    Once the containers are running, you can access the Pi-hole web interface by navigating to `http://your_server_ip/admin` in your web browser.

### Basic Setup Instructions

#### Step 1: Initial Configuration

- Upon accessing the Pi-hole admin interface, you'll be prompted to log in with the password you set in the Docker Compose file.
- Complete the initial setup wizard to configure basic settings such as your DNS servers and network configuration.

#### Step 2: Configure Your Network

- To make Pi-hole the default DNS server for your network, update your router’s DNS settings to point to the IP address of the Pi-hole server.
- Alternatively, configure individual devices to use Pi-hole as their DNS server by specifying the IP address manually in their network settings.

#### Step 3: Customize Blocking Lists

- Navigate to the "Group Management" section in the Pi-hole admin interface to manage blocklists.
- Add or remove domains from your blocklists according to your preferences.

#### Step 4: Review Analytics

- Explore the "Dashboard" to view detailed statistics on blocked queries, top domains, and client activity.
- Use the "Query Log" to analyze DNS queries and see which domains are being blocked.

#### Step 5: Manage Admin Settings

- Access the "Settings" section to configure admin access, update Pi-hole software, and adjust other settings.
- Set up additional admin accounts if needed and manage client-specific blocking rules.

### Useful Links

- [Pi-hole Official Website](https://pi-hole.net) – Learn more about Pi-hole and its features.
- [Pi-hole GitHub Repository](https://github.com/pi-hole/pi-hole) – Access the source code and contribute to the project.
- [Pi-hole Documentation](https://docs.pi-hole.net/) – Detailed guide for advanced configuration and troubleshooting.

### Conclusion

Pi-hole is a powerful tool for enhancing your network privacy and performance by blocking unwanted ads and trackers. With its easy-to-use interface, detailed analytics, and customizable blocking lists, Pi-hole offers a comprehensive solution for network-wide ad blocking. By following the installation and setup instructions, you can quickly deploy Pi-hole using Docker Compose and start benefiting from a cleaner and more secure browsing experience.