User Tools

Site Tools


pi-hole:setup_pi-hole_running_in_a_container_on_qnap_container_station

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
pi-hole:setup_pi-hole_running_in_a_container_on_qnap_container_station [2020/07/24 10:45] 185.104.185.238pi-hole:setup_pi-hole_running_in_a_container_on_qnap_container_station [2021/04/21 22:00] (current) peter
Line 8: Line 8:
   * Select the **Create** option from the left side of the menu and then scroll to the bottom of the window.   * Select the **Create** option from the left side of the menu and then scroll to the bottom of the window.
     * There are several types of Docker and LXC containers listed.     * There are several types of Docker and LXC containers listed.
-  * Choose the LXC Ubuntu 18.04 container.   +  * Choose the **LXC** Ubuntu 18.04 container.   
-    * That's the underlying OS for the QNAP QTS Operating System on the NAS. +  * Name the container, such as "Pi-Hole" and set the CPU limit to 20% and the memory limit to 2048MB which should be sufficient for Pi-Hole. 
-  * Name the container "Pi-Hole" and set the CPU limit to 20% and the memory limit to 1024MB which is more than enough for Pi-Hole.+    * The memory can be set higher if needed. 
 + 
 +{{:pi-hole:pi-hole_-_container_settings.png?800|}}
  
 <WRAP info> <WRAP info>
-**NOTE:** We use an LXC container instead of a Docker container.+**NOTE:** LXC container is used instead of a Docker container.
  
-LXC containers are not just an application instance.  LXC containers provide an isolated OS instance on which you can install one or more applications unlike a Docker instance which is for a single packaged installation. +LXC containers are not just an application instance.  
  
-One powerful feature of Docker containers is that you can export them and import them easily on another Docker system. The limitation to Docker containers is that once you create one, it really can'be modifiedSo, in the case of "Pi-Hole", you would have to create a new container when a new version of Pi-Hole is released. That's because the Docker Image is an image.+  * An LXC Container runs an OS instance, such as Ubuntu, on which you can install one or more applications. 
 +  * The LXC container uses a minimal amount of system resources. 
 +  * The OS the container runs can easily be updated. 
 +  * The applications running in the OS can easily be updated. 
 +  * To update Pi-Hole is as easy as running the standard **pihole -up** command.
  
-Since LXC provides container instance of an OS, it is possible to install one or more applications to an LXC container after creating it.+Docker containers run single application installation.
  
-In order to provide an easier installation for pihole without the issues documented at beginning of this blogwe will use an LXC container.+  * A Docker Container is based upon a package image, and are therefore not as easy to modify. 
 +  * To update Pi-Holeyou would have to create a new container when a new version of Pi-Hole is released.
 </WRAP> </WRAP>
-  
  
-Then click on **Advanced Settings**.+---- 
 + 
 +Click on **Advanced Settings**.
  
   * Change the network mode to **Bridge**.   * Change the network mode to **Bridge**.
   * Select **Use Static IP** and change the IP address to a unique address on your LAN.   * Select **Use Static IP** and change the IP address to a unique address on your LAN.
 +    * In this example, 192.168.1.25 is used.
  
-Go back to the **Overview** section in Container Station and after a few minutes you should see your container listed.+{{:pi-hole:pi-hole_-_container_settings_-_advanced_-_network.png?800|}}
  
-Click on the name of the container and you will enter the console.+---- 
 + 
 +Return to the **Overview** section in Container Station and after a few minutes you should see your container listed. 
 + 
 +Click on the name of the container, which will enter the console. 
 + 
 +Type **passwd** to change the password. 
 + 
 +<WRAP info> 
 +**NOTE:**  The original password is **ubuntu**. 
 +</WRAP>
  
-Type **passwd** to change the password.  Note the original password is **ubuntu**. 
  
 ---- ----
Line 40: Line 58:
 ===== Update and Configure the Ubuntu LXC Container ===== ===== Update and Configure the Ubuntu LXC Container =====
  
-Before we can install Pi-hole, we need to update this very lightweight LXC container to add some features.   +Update Ubuntu:
- +
-First run updates:+
  
 <code bash> <code bash>
-sudo apt-get update+sudo apt update
 </code> </code>
  
-Next install the ssh server:+Install the ssh server:
  
 <code bash> <code bash>
-sudo apt-get install -y openssh-server+sudo apt install -y openssh-server
 </code> </code>
  
-Now add a username other than the default. Just go through the dialogue and answer the prompts for the new user.+Add a username other than the default.  
 + 
 +<WRAP info> 
 +**NOTE:**  Simply answer the prompts for the new user. 
 +</WRAP>
  
 <code bash> <code bash>
