Reorganized content, cleanup

This commit is contained in:
Mike Conrad
2025-02-23 17:00:05 -05:00
parent b1ce65902b
commit 2ffb3ccd53
46 changed files with 48 additions and 50 deletions

Binary file not shown.

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Software Engineering
date: "2023-05-21T16:07:50Z"

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Software Engineering
date: "2023-07-12T11:32:44Z"

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Software Engineering
date: "2024-01-03T19:59:49Z"

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Software Engineering
date: "2024-01-10T20:41:00Z"
@ -30,7 +30,7 @@ success Installed "create-vite@5.2.2" with binaries:
✔ Select a framework: React
✔ Select a variant: TypeScript
Scaffolding project in /home/mikeconrad/projects/authenticator/frontend...
Scaffolding project in /home/Mike Conrad/projects/authenticator/frontend...
Done. Now run:
@ -120,7 +120,7 @@ function App() {
token: 'AJFDLDAJKFK'
},
{
account: 'mikeconrad@example.com',
account: 'Mike Conrad@example.com',
issuer: 'Example.com',
token: 'KAJLFDJLKAFD'
}

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Software Engineering
date: "2024-01-17T12:11:00Z"

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Cloudflare
- Docker

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Automation
- Cloudflare
@ -38,7 +38,7 @@ services:
# Set up LetsEncrypt
- --certificatesresolvers.letsencrypt.acme.dnschallenge=true
- --certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare
- --certificatesresolvers.letsencrypt.acme.email=mikeconrad@onmail.com
- --certificatesresolvers.letsencrypt.acme.email=Mike Conrad@onmail.com
- --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
- --entryPoints.web.http.redirections.entryPoint.to=websecure
- --entryPoints.web.http.redirections.entryPoint.scheme=https

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Automation
- Docker
@ -33,13 +33,13 @@ Since the package registry is baked in and enabled by default, I will demonstrat
docker pull alpine:latest
# Re tag the image with our local registry information
docker tag alpine:latest git.hackanooga.com/mikeconrad/alpine:latest
docker tag alpine:latest git.hackanooga.com/Mike Conrad/alpine:latest
# Login using your gitea user account
docker login git.hackanooga.com
# Push the image to our registry
docker push git.hackanooga.com/mikeconrad/alpine:latest
docker push git.hackanooga.com/Mike Conrad/alpine:latest
```
Now log into your Gitea instance, navigate to your user account and look for `packages`. You should see the newly uploaded alpine image.

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Ansible
- Automation
@ -28,7 +28,7 @@ Another reason I love it is the fact that you can create really powerful build t
## Installation and Setup
For this I will assume that you already have Ansible on your machine and that you will be installing TeamCity locally. You can simply follow along with the installation guide [here](https://www.jetbrains.com/help/teamcity/install-teamcity-server-on-linux-or-macos.html#Example%3A+Installation+using+Ubuntu+Linux). We will be creating an Ansible playbook based on the following steps. If you just want the finished code, you can find it on my Gitea instance [here](https://git.hackanooga.com/mikeconrad/teamcity-ansible-scripts.git):
For this I will assume that you already have Ansible on your machine and that you will be installing TeamCity locally. You can simply follow along with the installation guide [here](https://www.jetbrains.com/help/teamcity/install-teamcity-server-on-linux-or-macos.html#Example%3A+Installation+using+Ubuntu+Linux). We will be creating an Ansible playbook based on the following steps. If you just want the finished code, you can find it on my Gitea instance [here](https://git.hackanooga.com/Mike Conrad/teamcity-ansible-scripts.git):
#### Step 1 : Create project and initial playbook
@ -137,7 +137,7 @@ $: ~/projects/teamcity-ansible-terraform
1 directory, 2 files
```
Thats it! Now you should have a fully automated installed of TeamCity Server ready to be deployed wherever you need it. Here is the final playbook file, also you can find the most up to date version in my [repo](https://git.hackanooga.com/mikeconrad/teamcity-ansible-scripts.git):
Thats it! Now you should have a fully automated installed of TeamCity Server ready to be deployed wherever you need it. Here is the final playbook file, also you can find the most up to date version in my [repo](https://git.hackanooga.com/Mike Conrad/teamcity-ansible-scripts.git):
```yaml
---

View File

@ -1,11 +1,10 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Automation
- Docker
- Software Engineering
date: "2024-04-03T09:12:41Z"
image: /wp-content/uploads/2024/04/docker-logo-blue-min.png
tags:
- Blog Post
title: Stop all running containers with Docker

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Ansible
- Automation
@ -154,4 +154,4 @@ It drove me crazy for about half a day or so. I couldnt find any reason why t
Expand that first section and you will see the solution:
![](https:///wp-content/uploads/2024/05/image.png)It turns out I just needed to update my `docker-compose.yml` and nest the labels under a deploy section, redeploy and everything was working as expected.
![](/wp-content/uploads/2024/05/image.png)It turns out I just needed to update my `docker-compose.yml` and nest the labels under a deploy section, redeploy and everything was working as expected.

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Cloudflare
- Networking
@ -67,12 +67,12 @@ $:/tmp/endlessh$ 2024-06-24T13:05:59.488Z Port 2222
2024-06-24T13:05:59.488Z poll(1, -1)
ssh -vvv localhost -p 2222
OpenSSH_8.9p1 Ubuntu-3ubuntu0.7, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /home/mikeconrad/.ssh/config
debug1: Reading configuration data /home/Mike Conrad/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/mikeconrad/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/mikeconrad/.ssh/known_hosts2'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/Mike Conrad/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/Mike Conrad/.ssh/known_hosts2'
debug2: resolving "localhost" port 2222
debug3: resolve_host: lookup localhost:2222
debug3: ssh_connect_direct: entering
@ -84,20 +84,20 @@ debug1: Connection established.
2024-06-24T13:06:08.635Z setsockopt(4, SO_RCVBUF, 1) = 0
2024-06-24T13:06:08.635Z ACCEPT host=::1 port=43696 fd=4 n=1/4096
2024-06-24T13:06:08.635Z poll(1, 10000)
debug1: identity file /home/mikeconrad/.ssh/id_rsa type 0
debug1: identity file /home/mikeconrad/.ssh/id_rsa-cert type 4
debug1: identity file /home/mikeconrad/.ssh/id_ecdsa type -1
debug1: identity file /home/mikeconrad/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/mikeconrad/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/mikeconrad/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/mikeconrad/.ssh/id_ed25519 type -1
debug1: identity file /home/mikeconrad/.ssh/id_ed25519-cert type -1
debug1: identity file /home/mikeconrad/.ssh/id_ed25519_sk type -1
debug1: identity file /home/mikeconrad/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/mikeconrad/.ssh/id_xmss type -1
debug1: identity file /home/mikeconrad/.ssh/id_xmss-cert type -1
debug1: identity file /home/mikeconrad/.ssh/id_dsa type -1
debug1: identity file /home/mikeconrad/.ssh/id_dsa-cert type -1
debug1: identity file /home/Mike Conrad/.ssh/id_rsa type 0
debug1: identity file /home/Mike Conrad/.ssh/id_rsa-cert type 4
debug1: identity file /home/Mike Conrad/.ssh/id_ecdsa type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ed25519 type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ed25519-cert type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ed25519_sk type -1
debug1: identity file /home/Mike Conrad/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/Mike Conrad/.ssh/id_xmss type -1
debug1: identity file /home/Mike Conrad/.ssh/id_xmss-cert type -1
debug1: identity file /home/Mike Conrad/.ssh/id_dsa type -1
debug1: identity file /home/Mike Conrad/.ssh/id_dsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.7
2024-06-24T13:06:18.684Z = 0
2024-06-24T13:06:18.684Z write(4) = 3

View File

@ -1,11 +1,10 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Docker
- Networking
- Self Hosted
date: "2024-07-16T21:42:43Z"
image: /wp-content/uploads/2024/07/nginx.png
tags:
- Blog Post
title: Debugging running Nginx config

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Cloudflare
- Docker

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Cloudflare
- Networking
@ -14,7 +14,7 @@ title: Hardening your web server by only allowing traffic from Cloudflare
#### TDLR:
If you just want the code you can find a convenient script on my Gitea server [here](https://git.hackanooga.com/mikeconrad/random_scripts/src/branch/master/allow_only_cloudflare_traffic.sh). This version has been slightly modified so that it will work on more systems.
If you just want the code you can find a convenient script on my Gitea server [here](https://git.hackanooga.com/Mike Conrad/random_scripts/src/branch/master/allow_only_cloudflare_traffic.sh). This version has been slightly modified so that it will work on more systems.
I have been using Cloudflare for several years for both personal and professional projects. The free plan has some various gracious limits and its a great way to clear out some low hanging fruit and improve the security of your application. If youre not familiar with how it works, basically Cloudflare has two modes for DNS records. `DNS Only` and `Proxied`. The only way to get the advantages of Cloudflare is to use `Proxied` mode. Cloudflare has some great documentation on how all of their services work but basically what happens is that you are pointing your domain to Cloudflare and Cloudflare provisions their network of Proxy servers to handle requests for your domain.

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Automation
- IaC
@ -16,7 +16,7 @@ title: 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.
For this tutorial we will be using Terraform to stand up a Digital Ocean droplet and then install Wireguard onto that. The Digital Ocean droplet will be acting as our “server” in this example and we will be using our own computer as the “client”. Of course, you dont have to use Terraform, you just need a Linux box to install Wireguard on. You can find the code for this tutorial on my personal Git server [here](https://git.hackanooga.com/mikeconrad/wireguard-terraform-digitalocean).
For this tutorial we will be using Terraform to stand up a Digital Ocean droplet and then install Wireguard onto that. The Digital Ocean droplet will be acting as our “server” in this example and we will be using our own computer as the “client”. Of course, you dont have to use Terraform, you just need a Linux box to install Wireguard on. You can find the code for this tutorial on my personal Git server [here](https://git.hackanooga.com/Mike Conrad/wireguard-terraform-digitalocean).
### Create Droplet with Terraform
@ -300,7 +300,7 @@ So now we should be ready to go! On your local machine go ahead and try it out:
```shell
## Start the interface with wg-quick up [interface_name]
$ sudo wg-quick up do
[sudo] password for mikeconrad:
[sudo] password for Mike Conrad:
[#] ip link add do type wireguard
[#] wg setconf do /dev/fd/63
[#] ip -4 address add 10.66.66.2/32 dev do
@ -333,7 +333,7 @@ peer: duTHwMhzSZxnRJ2GFCUCHE4HgY5tSeRn9EzQt9XVDx4=
transfer: 1.82 KiB received, 2.89 KiB sent
## Make sure we can ping the outside world
mikeconrad@pop-os:~/projects/wireguard-terraform-digitalocean$ ping 1.1.1.1
Mike Conrad@pop-os:~/projects/wireguard-terraform-digitalocean$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=28.0 ms
^C

View File

@ -1,5 +1,5 @@
---
author: mikeconrad
author: Mike Conrad
categories:
- Software Engineering
date: "2024-11-20T16:07:50Z"