Lazy Man Joe's Ramblings



Tunnelblick – free software for OpenVPN on OS X and macOS

I installed PiVPN on one of my Raspberry Pi’s at home yesterday to set up my own VPN server at home. (blog post)

As PiVPN makes use of OpenVPN on the Raspberry Pi, I’ve been looking for an easy to use  OpenVPN client for my Mac.

Tunnelblick is a free open source OpenVPN VPN client which fits the bill 🙂

Have a look here to get it – Tunnelblick

Setup is easy:

  •  Install Tunnelblick on your Mac
  • Download the .ovpn configuration file from your VPN server (PiVPN in my case)
  • Double-click on the file.
  • Tunnelblick will automatically open the configuration and you’re ready to connect 🙂

Easy !

Have fun !


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 !

Installing a NAS at home using NAS4Free on an HP N40L Mini Server

Recently my DROBO Gen 1 storage device “died” and I was looking for a solution to cater for our media needs (cord-cutter) – movies, TV series, etc. using Plex Media Server to serve it up to our devices in the home.

I also needed a storage area for our day-to-day photo usage, software needs, etc.

The basic requirement was for as much storage as possible, with great speed and easy access on multiple devices (windows/mac/ios/etc.)

I had the following hardware available:

  • HP N40L mini server (more details) with 4GB RAM
  • 2 x 3.5″ 1TB SATA drives
  • 1 x 3.5″ 2TB SATA drive

After some investigation on the web, I found this great piece of software – NAS4Free – which suited my needs and hardware perfectly.

NAS4Free is built on FreeBSD and has multiple features “in-the-box”.

Installing it was a cinch !

  • Basically, download the Live-USB image
  • Extract the image
  • Write the image to USB device (your installation device)
  • Boot from (installation) USB device
  • Follow the prompts and select “9” to install on to (another) USB flash disk (the one you’ll use to boot your server)
  • Installation is quick & easy and once done, remove installation USB drive – insert the actual USB boot device into your server and switch on !

I opted to install the software on a USB flash disk (4 GB is fine), which the HP server allows you to do (there is an internal USB slot for booting your OS).

This opened up the 4 internal drive slots for storage use, ideal for my requirement.

Once the USB boot device was configured, I shut the system down and installed the drives into the slots in the HP server. (using 3 of the 4 available)

I then proceeded to boot the server and started the configuration – all done via web interface (once you boot, the server screen will tell you what the IP address is and you use admin / nas4free as username/password [remember to change it !])


Setup is fairly easy and all the instructions can be followed form here

Once you have the basics done, it’s time to add your drives

Go to Disks -> Management and add the drives you have to the system. NAS4Free supports ZFS storage (which is apparently a great system 🙂 )


Please note I made a conscious decision here
– I wanted the MOST drive space at the fastest rate – so I created a single volume, stacking all my drives together.

If one of the drives fail, then the whole pool fails …

Typically you’d rather create a pool as a mirror or RAID-X, or something and ensure you have redundancy.


My aim though was to have a much space available as possible, fast access times and I’ll manage backups separately. (well that’s my initial thoughts 🙂 )

Once the drives are accessible to NAS4Free, you need to create a Virtual Device which contains your drives (under the ZFS menu).

Then you add your drives to the Virtual Device and your NAS has space available.

NOW you need to share this on your network.

Easy with NAS4Free 🙂

Go to Services -> CIFS/SMB (especially if you have Windows devices on your network)

Configure the settings under the settings page (defaults are fine and you just Save&Restart to get going).

Create a SHARE – once you’ve enabled CIFS/SMB.


This is easy – create a name, select the mount point on the pool and “Bob’s your uncle” … it’s available to use !

One of the easiest software configurations I’ve had in a while and after about 2-3 weeks I can report that the system is performing amazingly well.

Side note:

Yes, I know … I’m running the risk of loosing a drive (similar to my DROBO experience) and then loosing ALL the content on the NAS.

I do have a plan though … I have 1 slot open in the HP Server and plan on getting another 2TB (maybe 3TB 🙂 ) drive to put in there – then I’ll mirror/sync the (important) content to that drive … but for now I’m VERY HAPPY with NAS4Free !

That’s all folks !

Like always, have fun !


Free File Sync – great tool to keep files in sync

As I mentioned in my post about our DROBO dying, part of my recovery process involved copying all the files (I could recover) from the device onto an external device.

As the DROBO was acting up, I could not use standard copy/paste as it would stop during the process and you weren’t sure which files copied vs. which did not ! 😦