Line 60: Line 80:
 </code> </code>
  
-Now grant the new user privilege:+Grant the new user root privileges:
  
 <code bash> <code bash>
Line 70: Line 90:
 ===== SSH into the Ubuntu LXC Container ===== ===== SSH into the Ubuntu LXC Container =====
  
-Open a terminal back on your desktop computer and "ssh" to the new machine with the address you used to create the LXC instance:+"ssh" to the new machine with the IP address that was used to create the LXC instance:
  
 <code bash> <code bash>
Line 85: Line 105:
  
 <code bash> <code bash>
-sudo apt-get install curl+sudo apt install curl
 </code> </code>
  
-Now you can install pi-hole:+Install pi-hole:
  
 <code bash> <code bash>
Line 94: Line 114:
 </code> </code>
  
-Select the defaults until the DNS screen and then choose Cloudflare as your DNS.+<WRAP alert> 
 +**ALERT:**  This option could be dangerous, as it simply runs a script downloaded from the web.
  
-Accept all the rest of the defaults and be careful not to change them.  This will assure that you get the admin web interface and that statistics are logged.+There is no guarantee that this script might contain a trojan etc
  
-The installation will continue for a few minutes after you answer the prompts.+To be extra secure, you could alternatively, just downloads the script using:
  
-After your installation completes, you will receive a message telling you to set up the DHCP settings on your router to make the address of your Pi-Hole the primary DNS for your network.+<code bash> 
 +curl -sSL https://install.pi-hole.net -o pihole.sh 
 +</code> 
 + 
 +Then review the script yourself to ensure you are happy with it. 
 + 
 +Then install it (making sure it has the right permissions to run). 
 + 
 +<code bash> 
 +chmod 777 pihole.sh 
 +bash pihole.sh 
 +</code> 
 + 
 +</WRAP> 
 + 
 + 
 +Select the defaults until the DNS screen and then choose Cloudflare as the DNS. 
 + 
 +  * Accept all the rest of the defaults. 
 +  * The installation will continue for a while. 
 +  * When the installation completes, a message will be shown telling you to set up the DHCP settings on your router to make the address of your Pi-Hole the primary DNS for your network
 +  * So log into your router and point the DNS settings to the IP address of this container.
  
-That will insert the Pi-Hole as the "man-in-the-middle" to scrutinize all DNS names before they are either passed to the Internet or "Pi-Holed". 
  
 When you return to the prompt in the "ssh" terminal session, enter the following command to set your Pi-hole password: When you return to the prompt in the "ssh" terminal session, enter the following command to set your Pi-hole password:
Line 110: Line 151:
 </code> </code>
  
-You can now close the "ssh" terminal session.+<WRAP info> 
 +**NOTE:**  The "ssh" terminal session can now be closed. 
 +</WRAP> 
  
 ---- ----
  
-===== Go to your Pi-Hole Website =====+===== Access the Pi-Hole Website =====
  
-Go to your web browser and enter the address of your Pi-Hole followed by /admin:+Within a web browserenter the IP address of your Pi-Hole followed by /admin:
  
 <code bash> <code bash>
Line 122: Line 166:
 </code> </code>
  
-Select the login and you should be able to log in with the password you just set.+Click **login** and you should be able to log in with the password you just set.
  
 <WRAP info> <WRAP info>
-**NOTE:**  Since this is a "scratch" install in an LXC container, you will be able to start and stop the container and reboot the QNAP NAS without any problems and even upgrade Pi-Hole when new releases are available. +**NOTE:**  You will be able to start and stop the LXC container and reboot the QNAP NAS without any problems and even upgrade Pi-Hole when new releases are available.
- +
-This LXC container is very lean and uses a minimal amount of system resources. +
 </WRAP> </WRAP>
  
  
 <WRAP important> <WRAP important>
-**IMPORTANT:**  Don'forget to set the DNS settings for your DHCP server on your router because Pi-Hole will not be used by any of your network clients until that occurs.+**IMPORTANT:**  Do not forget to set the DNS settings for your DHCP server on your router because Pi-Hole will not be used by any of your network clients until that occurs.
  
 A good practice is to make the Pi-Hole DNS 1 and then Cloudflare 1.1.1.1 as DNS 2. A good practice is to make the Pi-Hole DNS 1 and then Cloudflare 1.1.1.1 as DNS 2.
pi-hole/setup_pi-hole_running_in_a_container_on_qnap_container_station.1595583942.txt.gz · Last modified: 2020/07/24 10:45 by 185.104.185.238

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki