Lazy Man Joe's Ramblings



Running your own Home VPN Server from a Raspberry Pi (PiVPN)

I recently installed Pi-Hole as an ad-blocking service on our home network – it’s working quite well and I’m truly impressed!

While on holiday recently I thought it would be quite “cool” to have VPN access to our network at home and came across the following article – “How to turn your Raspberry Pi into a Home VPN Server using PiVPN” using PiVPN.

Installing PiVPN on the same Raspberry Pi I’m running Pi-Hole on seemed like a good idea (and it IS a supported installation).

So needless to say, once we got back from holiday I had a quick look at the article and followed the instructions. Within a very short period of time I had a PiVPN (OpenVPN) server running on our network and just had to configure our router for port-forwarding.

I’ve also signed up for the free option from to make it easier for us to connect to our VPN at home.

NOTE: One tweak I added to our configuration was to edit the /etc/dnsmasq.conf file to ensure that when I connect to the VPN that my clients would also have ad-blocking enabled 🙂

For more detail on this, refer to the FAQ for the PiVPN software.

Installation was quick & easy!

Have fun !


Network-wide ad-blocking using a Raspberry Pi and “Pi-hole(tm)”

Ad-blocking seems to be quite a “thing” these days and I have to say that sometimes the amount of ads on web pages just gets too much !

I do understand it’s a way to get your product noticed, but some web pages have way too many ads on it 😦 and most of the time not really related to me [sorry Google/whoever for profiling me 🙂 ]

I’ve been looking around for an easy and cost-effective solution and found “Pi-hole(tm) : A black hole for Internet advertisements” 🙂

The idea is not to “hide away” (i.e. get some privacy), but rather to block ads so we don’t see them anymore.

I had a Raspberry Pi 2+ available (using it for some home automation testing) and I thought I’d give Pi-hole a go.

Pi-hole essentially runs as a DNS server on your network and block requests for known ad-serving addresses/domains.

Pi-hole can also be used as a DHCP server and in my configuration, I decided to utilize this feature as well (main reason being that my router’s configuration limits me from specifying my own DNS settings). Using DHCP on the Raspberry Pi, I can serve out IP addresses on the network and as part of the configuration, the Pi-hole server is specified as the DNS server !

Installation is very easy:

  • Install a unix based OS on your Raspberry Pi
    • I opted for the latest Raspbian Lite version (Jessie) found here
  • Once you have the basic configuration going, with your Raspberry Pi on your network and connected to the internet, you need to start the installation.
  • I used the following command (although you can get the code from GitHub & run the installer locally as well)
    • curl -sSL | bash
    • This connects to the latest Pi-hole installation and runs the scripts to install it on your Raspberry Pi
  • Basically follow the instructions
    • Select the IP address you want to use (your Pi-hole server needs a static address, as you want to ensure your network clients point to it even after restarts, etc.)
    • Once installed, the installer will tell you which IP address to connect to for the web configuration and the password to use (192.168.x.x/admin)
      • It’s important to note the password as it’s only given to you once
      • If you loose it for some reason, you can only change it via command line (see notes below)
    • Configure your router DNS to point to the Pi-hole server to ensure it uses it for your network traffic OR as in my case, configure DHCP on the Pi-hole to serve the IP addresses with the DNS information.
    • Use the web interface to check the DHCP configuration, etc. and rest of the configuration (very easy to follow)

The dashboard view gives you a quick overview of the DNS blocking, requests, etc. as well as access to the settings page to configure DHCP, etc.


That’s essentially it !

Some notes:

The Web interface password is only given to you ONCE at the end of the installation – if you don’t make a note of this, you will have to use the command line on your Raspberry Pi to reset the password.

Use the following command from the command line to reset your password:

  • “pihole -a -p somepasswordhere”
  • You can also remove the password using the following command – “pihole -a -p”

Have fun !

BTW – this is an interesting article as well … “Ad-blockers might actually make it easier for advertisers to track you” – TNW



Installing a NAS on a Raspberry PI (OpenMediaVault)

It seems I’ve been on a roll the last couple of weeks/days 🙂

Recently my DROBO died and then I installed NAS4Free on my Home Server to serve our storage needs at home.

Well, we’re going on holiday soon and we need to take some of the media content we have with us !

So I had the following hardware available:

  • Raspberry Pi 3+
  • 2.5″ 500GB external drive (powered)
  • Apple TV
  • iPads
  • MacBook Air

What to do, what to do ?


Well, I tried installing Plex on the Raspberry Pi and although it worked “okay” it could not keep up with the transcoding process 😦

So I had a couple of options:

  • transcode ALL the content to something usable [very time consuming]
  • have the content available on the network and do the transcoding ON the device you’re using
    • iPad
    • OSX
    • Windows 10
    • etc.

Well, I opted for the latter (well – it’s a proof of concept at the moment)

Looking around I found the following NAS software for the Raspberry Pi (OpenMediaVault)

OpenMediaVault runs on Debian Linux (Jessie) and they have a Raspberry Pi 3 image to download (here)

