Cleaned up wordpress crumbs

This commit is contained in:
Mike Conrad
2025-02-19 18:15:27 -05:00
parent f5692ad816
commit 1fa31b4ace
14 changed files with 2 additions and 43 deletions

View File

@ -3,8 +3,6 @@ author: mikeconrad
categories: categories:
- Software Engineering - Software Engineering
date: "2024-01-10T20:41:00Z" date: "2024-01-10T20:41:00Z"
guid: https://hackanooga.com/?p=539
id: 539
tags: tags:
- Blog Post - Blog Post
- GraphQL - GraphQL
@ -13,7 +11,6 @@ tags:
- Prisma - Prisma
- TypeScript - TypeScript
title: Roll your own authenticator app with KeystoneJS and React - pt 2 title: Roll your own authenticator app with KeystoneJS and React - pt 2
url: /roll-your-own-authenticator-app-with-keystonejs-and-react-pt-2/
--- ---
In part 1 of this series we built out a basic backend using KeystoneJS. In this part we will go ahead and start a new React frontend that will interact with our backend. We will be using Vite. Lets get started. Make sure you are in the `authenticator` folder and run the following: In part 1 of this series we built out a basic backend using KeystoneJS. In this part we will go ahead and start a new React frontend that will interact with our backend. We will be using Vite. Lets get started. Make sure you are in the `authenticator` folder and run the following:

View File

@ -8,15 +8,12 @@ enclosure:
https://hackanooga.com/wp-content/uploads/2024/03/otp-countdown.mp4 https://hackanooga.com/wp-content/uploads/2024/03/otp-countdown.mp4
29730 29730
video/mp4 video/mp4
guid: https://hackanooga.com/?p=546
id: 546
tags: tags:
- Authentication - Authentication
- Blog Post - Blog Post
- React - React
- TypeScript - TypeScript
title: Roll your own authenticator app with KeystoneJS and React - pt 3 title: Roll your own authenticator app with KeystoneJS and React - pt 3
url: /roll-your-own-authenticator-app-with-keystonejs-and-react-pt-3/
--- ---
In our previous post we got to the point of displaying an OTP in our card component. Now it is time to refactor a bit and implement a countdown functionality to see when this token will expire. For now we will go ahead and add this logic into our Card component. In order to figure out how to build this countdown timer we first need to understand how the TOTP counter is calculated. In our previous post we got to the point of displaying an OTP in our card component. Now it is time to refactor a bit and implement a countdown functionality to see when this token will expire. For now we will go ahead and add this logic into our Card component. In order to figure out how to build this countdown timer we first need to understand how the TOTP counter is calculated.

View File

@ -10,12 +10,9 @@ dark_fusion_page_sidebar:
dark_fusion_site_layout: dark_fusion_site_layout:
- "" - ""
date: "2024-02-01T14:35:00Z" date: "2024-02-01T14:35:00Z"
guid: https://wordpress.hackanooga.com/?p=422
id: 422
tags: tags:
- Blog Post - Blog Post
title: Traefik with Let’s Encrypt and Cloudflare (pt 1) title: Traefik with Let's Encrypt and Cloudflare (pt 1)
url: /traefik-with-lets-encrypt-and-cloudflare-pt-1/
--- ---
Recently I decided to rebuild one of my homelab servers. Previously I was using Nginx as my reverse proxy but I decided to switch to Traefik since I have been using it professionally for some time now. One of the reasons I like Traefik is that it is stupid simple to set up certificates and when I am using it with Docker I dont have to worry about a bunch of configuration files. If you arent familiar with how Traefik works with Docker, here is a brief example of a `docker-compose.yaml` Recently I decided to rebuild one of my homelab servers. Previously I was using Nginx as my reverse proxy but I decided to switch to Traefik since I have been using it professionally for some time now. One of the reasons I like Traefik is that it is stupid simple to set up certificates and when I am using it with Docker I dont have to worry about a bunch of configuration files. If you arent familiar with how Traefik works with Docker, here is a brief example of a `docker-compose.yaml`
@ -150,4 +147,4 @@ The service name is derived automatically from the definition in the docker comp
``` ```
<br></br> ots: # This will become the service name<br></br> image: luzifer/ots<br></br> container_name: ots<br></br> <br></br> ots: # This will become the service name<br></br> image: luzifer/ots<br></br> container_name: ots<br></br>
``` ```

View File

@ -10,12 +10,9 @@ dark_fusion_page_sidebar:
dark_fusion_site_layout: dark_fusion_site_layout:
- "" - ""
date: "2024-02-15T15:19:12Z" date: "2024-02-15T15:19:12Z"
guid: https://wordpress.hackanooga.com/?p=425
id: 425
tags: tags:
- Blog Post - Blog Post
title: Traefik with Lets Encrypt and Cloudflare (pt 2) title: Traefik with Lets Encrypt and Cloudflare (pt 2)
url: /traefik-with-lets-encrypt-and-cloudflare-pt-2/
--- ---
In this article we are gonna get into setting up Traefik to request dynamic certs from Lets Encrypt. I had a few issues getting this up and running and the documentation is a little fuzzy. In my case I decided to go with the DNS challenge route. Really the only reason I went with this option is because I was having issues with the TLS and HTTP challenges. Well as it turns out my issues didnt have as much to do with my configuration as they did with my router. In this article we are gonna get into setting up Traefik to request dynamic certs from Lets Encrypt. I had a few issues getting this up and running and the documentation is a little fuzzy. In my case I decided to go with the DNS challenge route. Really the only reason I went with this option is because I was having issues with the TLS and HTTP challenges. Well as it turns out my issues didnt have as much to do with my configuration as they did with my router.

