In this post I’m demonstrating how you could use Hashicorp’s Vault TOTP generator and an authenticator to connect to a dynamic ssh port. This is mostly a proof of concept and not a production grade solution, so use at your own risk. What’s TOTP? It’s a Time-based One Time Password. TBOTP is probably too ugly of an acronym to have gained widespread use. I don’t know, I didn’t coin it. ¯\_(ツ)_/¯| Chris Bergerons Tech Blog
The crux of this article centers around personal branding in the field of tech. Whether it’s work, play or social, having an online persona has become the new normal. Online personas have grown from bleeding-edge gamers, content creators, vloggers and bloggers - to traditional soccer moms with recipe groups. The internet continues to connect everyone and as online trust and validation become more societially valuable, so too does the way you present yourself. What’s in a Name?| Chris Bergerons Tech Blog
I was searching github for some uptime monitoring apps when I stumbled across a github actions based uptime and status page. It’s aptly named upptime and while it wasn’t what I was looking for, I found it to be novel and worth setting up:| Chris Bergerons Tech Blog
While browsing my local thrift store, I stumbled upon a little gadget that I decided to repurpose: It was only $6 USD, so I thought it would be a fun project. I searched for ‘Disney Infinity Linux’ to see if any work had been done toward decoding it or making it work. I found various sources that suggested that Playstation or Wii versions work fine, but the X-Box version was challenging. Fortunately, among the 5 they had, one was the Wii/Playstation version so I bought it.| Chris Bergerons Tech Blog
If you’re a heavy command line (cli) user in Macos, Linux or WSL, you may it convenient to easily start or stop your robot from it’s cleaning cycle. In this post I’ll you fellow keyboard jockeys how to control and even view your robot as is cleans.| Chris Bergerons Tech Blog
I’ve been exploring Thunderbolt quite a bit lately. As a follow up to my post about using Thunderbolt in a NAS, I recently bought a Gigabyte Maple Ridge Thunderbolt 4 add on card. I’ve captured a few thoughts, observations and pics here. Gigabyte GC-Maple Ridge| Chris Bergerons Tech Blog
In this post I’m demonstrating how to create a high-speed macos volume using quantity 2 Thunderbolt ports and NVMe enclosures. This solution uses RAID-0 (striping) so the failure threshold is more than twice that of a normal standalone disk. This example is for demonstration purposes and could be useful for video editing scratch space, rendering, large photo sessions or similar uses. Obviously, good backups (RAID is not a backup) or a more reliable storage tier is recommended for daily use.| Chris Bergerons Tech Blog
It’s not just you. If you’ve received this error the odds are pretty good this component of your schema is correct and your validator| Chris Bergerons Tech Blog
Saturn. This is an interesting piece. The keywords I used for this creation were ‘saturn’ and ‘smoke’. It began with a mostly blank frame / canvas. The machine learning and training model set out to discover Saturn and generate accordingly. As the piece evolved (video below), I started to notice what appear to be rigid, unnatural lines take shape. It turns out that the machine found Saturn to be not only a planet, but also a car manufacturer! The result is an interesting collision of ...| Chris Bergerons Tech Blog
I’ve been playing around with OpenGAN, TensorFlow, torch and a few other goodies lately. Adding CLIP to the mix gives me the ability to use common phrases to guide the AI to creating works. It’s fascinating to see what is generated based on the training models used. Some are surprisingly good and others, well, I’ll let you be the judge. Here are a few of the pieces along with the phrases that generated them:| Chris Bergerons Tech Blog
At home I run a lot of gadgets. A mix of computer servers, IoT devices and various Raspberry Pi projects that I’ve built. I always want to be aware of what’s happening with the home, so I’ve been using a notification app called Pushover. It’s a nice notification utility that can send messages to your phone or tablet, in addition to your desktop browser. The keyword here is browser.| Chris Bergerons Tech Blog
I created a new logo and icon of my initials for my personal brand tonight:| Chris Bergerons Tech Blog
I wanted a quick, lightweight way to view rocket launches from Florida’s Space Coast - Kennedy Space Center but everything I found online was bloated. So, I create a simple website and Progressive Web App (PWA) so I could just check it on my phone.| Chris Bergerons Tech Blog
| Chris Bergerons Tech Blog
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.| Chris Bergerons Tech Blog
NFTs have recently piqued my curiosity. If you don’t know what an NFT is, it’s a Non-Fungible Token. Clear as mud right? There are many articles on the subject these days, so I’ll defer you to them if you want more background.| Chris Bergerons Tech Blog
This guide will walk you through installing and configuring nginx, PHP and Mysql optimized for MacOS Big Sur on Apple Silicon - M1 Arm processors. Note: Most of this content originated from this post. Here, I’ve pared it down and fixed the relevant content. Credit goes to the original author: Kevin Dees.| Chris Bergerons Tech Blog
I was working on my latest project - Debris Art when NFT Blockchain Digital Ownership hit the news. I instantly realized the potential impact and decided to mint some of my works in the space.| Chris Bergerons Tech Blog
The recent surge in crypto prices brought my old Bitcoin stash back to mind. I decided to load up an old digital wallet to check it for consistency, but when I tried to load it, the software, Bitcoin Armory, wouldn’t run. I’m running macOS Catalina 10.15.7, so I figured something changed during my miscellaneous software updates or upgrade from Mojave to Catalina.| Chris Bergerons Tech Blog
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.| Chris Bergerons Tech Blog
If you’re having trouble with Hexo not generating files, check for broken symbolic links in the source directory tree: 1 find ./ -type l -exectest ! -e {} \; -print| Chris Bergerons Tech Blog
There are several existing resources that document strategies for migrating infrastructure to code. This post is about my experiences based on the reality, the challenges and best practices. The Setting You’re in charge of the infrastructure that the entire organization relies upon. Your product is a 24/7 web application, service or destination. The internet property is secure and five nines of uptime is expected. During a meeting with Sr. Leadership, a directive comes down: “We’re movi...| Chris Bergerons Tech Blog
This is a Magic Mirror Module that displays the Next Rocket Launch from Earth. The data comes from the excellent Launch Library 2 API provided by thespacedevs. This is the Launch Library 2 Documentation.| Chris Bergerons Tech Blog
While visiting with family, I came across an old DirecTV remote that wasn’t working entirely. Some buttons wouldn’t register even after replacing the batteries, so I figured a quick cleaning was in order. I snapped a few pictures of the disassembly so they might be useful to others (you).| Chris Bergerons Tech Blog
I recently purchased an Mcombo 7040 Lift Chair for my elderly grandfather. Prior to purchasing the chair my Grandfather had some questions so I figured I would have a look at the manual for answers. Surprised that I couldn’t find one, I thought I’d share it here along with my thoughts about the chair.| Chris Bergerons Tech Blog
Cloudinary is an amazing image hosting service that offers both a highly functional free tier in addition to a paid enterprise grade image hosting and transformation service. In this tutorial I demonstrate a few simple bash shell scripts to interface with Cloudinary.| Chris Bergerons Tech Blog
Grafana is a great tool for visualizing data. In this tutorial I’ll be putting annotations, or comments on points of interest overlayed on top of graph panels.| Chris Bergerons Tech Blog
Updated for 2021 !!! Update: I’ve recently added a Thunderbolt 3 PCIe card for easy 40 Gbps connectivity. Why another NAS/DAS article? There are a lot resources online for building your own DIY DAS. A lot of them contain good information but none of them were comprehensive for the DAS I wanted to build so I compiled the information that was useful for my specific 2019 build here. The prices linked below are subject to market fluctuations and timing, so some of the components I found at a gr...| Chris Bergerons Tech Blog
Are you looking for a calendar that lets you know what days of the week are cheapest to shop? If so, look no further. I created a calendar for anyone looking to save a few dollars on common purchases. The data for this calendar comes from this Reader’s Digest post. Please check it out if you want to know the reasoning behind the timing. If you know of other days that I should add - comment below!| Chris Bergerons Tech Blog
Tonight I was introduced to a Deluge exporter for Prometheus so I figured I’d whip up a quick dashboard for visualizing the metrics. Deluge Dashboard is a very simple way to display Deluge torrent metrics. It uses the deluge exporter to populate a Prometheus data source. The panels in this dashboard can be copied into more comprehensive dashboards for a single pane of glass view of your network transfers or it can be used as a standalone glanceboard. You can install the dashboard from the G...| Chris Bergerons Tech Blog
This is a Bitbar plugin that I wrote that shows you what’s currently playing on your Plex Media server.| Chris Bergerons Tech Blog
If you run a pihole the odds are good that you’ve needed to disable it from time to time. I wanted an easy way to disable my pihole(s) temporarily, so I wrote a simple shell script to do it for me. I’m almost always on my Macbook, so this approach worked for a while. I needed to disable it a few times while I was out of the room, so I figured I’d find an easier way to do it from my phone.| Chris Bergerons Tech Blog
Grafana is a really great tool for visualizing data. In my homelab, I have obviously have a lot of data so what better than to use than the right tool for the job. Below, you can find some screenshots of my dashboards. I use a raspberry pi that just runs a full screen browser for viewing the dashboard slideshow in addition to a few other glance boards (DAKBoard, Monitorr, et al). Here’s the Gallery| Chris Bergerons Tech Blog
I made a Grafana Dashboard for my Plex system at home. I feed various system telemetry into an influx database as the data source and Plex-Data-Collector for inserting the data from plex. Additionally, I wrote a python script for injecting logs from NZBGet into mysql. I then use Grafana to display the graphs. I really love Grafana and I’ve created several dashboards:| Chris Bergerons Tech Blog
As part of my dashboard project (link coming soon) I was looking for a lightweight self hosted monitoring solution for my home network services. I found Monitorr and decided it was a perfect fit for my needs. It’s simple and it doesn’t have any frills, which is exactly what I wanted.| Chris Bergerons Tech Blog
Using Grafana with pfSense Update: 2018/09/13 pfSense has a plugin for telegraf which can be installed from the gui. I recommend this method rather than what I figured out below. I’m leaving these notes for manual installation reference. 2017/12/09 I put this guide together using information from various other blogs. This is current as of December 2017 and using pfSense 2.4.2. For this tutorial, you’ll need your IP or hostname of your influxdb data source and your username and password. T...| Chris Bergerons Tech Blog
I wrote a simple plugin for NZBGet that inserts download history into a MySQL database. Having my download list in a database makes operations on the data easier than groking text logs. I wanted to display my most recent downloads on a Grafana Dashboard: To use simply copy the Mysql-Log.py script into your NZBGet/scripts directory. In NZBGet, select settings and set the hostname of your MySQL instance. You can download the plugin on github| Chris Bergerons Tech Blog
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 ...| Chris Bergerons Tech Blog
I wrote a simple plugin for NZBGet that inserts download history into an ElasticSearch cluster (or node). It uses API calls rather than parsing filesystem logs. I wanted a quick way to just insert the data so I created this script. Simply copy the ESLog.py script into your NZBGet/scripts directory. In NZBGet, select settings and set the hostname of your ElasticSearch instance. You can download the plugin on github| Chris Bergerons Tech Blog
Ansible is a great tool for configuration management but because of the way it’s designed a common complaint is that it’s not as fast as other tools like Salt, Chef or Puppet. This is because Ansible doesn’t have an agent that listens (although it can) on a host and uses a different type of deployment methodology that is based on SSH. This post isn’t about the pros and cons of each tool, but rather about ways to improve upon Ansible’s default configuration values. By default Ansible...| Chris Bergerons Tech Blog
Using pfsense for WAN Redundancy with Cellular LTE/4G I work from home a lot and I need reliable internet connectivity to workplace. As a result, I decided to implement a failover WAN connection into my firewall. I use pfSense as my firewall which combines power and flexibility with ease of configuration. The Hardware: NetGear LB2120 LTE Modem While researching options, I decided on the Netgear LB2120 4G LTE modem since it has Gigabit port(s) and can be used with external antennae.| Chris Bergerons Tech Blog
This is a quick tutorial about setting up a simple shell script that runs periodically to update a DNS record on the internet with the IP address of your network. If you’ve ever wanted to have myhome.mydomain.com always updated with your home IP address, this is one way you can do it. There are paid and free services that offer this functionality, but I choose to use this method because it gives me ultimate flexibility over my domain. This tutorial assumes you have your own Top Level Domain...| Chris Bergerons Tech Blog
I have a Dell R710 rev. II that I use in my home office lab homelab running ESXi 6.5. The R710 sits in my office where we work from home. Normally the hum of the R710 fans isn’t terribly bothersome - the 5 fans it houses run at around 3,800 RPM each. The noise is definitely noticeable so I did a little bit of digging into ways I could quiet it down. After looking into replacing the fans with quieter ones I found that I could override the system control of the fans and silence them that way....| Chris Bergerons Tech Blog
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:| Chris Bergerons Tech Blog
Pihole + Grafana + InfluxDB Dashboard I wanted to add the metrics from my ad-blocker, the great Pihole to my executive dashboard. To create the dashboard I used Grafana to display the graphs and InfluxDB a the time-series backend database. I use a simple python script to get the metrics from pihole and record them in influxdb. Grafana makes it easy to render them into a user friendly dashboard. Installing Grafana and Influxdb is beyond the scope of this blog post but here is the scipt that I ...| Chris Bergerons Tech Blog
This is a list of how US Representatives voted on Net Neutrality in 2018: Credit to reddit user truefalseequivalence Senate Vote for Net Neutrality| Chris Bergerons Tech Blog
Since Alexa for Car is becoming available on Dec. 5th, 2018, I thought I would throw some pictures up of my Alexa installation before it was productized. It was novel at the time. I used a Verizon LTE Jetpack for cellular connectivity. I simply feed the audio into the Auxillary port in the car and tether wirelessly to the LTE modem. This is far from a noteworth project, it’s just something I did for fun and proof of concept.| Chris Bergerons Tech Blog
I’m limited to about 80MB/s on downloads on my VPC at Digital Ocean, but I run Nzbget for downloading large files from usenet. It doesn’t take long to download at all, but out of curiosity I wanted to see if I could parallelize this and download multiple files at the same. I use Sonarr for searching usenet for freely distributable training videos which then sends them to NZBget for downloading. Since Sonarr can send multiple files to nzbget which get queued up, I figured I can reduce the ...| Chris Bergerons Tech Blog
Showterm I just found a neat tool that will let you| Chris Bergerons Tech Blog
Grafana + InfluxDB + scripts = Awesome I have many interests and some of them have metrics that are useful or fun to watch. For example, I have investment in Bitcoin so it’s nice to be able to keep an eye on it periodically. I decided to create a graphical “at a glance” dashboard for myself. I chose Grafana as the user interface / front end and InfluxDB a the time-series backend database to store the metrics. I use various scripts and applets to populate the data into Influx and Grafana...| Chris Bergerons Tech Blog
I’m limited to about 40MB/s on downloads on my VPC at Digital Ocean, but I run Sabnzbd for downloading large files from usenet. It doesn’t take long to download at all, but out of curiosity I wanted to see if I could parallelize this and download multiple files at the same. I use Sonarr for searching usenet for freely distributable training videos which then sends them to SABnzbd for downloading. Since Sonarr can send multiple files to sabnzbd which get queued up, I figured I can reduce t...| Chris Bergerons Tech Blog
I put together a quick bash shell script to view system info at a glance. I know there are existing tools for this like inxi, but I wanted to put something together I can copypasta. This is specific to RHEL, Centos and Sci Linux but it can be easily adapted for other distros.| Chris Bergerons Tech Blog
Inxi inxi is a super handy system info utility. These days I typically work with ephemeral instances / microservers, so I just dispose of infrastructure that flakes out. Occassionally I’ll need to see what’s up with a box so I’ve put together some common invocations of inxi below for reference: Common Invocations| Chris Bergerons Tech Blog
Hexo is a simple, lightweight node blog framework. It didn’t include a SystemD Unit file, so I created one:| Chris Bergerons Tech Blog
Comma is shipping the Panda interface again. I received mine last week. It’s a wifi enabled OBDII interface. The Panda is more than just a reader though. It decodes and enables writing to the Media canbus. It’s going to make for some fun projects. Using Cabana I should be able to create a Database file of the Kia Optima’s CANbus protocol.| Chris Bergerons Tech Blog
A few months ago while driving my commuter car - a 2000 Honda Insight, I received the dreadedIMA light. For those that don’t drive this car, the IMA light indicates that the main hybrid vehicle battery is failing at capacity. In Georgia, this light means you will not pass State emissions which is a requirement. Additionally, you lose a tremendous amount of power, which is kind of the point of the electric motor.| Chris Bergerons Tech Blog
Yep. I made my bed. Well I make my bed every day, but over a weekend I built my master bed. It’s a very simple design.| Chris Bergerons Tech Blog
I found an overhead projector at my local thrift store and decided to make a project out of it. Here are the pictures:| Chris Bergerons Tech Blog
A few years ago I built my own generator. I cobbled it together with some parts I had laying around the house. I found a free lawnmower| Chris Bergerons Tech Blog
On this page I highlight how I built my metal casting furnace. It’s a propane furnace capable of melting metals at up to 1,300 degrees F (°F). There are 2 major assemblies: The furnace housing and the burner. The housing is composed of a combination of fireclay, sand and cement; equally mixed in thirds.| Chris Bergerons Tech Blog
O’Reilly’s Radar - Release 2.0 Magazine interviewed me about Dashwerks, Inc’s role in the| Chris Bergerons Tech Blog
A few years ago, when gas prices were exorbitant, I started to build my own Ethanol Still. In light of the global energy crisis, I figured that being able to produce my own fuel was a useful endeavor. Creating ethanol fuel requires distilling corn (or other vegetables/fruits) and extracting its potential liquid energy. I did some research on the web and discovered the Charles 803. I bought plans and began building the still. I’ve put this project on hold for now but perhaps one day I’ll c...| Chris Bergerons Tech Blog
The stage is set: I drive my VW Jetta exactly 50 miles a day to and from work. When gas prices started going up in the Summer of 2006, I decided to figure out exactly how much fuel was costing me each workday. So, one morning on the way to work, I stopped at the gas station nearest my home. I filled my tank and reset my trip counter to zero. I recorded the price per gallon ($3 something a gallon!). Then, I drove directly to work, worked, and drove back to the same gas station. I pulled up to ...| Chris Bergerons Tech Blog
My carputer: The Dashboard PC In 1999 (many years ago), I had the crazy idea of putting a personal computer into my car. After much| Chris Bergerons Tech Blog
In 1999 (many years ago),| Chris Bergerons Tech Blog
This is an electronic circuit that I designed, built and brought to market. This page is here for posterity. The contents are from the original product page.| Chris Bergerons Tech Blog
In this post I discuss how you can upgrade a NAS Server by adding Thunderbolt 3 for lightning fast connectivity at 20 or 40Gbps. This particular implementation is specific to an Apple Mac Mini M1 and| Chris Bergerons Tech Blog