I run a Hashistack on my homelab and I’ve had a startup issue with Consul on one of my Raspberry Pis. The systemd unit file is correct and I was able to start the service manually with systemctl start consul without issue. However, consul just would not start successfully on boot. I finally had some time to work on the issue tonight and the fix was actually quite simple. Troubleshooting consul is rarely simple, but working with a simple systemd startup script shouldn’t be that bad. Here’s what happened…
A few years back I built a neat project I found online. It was originally designed by Andrew Shillday. You can find the code here. I decided that a Raspberry Pi Zero was sufficient, so I had to modify the pins used, but otherwise it was a fairly easy project.
Watch local broadcast TV on Plex without an antenna.
What is it?
Locast is a free service that receives over the air (OTA) broadcast television signals and encodes and legally distributes them digitally across the internet. Using the program locast2plex you can receive this digital content and send it to a Plex Media Server. Plex will allow you to record, time-shift and save this content. It works exactly like a Cablebox / DVR.
I couldn’t find any quick references about accessing the Pihole API so I created this page.
Pihole is a great app for blocking internet advertising that was originally designed to be run on a raspberry pi. It blocks known advertisers’ domains at the DNS level by effectively null routing requests destined to serve ads. It can be run on VMs, Raspberry Pis and bare metal servers.
Here are the steps to access the pihole’s rest api. I’m using curl in this example, but you can integrate it with OpenHAB or any other system that can talk REST.
Step 1: Obtaining the web password
Most of the useful API endpoints the pihole provides wisely require authentication. After searching around the net I found that I could pass &token=A_VALID_SESSION_TOKEN to authenticate to the pihole for a session. Unfortunately, this is a temporary auth token and wasn’t suitable for my needs. After more digging, I found the gem I needed: &auth=WEBPASSWORD. Sounds great, but where do I obtain this password? You simply log onto your pihole instance or server and run:
I wrote a very simple little playbook for updating my local DNS records for my piholes. For me it’s easier than manually sshing onto each node and editing a file and restarting the service. Here’s the playbook: