How to update/upgrade Pi-hole with an OpenVPN on Ubuntu/Debian Linux server

last updated in Categories , ,

I installed an OpenVPN server with Pi-hole software to block block ads, reduced my 4G/3G/LTE traffic on the same Debian or Ubuntu Linux server. How do I upgrade my Pi-hole to the latest version using command line?

Updating Pi-hole is very easy. First you must update your operating system. The commands are as follows:

Update Debian/Ubuntu Linux server

Type the following apt-get command or apt command as follows:
$ sudo apt-get update
$ sudo apt-get upgrade
## reboot the server if a new kernel was installed on your server ##
$ sudo reboot

How to update/upgrade Pi-hole with an OpenVPN on Ubuntu/Debian Linux

The pihole command act as a black-hole for internet advertisements and tool to manage various options. Let us see how to update Pi-hole subsystems using the CLI. To check for updates run:

How do I update my Pi-hole?

Type the following command:
$ pihole -up
$ pihole updatePihole
Sample outputs:

  [i] Checking for updates...
  [i] Pi-hole Core:	update available
  [i] FTL:		update available
  [i] Web Interface:	update available

  [i] Updating Pi-hole core and web admin files
  [?] Check for existing repository in /etc/.pihole
  [?] Update repo in /etc/.pihole

  [?] Root user check

         :cccclll:.      ..,,
          :ccccclll.   ;ooodc
           'ccll:;ll .oooodc
                 .. ','.
        .........  ....  .........
        ..........      ..........
        ..........      ..........
        .........  ....  .........

  [i] Existing PHP installation detected : PHP version 7.2.10-0ubuntu0.18.04.1
  [i] Performing unattended setup, no whiptail dialogs will be displayed
  [?] Disk space check

  [?] Update local cache of available packages

  [?] Checking apt-get for upgraded packages... up to date!

  [i] Installer Dependency checks...
  [?] Checking for apt-utils
  [?] Checking for dialog
  [?] Checking for debconf
  [?] Checking for dhcpcd5
  [?] Checking for git
  [?] Checking for iproute2
  [?] Checking for whiptail

  [?] Check for existing repository in /etc/.pihole
  [?] Update repo in /etc/.pihole

  [?] Check for existing repository in /var/www/html/admin
  [?] Update repo in /var/www/html/admin

  [i] Main Dependency checks...
  [?] Checking for bc
  [?] Checking for cron
  [?] Checking for curl
  [?] Checking for dnsutils
  [?] Checking for iputils-ping
  [?] Checking for lsof
  [?] Checking for netcat
  [?] Checking for psmisc
  [?] Checking for sudo
  [?] Checking for unzip
  [?] Checking for wget
  [?] Checking for idn2
  [?] Checking for sqlite3
  [?] Checking for libcap2-bin
  [?] Checking for dns-root-data
  [i] Checking for resolvconf (will be installed)
  [?] Checking for lighttpd
  [?] Checking for php7.2-common
  [?] Checking for php7.2-cgi
  [?] Checking for php7.2-sqlite3
  [?] Enabling lighttpd service to start on reboot
  [?] Installing scripts from /etc/.pihole

  [i] Installing configs from /etc/.pihole...
  [i] Existing dnsmasq.conf found... it is not a Pi-hole file, leaving alone!
  [?] Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf

  [i] Installing blocking page...
  [?] Creating directory for blocking page, and copying files
  [?] Backing up index.lighttpd.html
        No default index.lighttpd.html file found... not backing up

  [?] Installing sudoer file

  [?] Installing latest Cron script

  [?] Installing latest logrotate script

  [i] FTL Checks...
  [?] Detected x86_64 architecture
  [i] Checking for existing FTL binary...
  [?] Downloading and Installing FTL
  [i] FTL can now resolve DNS Queries without dnsmasq running separately
  [?] Stopping dnsmasq service...
  [?] Disabling dnsmasq service

  [?] man pages installed and database updated
  [i] Systemd-resolved is not enabled
  [?] Starting lighttpd service
  [?] Enabling lighttpd service to start on reboot
  [i] Restarting services...
  [?] Starting pihole-FTL service
  [?] Enabling pihole-FTL service to start on reboot
  [?] Deleting existing list cache
  [i] Neutrino emissions detected...
  [?] Pulling blocklist source list into range

  [i] Target: (hosts)
  [?] Status: Retrieval successful

  [i] Target: (justdomains)
  [?] Status: Retrieval successful

  [i] Target: (hosts)
  [?] Status: Retrieval successful

  [i] Target: (blocklist.php?download=domainblocklist)
  [?] Status: Retrieval successful

  [i] Target: (simple_tracking.txt)
  [?] Status: Retrieval successful

  [i] Target: (simple_ad.txt)
  [?] Status: Retrieval successful

  [i] Target: (ad_servers.txt)
  [?] Status: Retrieval successful

  [?] Consolidating blocklists
  [?] Extracting domains from blocklists
  [i] Number of domains being pulled in by gravity: 149649
  [?] Removing duplicate domains
  [i] Number of unique domains trapped in the Event Horizon: 126732
  [i] Nothing to whitelist!
  [i] Number of regex filters: 0
  [?] Parsing domains into hosts format
  [?] Cleaning up stray matter

  [?] Force-reloading DNS service
  [?] DNS service is running
  [?] Pi-hole blocking is Enabled

  [i] The install log is located at: /etc/pihole/install.log
    Update Complete! 

  Current Pi-hole version is v4.0
  Current AdminLTE version is v4.0
  Current FTL version is v4.0

Test it

Visit admin url such as, and you should see an updated pi-hole screen and version info at the bottom of page as follows:
Pi-hole Version v4.0 Web Interface Version v4.0 FTL Version v4.0
Sample outputs:
upgrade Pi-hole with an OpenVPN running on Ubuntu
You can run the following command to see version info too:
$ pihole -v
Sample outputs:

  Pi-hole version is v4.3.2 (Latest: v4.3.2)
  AdminLTE version is v4.3.2 (Latest: v4.3.2)
  FTL version is v4.3.1 (Latest: v4.3.1)

How to check pi-hole for updates

Run the following command:
$ pihole updatePihole --check-only
How to update or upgrade Pi-hole with an OpenVPN on Ubuntu or Debian Linux

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Start the discussion at

Historical Comment Archive

1 comment

  1. Please check out sabproxy . com. It does the same thing and its just easy as running a jar file….

    Still, have a question? Get help on our forum!