Erianna | Charles R. Portwood II
Recent content on Erianna | Charles R. Portwood II
Latest posts
Docker
Introducing Lexa 2.0
Lexa is a instance and service discovery tool for LXD containers that exposes DNS, DoT and a JSON REST endpoint to make discovery of containers and services within containers on LXD instances easier, except now it’s written entirely in Rust. Lexa can be used as a stand-alone service to identify what LXD containers are running on a given host, or can be used in conjunction with tools such as…
Bedrock Materials List
Making material lists for Minecraft Bedrock edition is hard, so I made a tool written in rust that’ll take an exported .mcstructure file and conver it into a very simple materials list for you to use for your videos. Checkout this Youtube Short that showcases how to use it. You can get more information about the tool from Github: https://github.com/Alaydriem/bedrock-material-list
Announcing PBrick
Today I am making source-available one of my pandemic projects - pbrick – a USB-C PD powered, Bluetooh controlled motor driver and IO software and hardware.
A secure bluetooth DFU bootloader for nRF52
Today I am publicly announcing the availability of a new nRF52 bootloader for nRF52840 circuits, which source code and binaries available at: https://github.com/kaidyth/nrf52_bootloader .
Introducing Lexa
Lexa is a instance and service discovery tool for LXD containers that exposes DNS, DoT and a JSON REST endpoint to make discovery of containers and services within containers on LXD instances easier. Lexa can be used as a stand-alone service to identify what LXD containers are running on a given host, or can be used in conjunction with tools such as HaProxy, Traefik, or even your own DNS server to…
Charles R. Portwood II
Encrypt Home DNS Traffic
Your DNS server knows a lot about you - in fact it knows every single website your visit. Between ISP’s intercepting both valid and invalid domains, and potentially selling your browsing history to advertisers, it’s both prudent and remarkably simple to encrypt all of your DNS to prevent this and to more importantly, encrypt this traditionally plain-text data to prevent prying eyes.
Partially Authoritative DNS Zones with CoreDNS
A semi-authoritative zone enables you to provide authoritative records for a given zone for records the DNS server is aware of, and forwarding all unknown requests to an upstream server. Available as a CoreDNS plugin, Partial is a drop-in replacement for the CoreDNS file plugin that allows for partially or semi-authoritative DNS zones, and is available on Github at…
Encrypted BTRFS backups with Minio, Systemd, and Restic
If you’ve ever lost an important document or file you know how essential timely and reliable backups are. Getting backups done effeciently can prove to be challenge however, especially on Linux where a dozen different tools exist and do a variation on the same theme. Until recently I’ve been using Duplicati which is an excellent tool, but struggles to start reliably on newer Linux…
AMD Ryzen 2 PCI Passthrough with OVMF+VFIO and libvirt on Ubuntu 18.04 to Windows 10
Unable to tolerate the significant performance losses I was seeing on my aging i5-2500 desktop, I recently elected to upgrade my desktop to something a bit more powerful that would enable me to work faster and get more done. While planning out this process, I stumbled up this article from mid 2017 detailing the process of getting GPU passthrough working on Fedora 26 with Ryzen. Exhausted by the…
Wireguard on EdgeOS for a faster home VPN
Wireguard is an extremely simple, fast, and modern VPN. With it’s introduction into the mainline linux kernel , Wireguard promises to provide a simpler, faster, and more secure way for setting up a VPN without needing to deal with traditional solutions like OpenVPN and L2TP/IPSEC, which can be cumbersome and slow. In this article I’ll cover how to install Wireguard on a Ubiquiti…
Adding a Secondary Encrypted Hard Drive with LVM & LUKS on Ubuntu
Similar to Bitlocker on Windows, the native Ubuntu installer provides the capabilities during installation to encrypt your primary hard drive. Getting secondary, or even external devices encrypted however is a bit more complicated. In this article I’ll cover how to encrypt a second hard drive after installing Ubuntu, and set it up with LVM for easy expansion later. Additionally I’ll…
Protecting Passwords with Argon2id in PHP 7.3
Starting with PHP 7.3, Argon2id may be used as part of the password_* functions to provide better password security. This article I cover the benefits of Argon2id, how to compile Argon2id into PHP, how to use Argon2id within your PHP 7.3 applications, and some useful pieces of information about Argon2id usage within applications in general. For more information on Argon2id support within PHP 7.3,…
Creating an Alpine Linux Repository
One of the common problems developers run into when creating their own Docker images is the sheer size of the final output image. Even after compressing and squashing, images based off of Ubuntu or CentOS can still be hundreds of megabytes in size. As part of my personal dockerization efforts I’ve spent the past several weeks working on repackaging my PHP and Nginx packages so that they work…
Moving to Hugo
It’s hard to believe that it has almost been an entire year since my last blog post. In that time a lot has happened and changed both with my personal life and in the web development world. With those changes comes the need to re-think the way I both host and manage my personal blog – including the platform. Starting today, I’m moving my personal blog (and several other pages…
About
My name is Charles R. Portwood II. Currently I am a Master Technology Consultant at Wipfli. I am a multi-diciplinary software developer and systems engineer with an experience in several programming languages, hosting services, embedded software, and development methodologies. I provide consultation with specializations in architecture design and implementation; API, mobile, and web development;…
Alpine Linux
Alpine Linux The Alpine Linux repository is primarily used to provide packages for Docker, however the repository can be used independently. Before the repository can be added, you first need to download and install the signing key. Unlike Debian or RedHat systems, packages for Alpine Linux are signed using rather specific RSA 4096 key. apk add curl wget --no-cache curl -qs…
Github
Ubuntu
The new apt repository (apt.erianna.com) currently supports Trusty (14.04), Xenial (16.04),, and Bionic (18.04) packages across two distributions: main and test. The test distribution contains software packages that are functional but should not be used in production. Package Signing All software packages for Ubuntu are signed using an Ed25519 GnuPG key, which requires GnuPG 2.1.x. If your…
Mastering Yii
About this book Learn to work with the key aspects of Yii Framework 2 Explore how to create RESTful APIs with Yii Incorporate codeception with Yii2 to test your code thoroughly Who this book is for This book is for Yii Framework developers who want to quickly master Yii2. This book assumes some familiarity with Yii2, PHP 5, and HTML5. What you’ll learn Explore Yii2’s conventions and learn…
ECDSA Certificate Authorities and Certificates With OpenSSL
A lot has been said recently about ECSDA certificates and elliptical curve cryptography (ECC), and about how they are the future of the humble SSL Certificate. Cloudflare has written serveral articles describing what excatly ECSDA certs are and how they function with ECC. If you’re not familiar with ECC yet though, Cloudflare provided a pretty basic TL;DR; of what exactly ECC is and why it…
Yii Project Blueprints
About this book Develop real-world web applications through easy-to-follow, step-by-step processes Create eight projects from beginning to end to help you explore the full power of Yii Build a fast, user-based, database-driven content management system with a dashboard and RESTful API Who this book is for This book is for intermediate-to-advanced level Yii developers who want to master the Yii…
Dynamic DNS with Bind9
One of the things that really bugs me about online tutorials is that find one that’s accurate is a major pain. Recently I have to figure out (again) how to get secure dynamic DNS updates working with nsupdate and Bind9. Since I haven’t done this in nearly 3 years now, I had forgotten several important steps. In the hopes of saving someone else time (and mine in the future should I forget in the…