Installation is fairly simple:

  • download the image
  • write it to your SD card (I recommend Etcher)
  • Boot up the Raspberry Pi and let the configuration complete
  • The setup will then tell you which IP address to connect to (in my instance it was [I forced the Router to have a static IP address for the Raspberry Pi – makes it easier in the long-run]
  • Using your browser, connect to the IP address specified
  • Use admin/openmediavault (remember to change the password)
    • OpenVault_Login
  • Use the Web Interface to add your devices (I have an external USB drive (500GB), which I mounted)
    • OpenMediaVault_Drives
  • Once mounted, you have need to SHARE this drive on the network
  • Under Services ->SMB/CIFS you need to enable the service
  • Once enabled, go to Shares and configure the Share (defaults are fine)
    • I allowed GUEST access to make it easier and it’s contained to my local network
    • OpenMediaVault_Shares
  • That’s it !


The plan for the holiday is to have the Raspberry Pi connected to our 3G/LTE router and use the router as a local WiFi hotspot.

With the Raspberry Pi connected directly to the router, we won’t have WiFi lag, but then we’ll be able to connect to the NAS over WiFi and AirPlay from our iPads or MacBooks to our Apple TV (3rd Gen), or lie in bed in the evening and catch-up on some series on our iPads (I recommend VLC Mobile).

We’ll use AirPlay as it looks like to easiest option at the moment to play content on the TV.

OpenMediaVault has quite a couple of plug-ins you can enable on it – one of which is a Plex Media Server.

My initial tests showed me what I suspected – the Raspberry Pi 3+ (although more powerful than previous iterations) just can’t keep up with the transcoding process – so I disabled that feature again 😦 [especially when the content is 720p or 1080p]

There are a lot of plug-ins to choose from and as I need more time to investigate, I’ll have to report back on my findings in future.

For now it seems we’re set for an OpenMediaVault-RaspberryPi-NAS configuration to stream our content to which-ever device we want 🙂

Like always – HAVE FUN !

How to install and run Raspbian Jessie from a USB stick on Raspberry Pi

UPDATE (May 2017):
This article focus on using a Raspberry Pi 2 & USB. 
If you however have a Raspberry Pi 3 and the latest version of Rasbian (Jessie April 2017 or later) then you can natively run from USB – See the documentation here on (

I have been playing around with my Raspberry Pi 2 lately and read that if you want to run some write-intensive code on the Pi (MySQL, etc.) and you have an SD card, you’re probably heading for trouble. SD cards have improved over the years, but they still suffer from having a limited write-cycle (eventually they stop working).

USB stick/drives on the other hand are quite cheap and have a much better write-cycle.

So my next “project” was trying to figure out how to run Raspbian Jessie from a USB stick.

Currently there is no way to boot directly from a USB stick on the Raspberry Pi, but this is solved by using a small SD card to bootstrap the process and point the boot-up manager to boot from the USB stick.

The following article gave me most of the information I needed, but I adapted it to my own set-up which I am documenting in this post – Install & Run Raspbian from a USB Flash Drive

My set-up:

Step 1 – Download Raspbian

Download Raspbian from the RaspberryPi website –

I downloaded the Raspbian Jessie Lite version as I’m planning on running a non-GUI, head-less installation.  This process will work for the full version as well.

Unzip the downloaded file to get the .img file ready to use.

Step 2 – Install Raspbian on your USB stick

I use ApplePi-Baker to make this process quick and easy.

Open ApplePi-Baker, supply your admin password (required as ApplePi-Baker needs root access behind the scenes to write the .img file, etc.)

First off, I “prep” the USB stick by formatting it

  • Select the drive (under the Pi-crust option)
  • Click on “Prep for Noobs” (basically ensuring the partitioning and formatting is done)
  • Wait for the prep to finish

Now you want to write the image file to the USB stick

  • Select the .img file (under the Pi-ingredients section)
  • Click on the “Restore Backup” option – this will write the .img file to the USB stick and may take a while to complete (5-10 mins depending on speed of USB stick)


Your USB stick is now prepped BUT you still need to configure the MicroSD card to ensure the Raspberry Pi boots from the correct drive.

Step 3 – Configure the MicroSD card

Use ApplePi-Baker to prep the SD card as well

  • Select the card in the Pi-Crust section
  • Click on “Prep for NOOBS” to partition and format it

Once formatted, you should see this drive mounted on your desktop as “RASPBERRY”

Copy all the files from the USB stick to the SD Card.

Step 4 – Change the boot path on your MicroSD card

Once you’ve completed step 3, you now need to tell the Raspberry Pi to boot from the USB stick. You do this by changing the boot path setting in the cmdline.txt file in the root of the MicroSD card.

Open the file using TextEdit and change the following:

  • root=/dev/mmcblk0p2


  • root=/dev/sda2

Save the changes and eject the USB stick and MicroSD card.

Step 5 – Boot up your Raspberry Pi

Plug your MicroSD card in the slot in the Raspberry Pi and the USB stick in one of the USB ports.

Add power and wait for the Raspberry Pi to boot up 🙂

Step 6 – Housekeeping (utilising all the space on the USB stick)

To utilise all the space on the USB stick, we need to expand the partition. Normally you would make use of the raspi-config utility to expand the file system, but this does not work on USB sticks.

Log in to the Raspberry Pi (standard username: pi, password: raspberry  [change this in future :-)])

Start FDISK with the following command:

sudo fdisk /dev/sda

Press p to see all the partitions. You should have only 2.

We need to delete the 2nd partition and recreate it – BUT we need to note the start position for the sda2 partition. (write down the start position number – for me it was 131072)

Press d and then 2, then ENTER. [this will delete the partition]

Now we need to create the partition again.

Press n, then p, then 2 and then ENTER.

Provide the start position (first sector) for partition 2. (for me it was 131072)

For the end position, just hit ENTER to use the full partition.

Press w to commit the changes. You will see a message about the table being in use, etc. but don’t worry about it.

Reboot the system to start using the updated partition info.

sudo reboot

Once rebooted, we need to resize the partition to use the full amount of space.

sudo resize2fs /dev/sda2

Once it’s done, reboot your Raspberry Pi again.

Confirm that the changes have taken effect by checking the space allocated using:

df -h

That’s it !

You are now running Raspbian Jessie from a USB stick (using the SD card to inform the Raspberry Pi to boot from the USB stick :-))

Have fun !

Blog at

Up ↑