View File

@ -10,12 +10,9 @@ dark_fusion_page_sidebar:
dark_fusion_site_layout: dark_fusion_site_layout:
- "" - ""
date: "2024-03-07T10:07:07Z" date: "2024-03-07T10:07:07Z"
guid: https://wordpress.hackanooga.com/?p=413
id: 413
tags: tags:
- Blog Post - Blog Post
title: Self hosted package registries with Gitea title: Self hosted package registries with Gitea
url: /self-hosted-package-registries-with-gitea/
--- ---
I am a big proponent of open source technologies. I have been using [Gitea](https://about.gitea.com/) for a couple years now in my homelab. A few years ago I moved most of my code off of Github and onto my self hosted instance. I recently came across a really handy feature that I didnt know Gitea had and was pleasantly surprised by: [Package Registry](https://docs.gitea.com/usage/packages/overview?_highlight=packag). You are no doubt familiar with what a package registry is in the broad context. Here are some examples of package registries you probably use on a regular basis: I am a big proponent of open source technologies. I have been using [Gitea](https://about.gitea.com/) for a couple years now in my homelab. A few years ago I moved most of my code off of Github and onto my self hosted instance. I recently came across a really handy feature that I didnt know Gitea had and was pleasantly surprised by: [Package Registry](https://docs.gitea.com/usage/packages/overview?_highlight=packag). You are no doubt familiar with what a package registry is in the broad context. Here are some examples of package registries you probably use on a regular basis:

View File

@ -10,12 +10,9 @@ dark_fusion_page_sidebar:
dark_fusion_site_layout: dark_fusion_site_layout:
- "" - ""
date: "2024-03-11T09:37:47Z" date: "2024-03-11T09:37:47Z"
guid: https://wordpress.hackanooga.com/?p=393
id: 393
tags: tags:
- Blog Post - Blog Post
title: Automating CI/CD with TeamCity and Ansible title: Automating CI/CD with TeamCity and Ansible
url: /automating-ci-cd-with-teamcity-ansible/
--- ---
In part one of this series we are going to explore a CI/CD option you may not be familiar with but should definitely be on your radar. I used Jetbrains TeamCity for several months at my last company and really enjoyed my time with it. A couple of the things I like most about it are: In part one of this series we are going to explore a CI/CD option you may not be familiar with but should definitely be on your radar. I used Jetbrains TeamCity for several months at my last company and really enjoyed my time with it. A couple of the things I like most about it are:

View File

@ -5,13 +5,10 @@ categories:
- Docker - Docker
- Software Engineering - Software Engineering
date: "2024-04-03T09:12:41Z" date: "2024-04-03T09:12:41Z"
guid: https://hackanooga.com/?p=557
id: 557
image: /wp-content/uploads/2024/04/docker-logo-blue-min.png image: /wp-content/uploads/2024/04/docker-logo-blue-min.png
tags: tags:
- Blog Post - Blog Post
title: Stop all running containers with Docker title: Stop all running containers with Docker
url: /stop-all-running-containers-with-docker/
--- ---
These are some handy snippets I use on a regular basis when managing containers. I have one server in particular that can sometimes end up with 50 to 100 orphaned containers for various reasons. The easiest/quickest way to stop all of them is to do something like this: These are some handy snippets I use on a regular basis when managing containers. I have one server in particular that can sometimes end up with 50 to 100 orphaned containers for various reasons. The easiest/quickest way to stop all of them is to do something like this:

View File

@ -7,12 +7,9 @@ categories:
- Software Engineering - Software Engineering
- Traefik - Traefik
date: "2024-05-11T09:44:01Z" date: "2024-05-11T09:44:01Z"
guid: https://hackanooga.com/?p=564
id: 564
tags: tags:
- Blog Post - Blog Post
title: Traefik 3.0 service discovery in Docker Swarm mode title: Traefik 3.0 service discovery in Docker Swarm mode
url: /traefik-3-0-service-discovery-in-docker-swarm-mode/
--- ---
I recently decided to set up a Docker swarm cluster for a project I was working on. If you arent familiar with Swarm mode, it is similar in some ways to k8s but with much less complexity and it is built into Docker. If you are looking for a fairly straightforward way to deploy containers across a number of nodes without all the overhead of k8s it can be a good choice, however it isnt a very popular or widespread solution these days. I recently decided to set up a Docker swarm cluster for a project I was working on. If you arent familiar with Swarm mode, it is similar in some ways to k8s but with much less complexity and it is built into Docker. If you are looking for a fairly straightforward way to deploy containers across a number of nodes without all the overhead of k8s it can be a good choice, however it isnt a very popular or widespread solution these days.

View File

@ -7,12 +7,9 @@ categories:
- Security - Security
- SSH - SSH
date: "2024-06-24T09:37:43Z" date: "2024-06-24T09:37:43Z"
guid: https://hackanooga.com/?p=576
id: 576
tags: tags:
- Blog Post - Blog Post
title: Fun with bots - SSH tarpitting title: Fun with bots - SSH tarpitting
url: /fun-with-bots-ssh-tarpitting/
--- ---
For those of you who arent familiar with the concept of a network tarpit it is a fairly simple concept. Wikipedia defines it like this: For those of you who arent familiar with the concept of a network tarpit it is a fairly simple concept. Wikipedia defines it like this:

View File

@ -5,13 +5,10 @@ categories:
- Networking - Networking
- Self Hosted - Self Hosted
date: "2024-07-16T21:42:43Z" date: "2024-07-16T21:42:43Z"
guid: https://hackanooga.com/?p=596
id: 596
image: /wp-content/uploads/2024/07/nginx.png image: /wp-content/uploads/2024/07/nginx.png
tags: tags:
- Blog Post - Blog Post
title: Debugging running Nginx config title: Debugging running Nginx config
url: /debugging-running-nginx-config/
--- ---
I was recently working on project where a client had cPanel/WHM with Nginx and Apache. They had a large number of sites managed by Nginx with a large number of includes. I created a custom config to override a location block and needed to be certain that my changes where actually being picked up. Anytime I make changes to an Nginx config, I try to be vigilant about running: I was recently working on project where a client had cPanel/WHM with Nginx and Apache. They had a large number of sites managed by Nginx with a large number of includes. I created a custom config to override a location block and needed to be certain that my changes where actually being picked up. Anytime I make changes to an Nginx config, I try to be vigilant about running:

View File

@ -7,12 +7,9 @@ categories:
- Security - Security
- Self Hosted - Self Hosted
date: "2024-07-16T22:15:23Z" date: "2024-07-16T22:15:23Z"
guid: https://hackanooga.com/?p=599
id: 599
tags: tags:
- Upwork Project - Upwork Project
title: SFTP Server Setup for Daily Inventory File Transfers title: SFTP Server Setup for Daily Inventory File Transfers
url: /sftp-server-setup-for-daily-inventory-file-transfers/
--- ---
### Job Description ### Job Description

View File

@ -7,12 +7,9 @@ categories:
- Software Engineering - Software Engineering
date: "2024-08-01T17:02:29Z" date: "2024-08-01T17:02:29Z"
excerpt: Harden your origin server by only allowing access from Cloudflare IP addresses. excerpt: Harden your origin server by only allowing access from Cloudflare IP addresses.
guid: https://hackanooga.com/?p=607
id: 607
tags: tags:
- Blog Post - Blog Post
title: Hardening your web server by only allowing traffic from Cloudflare title: Hardening your web server by only allowing traffic from Cloudflare
url: /hardening-your-web-server-by-only-allowing-traffic-from-cloudflare/
--- ---
#### TDLR: #### TDLR:

View File

@ -9,12 +9,9 @@ categories:
- Software Engineering - Software Engineering
- SSH - SSH
date: "2024-09-25T09:56:04Z" date: "2024-09-25T09:56:04Z"
guid: https://hackanooga.com/?p=619
id: 619
tags: tags:
- Blog Post - Blog Post
title: Standing up a Wireguard VPN title: Standing up a Wireguard VPN
url: /standing-up-a-wireguard-vpn/
--- ---
VPNs have traditionally been slow, complex and hard to set up and configure. That all changed several years ago when Wireguard was officially merged into the mainline Linux kernel ([src](https://arstechnica.com/gadgets/2020/03/wireguard-vpn-makes-it-to-1-0-0-and-into-the-next-linux-kernel/)). I wont go over all the reasons for why you should want to use Wireguard in this article, instead I will be focusing on just how easy it is to set up and configure. VPNs have traditionally been slow, complex and hard to set up and configure. That all changed several years ago when Wireguard was officially merged into the mainline Linux kernel ([src](https://arstechnica.com/gadgets/2020/03/wireguard-vpn-makes-it-to-1-0-0-and-into-the-next-linux-kernel/)). I wont go over all the reasons for why you should want to use Wireguard in this article, instead I will be focusing on just how easy it is to set up and configure.

View File

@ -3,8 +3,6 @@ author: mikeconrad
categories: categories:
- Software Engineering - Software Engineering
date: "2024-11-20T16:07:50Z" date: "2024-11-20T16:07:50Z"
guid: https://hackanooga.com/?p=509
id: 509
image: /wp-content/uploads/2024/03/hilger-portal-home.webp image: /wp-content/uploads/2024/03/hilger-portal-home.webp
tags: tags:
- Portfolio - Portfolio