Blazor Authentication Without Razor Pages

For a while now I’ve been using the standard ASP.NET authentication methods with customized Razor pages to match the style of my site. And while this works, it’s annoying to lose all the functionality of Blazor, especially when you pour hours of time into customizing the look-and-feel, only to need to recreate it in the Razor page. In short, the special sauce is a minimal API method hat accepts a POST form-encoded username and password, which I called internal_login: ...

August 23, 2024 · 3 min · 499 words · Me · - views

Blazor Magic Link

I wanted a quick Magic Link implementation for my Blazor app, so I cobbled together a solution. I took inspiration from a NuGet package (forgot which one), but it’s simple enough to do with a few methods. Generating the Magic Link When a user decides to log in with a magic link, you can call a method like this. I’m loading a lot of the email server config elsewhere in the service. ...

August 21, 2024 · 4 min · 726 words · Me · - views

Submitting an Unraid Community App

In a previous post I created a docker container for Goatcounter, a privacy-friendly analytics service. I wanted to submit it to the Unraid Community Apps repository so that others could easily install it. This post will cover the process of submitting a new app to the Unraid Community Apps repository. The first step I took was to install the docker container from Docker Hub. To do this, you can use the “Click Here To Get More Results From DockerHub” link. ...

March 1, 2024 · 2 min · 334 words · Me · - views

Creating a Docker Hub Repository

Recently I was looking to implement some analytics from this site and came across the following blog post by Haseed Majid: How to Add Page Views to your Hugo Blog Posts Using Goatcounter. I really like the concept of Goatcounter and wanted to try it in my self-hosted environment, but it appears the creator has strong opinions about Docker, so there’s no provided Dockerfile. There are a few implementations referenced in the readme, however they were all based on older versions and not kept up. ...

February 28, 2024 · 4 min · 789 words · Me · - views

Using Github Copilot to Create Blog Posts

First, let me show you: I recently installed the Github Copilot extension for VS Code. I’ve been using it for a few days now, and I’m really impressed. I’ve been using it to generate the basic structure of my blog posts. I’m going to use this post to show you how I’m using it, and how I’m going to use it in the future. ...

July 30, 2023 · 2 min · 225 words · Me · - views

Adding Chat Context to Teams: Pt 2

Getting Started In Part 1 I explained how we were going to use Teams and Power Automate to generate a contextually aware chatbot for your team. We’re going to use Teams channel communication to simplify how we “window” communication. That gives us a few nice things out of the box: A list of messages that we can easily iterate over Multi-user communication A clear “beginning” and “end” to a conversation So I pulled in the “When a new channel message is added” trigger: ...

July 29, 2023 · 2 min · 387 words · Me · - views

Hugo and Github

I’d been running my blog on Ghost and DigitalOcean for a bit now, and while it’s not super expensive, it’s certainly not free. And I wasn’t comfortable with the fragility of the config. And while the editor was nice, it seemed like overkill for the type of blog I was hoping to have. I wanted something I could quickly get my thoughts on to paper. So after a little research I ended up configuring Hugo and publishing it to Github Pages. But the process wasn’t seamless, so here’s my notes: ...

July 28, 2023 · 2 min · 309 words · Me · - views

Adding Chat Context to Teams: Pt 1

Chatbots are handy, but let’s be honest, they can be a bit forgetful. Frustrated with bot conversations that felt like starting from scratch with every message, I decided to roll up my sleeves and tackle the problem. Armed with Power Automate and OpenAI, I started a quest to build a Microsoft Teams chatbot that could actually remember our chat history. Here’s a walkthrough of what I learned along the way - the successes, the hurdles, and everything in between. Let’s get into it. ...

July 25, 2023 · 2 min · 396 words · Me · - views