Using FreeFileSync (, my troubles were much less! (software worked fine – amount of data caused headaches)

I could select multiple folders at a time and then sync them to an external device. FreeFileSync would copy the files, verify that they actually copied and move on. It was a slow process, but in the end I moved around 1.2TB of data this way !

The time-consuming work was to select multiple folders at a time and clicking sync (I was too scared to select ALL of them at once, so opted for a set of folders at a time but this meant I had to spend a lot of time on it).

The nice feature for FreeFileSync is that you can save a “configuration” – so if you set up folders to sync, you could save this configuration for future use. I did exactly that when the DROBO acted up between copy processes – then all I had to do was reload the last config and rerun the sync – it would only copy the files not yet copied, while checking file size, etc. to ensure the files went across correctly.

I can certainly recommend FreeFileSync as it’s cross-platform and works very well.

FreeFileSync saved my life … well, almost 😉

The day my DROBO died :-(

About 3 weeks ago we went through a period where we had a few power interruptions in our area (not really something new in SA, but a bit out of the ordinary for a couple a months); anyways it seems that one of the 1TB drives I had in my DROBO died in the process.

Well, that should not be a problem (I thought) – get a new drive and the DROBO will rebuild itself … not so easy 😦

Although we could access the info on the DROBO for a while after the drive died, the DROBO was acting a bit “weird” – at times VERY slow, at times it would just reboot itself and I could not move any data off the DROBO – but we could watch the movies we had on there … strange.

After ordering a new 2TB drive to replace the broken 1TB (always good time to upgrade :-)), I popped it into the DROBO and it it started churning away – recovering the info and “settling in” – or so I thought.

We left the DROBO to do it’s thing and left it alone for 4 days ! The strange behaviour continued though – it would state that it’s rebuilding (don’t remove any drives with flashing lights – ALL of them) and then reboot without warning – sometimes the OS would se it again, sometimes not (and that needed a power off/on sequence).

Eventually I took the DROBO from the server it was connected to (Windows Home Server 2011) and connected it to an iMac with the DROBO dashboard and ran some disk utility checks on the drive – it needed some attention to get going and after MANY hours spent, I could access some of the data.

We have almost 1TB of photos between Heidi & myself, with NO backup elsewhere (why would you when you have a DROBO RAID system protecting it ? … lesson learnt).

I found a great piece of software (Mac & Windows) – FreeFileSync – which is great to ensure that files are synched between folders. I used this to slowly, but surely, move items from the DROBO to an external drive (the newly purchased 2TB drive).

It took me almost 3 days to move the photos and also recover “some” of the other files on the DROBO – although the Photos were the main item I focussed on. Remember – these are photos from ALL our trips to the Kgalagadi, all family photos, weddings (ours and other people), our honeymoon, the kids … you get the picture – ALL of our photos for the last 13 years !!!

Once I had the content moved off the DROBO, I checked each of the 3 x 1TB drives left after the disaster – it turns out one of the drives was failing, but concerning to me was that the DROBO did not pick this up 😦

I suspect that part of the problem why the recovery of the data took so long was that the one 1TB drive was working intermittently and causing a slow-down in the process.

I think my DROBO (which I love dearly), has probably met the end of life expectancy – I don’t trust it anymore. 😦

I revived 3 x 250 GB drives from an old server and put them in the DROBO for now – although we’re not using it anymore. I want to keep an eye on the DROBO – which seems to be “okay” for now, but I don’t know if I’ll ever put important data on it … 😦

Lessons learnt:

  1. Always have backups of your backups !
    1. We’re now working with a copy of our photos on a NAS (more on this in another post [NAS4Free]
    2. BUT, we also do backups on a monthly basis onto an external drive which is then stored away
    3. Soon we’ll be moving our content into cloud storage as an extra precaution
  2. Backup, backup, backup
  3. Hardware gets old … keep an eye on it …


  1. We have one of the original DROBO GEN 1 units – 4 drive slots with a max of 8TB storage available and USB 2.0 connectivity only
  2. The DROBO has served us well, and I’ll keep an eye on the current setup and maybe use it again in future
  3. DROBO Dashboard did not indicate any issues with the failing 1TB drive, but when I ran a S.M.A.R.T. test on the drive (once removed from the DROBO) it indicated that it’s failing …
  4. I think the major issue was that more than 1 drive actually failed / was failing and this caused issues for the DROBO.

Sending a (PDF) Report when an Escalation fires on K2 (using SmartObjects and SSRS)

What I’ve done:

  1. Created a small process with an escalation on one of the activities to fire after 1 minute
  2. In the escalation I send an email, but I attach a report in PDF format from a SmartObject (pointing to a SSRS report)
  3. The report gets executed on the escalation and is then attached in the escalation email

How to:

  1. Create the report you want using the K2 Workspace Report Designer
    1. image001
  2. Build your report in the report builder (or if you have an SSRS report, you can import it for use) – I created a new report
    1. Image002
    2. My data source was info I already had available in SQL
  3. Once you’ve built your report, Publish it
    1. image003
  4.  I created a SQL Reporting Services Service in my environment (if it doesn’t exists already)
    1. image004
    2. image005
    3. image006
    4. Your environment may have a different SQL server version (I just used what I had on my VM)
    5. image007
  5. Now you need to create a SmartObject to reference the report you’ve built
    1. image008
    2. Give it a name, category and make sure it’s “advanced”
    3. image009
    4.  Your report should be visible under the SQL Reporting Service list in the designer
    5. image010
    6. Drag & Drop this onto the SmartObject Designer canvas (right hand side)
    7. Select “Create All” for the property mappings (report file) to bind everything
    8. image011
    9. You should now have a SmartObject with 1 Property (Report File) and a couple of methods
    10. image012
  6. I built a small workflow that does nothing, just to test
    1. image013
    2. Add your Escalation (advanced mode)
    3. image014
    4. Basic escalation settings (when, etc.) and then I fire an email
    5. image015
    6.  Standard stuff for email send
    7. image016
    8. image017
    9. Now add the attachment – THE IMPORTANT bit! 🙂
    10. Using an inline function to get the attachment and adding it to the email
      1. Drag & drop the Files – Get File from Content (…) function on the attachment field
      2. image018
      3. Drag & Drop your SMO “Export to PDF” item on the “Content” section
      4. Give the attachment that will be generated a name – I used “MyEscalationReport.pdf”
      5. image019
      6. No input mapping required for my demo report
      7. image020
      8. Select “Report File.Content” as the return property for the wizard
      9. image021
      10. You should end up with an attachment which states “Get File From Content (…..)
      11. image022
      12. Finish all the events and wizards.
  7. Deploy your workflow with the updated escalation info
  8. Test!
    1. image023
    2. image024

This is one way of utilising K2 SmartObjects and SSRS together.

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 ↑