cmc/cleberg.net

My personal web garden & blog.

clone: git clone https://gitbay.org/cmc/cleberg.net.git

8314ccc5364cbc9afa9653c2b02c5c58d433ade5

unsigned

author: Christian Cleberg <hello@cleberg.net> · 2025-03-11T21:09:26Z

move from cleberg.net to cmc.pub
 README.org                                         | 14 ++---
 build.sh                                           |  2 +-
 content/blog/2020-12-29-zork.org                   |  2 +-
 content/blog/2021-03-28-vaporwave-vs-outrun.org    | 12 ++--
 content/blog/2021-04-23-php-comment-system.org     |  2 +-
 content/blog/2022-02-10-njalla-dns-api.org         |  4 +-
 content/blog/2022-02-16-debian-and-nginx.org       |  4 +-
 content/blog/2022-02-17-exiftool.org               |  2 +-
 content/blog/2022-02-22-tuesday.org                |  2 +-
 content/blog/2022-03-02-reliable-notes.org         |  6 +-
 content/blog/2022-03-24-server-hardening.org       |  4 +-
 content/blog/2022-06-01-ditching-cloudflare.org    |  2 +-
 content/blog/2022-10-04-syncthing.org              |  2 +-
 .../blog/2022-11-29-nginx-referrer-ban-list.org    |  4 +-
 .../blog/2023-01-05-mass-unlike-tumblr-posts.org   |  4 +-
 content/blog/2023-06-23-byobu.org                  |  2 +-
 content/blog/2023-06-23-self-hosting-convos.org    |  4 +-
 content/blog/2023-06-30-self-hosting-voyager.org   |  2 +-
 content/blog/2023-10-04-digital-minimalism.org     |  2 +-
 content/blog/2023-10-11-self-hosting-authelia.org  |  4 +-
 .../2023-10-17-self-hosting-anonymousoverflow.org  |  4 +-
 content/blog/2024-01-27-tableau-dashboard.org      |  4 +-
 content/blog/2024-03-13-doom-emacs.org             | 18 +++---
 .../blog/2024-03-15-self-hosting-ddns-updater.org  |  2 +-
 content/blog/2024-03-29-org-blog.org               | 12 ++--
 .../blog/2024-04-08-docker-local-web-server.org    | 18 +++---
 content/blog/2024-04-18-mu4e.org                   |  8 +--
 content/blog/2024-05-03-ubuntu-on-macos.org        | 10 +--
 content/blog/2024-07-11-emacs-on-ipad.org          | 10 +--
 content/blog/2024-08-11-org-mode-features.org      | 16 ++---
 content/blog/2024-08-25-n8n-sentiment-analysis.org |  6 +-
 .../blog/2024-09-20-prometheus-grafana-cloud.org   | 18 +++---
 .../2024-10-31-continue-ollama-code-assistant.org  | 10 +--
 .../blog/2024-12-27-self-hosting-the-lounge.org    | 10 +--
 content/blog/2025-01-23-self-hosting-tandoor.org   | 14 ++---
 content/blog/2025-02-11-obscura-vpn.org            |  8 +--
 content/blog/2025-02-24-email-migration.org        |  2 +-
 content/index.org                                  |  2 +-
 content/salary/index.org                           |  4 +-
 content/services/index.org                         | 21 +++----
 content/wiki/ios.org                               |  2 +-
 content/wiki/macos.org                             |  2 +-
 publish.el                                         |  6 +-
 theme/static/.well-known/security.txt              |  6 +-
 theme/static/gpg.txt                               | 71 +++++++---------------
 theme/templates/base.html                          |  2 +-
 theme/templates/feed.xml                           |  6 +-
 theme/templates/index.html                         | 19 +++---
 theme/templates/post.html                          |  2 +-
 utils/hooks/post-push                              |  2 +-
 utils/nginx-dev.conf                               |  6 +-
 utils/salary_visualization.py                      |  2 +-
 52 files changed, 186 insertions(+), 217 deletions(-)

diff --git a/README.org b/README.org
index c48885f..45990da 100644
--- a/README.org
+++ b/README.org
@@ -1,8 +1,8 @@
 #+title: README
 
-* cleberg.net
+* cmc.pub
 
-[[https://cleberg.net][cleberg.net]] is my personal webpage and blog. This website and blog utilize the
+[[https://cmc.pub][cmc.pub]] is my personal webpage and blog. This website and blog utilize the
 powerful Org-Mode publishing system, courtesy of the [[https://github.com/emacs-love/weblorg][weblorg]] Emacs package.
 
 ** Features & Configuration
@@ -12,15 +12,15 @@ through a simple =publish.el= file. For those who are interested in tweaking the
 underlying configuration, the weblorg documentation provides all necessary
 details on possible settings and options.
 
-** Getting Started with cleberg.net
+** Getting Started with cmc.pub
 
 To begin exploring or contributing to this project, you'll first need to set up
 a local copy of the repository. This can be accomplished by running the
 following commands within Emacs:
 
 #+begin_src sh
-git clone https://git.sr.ht/~cyborg/cleberg.net && \
-cd cleberg.net && \
+git clone https://git.sr.ht/~cyborg/cmc.pub && \
+cd cmc.pub && \
 emacs -nw
 #+end_src
 
@@ -70,10 +70,10 @@ To quickly create a new blog post within Emacs, follow these steps:
    the newly opened file.
 
 This streamlined process allows you to rapidly generate fresh content for
-cleberg.net, taking advantage of the existing template structure and formatting.
+cmc.pub, taking advantage of the existing template structure and formatting.
 
 ** Contributing & Tasks
 
 For those interested in contributing to this project or addressing any
-outstanding issues, please refer to the [[https://todo.sr.ht/~cyborg/cleberg.net][ticket tracker]]. This is where you can find
+outstanding issues, please refer to the [[https://todo.sr.ht/~cyborg/cmc.pub][ticket tracker]]. This is where you can find
 a comprehensive list of open tickets or submit a new ticket for consideration.
diff --git a/build.sh b/build.sh
index 60fb0f9..aabf154 100755
--- a/build.sh
+++ b/build.sh
@@ -34,7 +34,7 @@ if [[ "$answer" =~ ^[Yy]$ ]]; then
         minify -o theme/static/styles.min.css theme/static/styles.css
         
         # Deploy changes
-        rsync -r --delete-before .build/* $ubuntu_server:/var/www/cleberg.net/
+        rsync -r --delete-before .build/* $ubuntu_server:/var/www/cmc.pub/
     else
         echo "Environment: Development"
         
diff --git a/content/blog/2020-12-29-zork.org b/content/blog/2020-12-29-zork.org
index 68e32fb..ff9a794 100644
--- a/content/blog/2020-12-29-zork.org
+++ b/content/blog/2020-12-29-zork.org
@@ -32,7 +32,7 @@ as it was truly intended, you should try to play it without using the
 map.
 
 #+caption: Zork Map
-[[https://img.cleberg.net/blog/20201229-zork/zork_map.jpg]]
+[[https://img.cmc.pub/blog/20201229-zork/zork_map.jpg]]
 
 /[[https://www.filfre.net/2012/01/exploring-zork-part-1/][Map Source]]/
 
diff --git a/content/blog/2021-03-28-vaporwave-vs-outrun.org b/content/blog/2021-03-28-vaporwave-vs-outrun.org
index d5163f8..28c4ebb 100644
--- a/content/blog/2021-03-28-vaporwave-vs-outrun.org
+++ b/content/blog/2021-03-28-vaporwave-vs-outrun.org
@@ -16,12 +16,12 @@ Vaporwave: the results include *a lot* of Outrun-themed images. You'll
 find a similar trend almost everywhere.
 
 #+caption: Vaporwave Search Results
-[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/vaporwave-search-results.png]]
+[[https://img.cmc.pub/blog/20210328-vaporwave-vs-outrun/vaporwave-search-results.png]]
 
 * Vaporwave
 
 #+caption: Macintosh Plus Album Cover
-[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/macintosh-plus.png]]
+[[https://img.cmc.pub/blog/20210328-vaporwave-vs-outrun/macintosh-plus.png]]
 
 Okay, so what is Vaporwave? I'm going to just copy-and-paste some
 general info from the Wikipedia article on
@@ -80,7 +80,7 @@ is a large part of Vaporwave.
 * Outrun
 
 #+caption: Outrun
-[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/outrun.png]]
+[[https://img.cmc.pub/blog/20210328-vaporwave-vs-outrun/outrun.png]]
 
 Now, let's get to Outrun. This one is a little trickier since the genre
 has largely been lumped under the Vaporwave title for so long. However,
@@ -115,16 +115,16 @@ would look like. Take a look at a common video game discussed in Outrun
 circles, Far Cry 3: Blood Dragon:
 
 #+caption: Fry Cry 3: Blood Dragon
-[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/far-cry.png]]
+[[https://img.cmc.pub/blog/20210328-vaporwave-vs-outrun/far-cry.png]]
 
 Another example that doesn't force the color scheme as hard as some
 online art does is Kung Fury:
 
 #+caption: Kung Fury
-[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury.png]]
+[[https://img.cmc.pub/blog/20210328-vaporwave-vs-outrun/kung-fury.png]]
 
 #+caption: Kung Fury Hacker Scene
-[[https://img.cleberg.net/blog/20210328-vaporwave-vs-outrun/kung-fury-hacker.png]]
+[[https://img.cmc.pub/blog/20210328-vaporwave-vs-outrun/kung-fury-hacker.png]]
 
 * Conclusion
 
diff --git a/content/blog/2021-04-23-php-comment-system.org b/content/blog/2021-04-23-php-comment-system.org
index ac5b1dc..c2a5b6f 100644
--- a/content/blog/2021-04-23-php-comment-system.org
+++ b/content/blog/2021-04-23-php-comment-system.org
@@ -57,7 +57,7 @@ that future readers will be able to see the source data long after I'm
 gone, or the website has gone offline. However, I still haven't
 committed any images served on my blog to Git, as I'm not entirely sold
 on Git LFS yet - for now, images can be found at
-[[https://img.cleberg.net][img.cleberg.net]].
+[[https://img.cmc.pub][img.cmc.pub]].
 
 Saving my comments back to the Git repository ensures that another
 aspect of my site will degrade gracefully.
diff --git a/content/blog/2022-02-10-njalla-dns-api.org b/content/blog/2022-02-10-njalla-dns-api.org
index b68d5ac..71664dc 100644
--- a/content/blog/2022-02-10-njalla-dns-api.org
+++ b/content/blog/2022-02-10-njalla-dns-api.org
@@ -6,9 +6,9 @@
 * Njalla's API
 
 As noted in my recent post about
-[[https://cleberg.net/blog/ditching-cloudflare/][switching to Njalla from
+[[https://cmc.pub/blog/ditching-cloudflare/][switching to Njalla from
 Cloudflare]], I was searching for a way to replace my very easy-to-use
-bash script to [[https://cleberg.net/blog/cloudflare-dns-api/][update Cloudflare's
+bash script to [[https://cmc.pub/blog/cloudflare-dns-api/][update Cloudflare's
 DNS via their API]].
 
 To reiterate what I said in those posts, this is a common necessity for
diff --git a/content/blog/2022-02-16-debian-and-nginx.org b/content/blog/2022-02-16-debian-and-nginx.org
index 5c611d4..e74b4a5 100644
--- a/content/blog/2022-02-16-debian-and-nginx.org
+++ b/content/blog/2022-02-16-debian-and-nginx.org
@@ -18,7 +18,7 @@ alert: it feels identical to Ubuntu for my purposes.
 I did the normal things when first launching the VPS, such as adding a
 new user, locking down SSH, etc. If you want to see that level of
 detail, read my other post about
-[[https://cleberg.net/blog/how-to-set-up-a-vps-web-server/][How to Set
+[[https://cmc.pub/blog/how-to-set-up-a-vps-web-server/][How to Set
 Up a VPS Web Server]].
 
 All of this has been similar, apart from small things such as the
@@ -159,7 +159,7 @@ the Nginx docs to see what other fun things I can do with all of this.
 Finally, I set up the Agate software on this server again to host my
 Gemini server content, using Rust as I have before. You can read my
 other post for more information on installing Agate:
-[[https://cleberg.net/blog/hosting-a-gemini-server/][Hosting a Gemini
+[[https://cmc.pub/blog/hosting-a-gemini-server/][Hosting a Gemini
 Server]].
 
 All in all, Debian + Nginx is very slick and I prefer it over my old
diff --git a/content/blog/2022-02-17-exiftool.org b/content/blog/2022-02-17-exiftool.org
index 3798ebb..c7cb790 100644
--- a/content/blog/2022-02-17-exiftool.org
+++ b/content/blog/2022-02-17-exiftool.org
@@ -45,7 +45,7 @@ distributions, but I really only care to test out this one package.
 ** Recursively Strip Data
 
 I actually use this tool extensively to strip any photos uploaded to the
-website that serves all the images for my blog (=img.cleberg.net=).
+website that serves all the images for my blog (=img.cmc.pub=).
 
 The following command is incredibly useful and can be modified to
 include any image extensions that =exiftool= supports:
diff --git a/content/blog/2022-02-22-tuesday.org b/content/blog/2022-02-22-tuesday.org
index 79939e3..c2da991 100644
--- a/content/blog/2022-02-22-tuesday.org
+++ b/content/blog/2022-02-22-tuesday.org
@@ -26,7 +26,7 @@ Let's look at everything that fell in place today:
    Slavonic word =въторъ=, meaning "the second."
 5. Written in the classic monospaced, digital font (think of digital
    clocks from the 80s/90s), there is nice symmetry to the numbers
-   ([[https://img.cleberg.net/blog/20220222-tuesday/digital_font.png][view
+   ([[https://img.cmc.pub/blog/20220222-tuesday/digital_font.png][view
    the image here]]!).
 6. This one isn't naturally-occurring, but it seems people around the
    world are celebrating the day. For example, a group is putting
diff --git a/content/blog/2022-03-02-reliable-notes.org b/content/blog/2022-03-02-reliable-notes.org
index 96b8254..1c99e22 100644
--- a/content/blog/2022-03-02-reliable-notes.org
+++ b/content/blog/2022-03-02-reliable-notes.org
@@ -44,7 +44,7 @@ Markdown file in plain-text, since it does contain any features to
 preview Markdown as HTML:
 
 #+caption: Plain Text Markdown
-[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/plain_markdown.png]]
+[[https://img.cmc.pub/blog/20220302-easy-reliable-note-taking/plain_markdown.png]]
 
 ** Saving & Syncing Files
 :PROPERTIES:
@@ -118,13 +118,13 @@ Here's an example of how my Markdown notes look when opened in
 plain-text mode:
 
 #+caption: Obsidian Markdown Source Mode
-[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_source_mode.png]]
+[[https://img.cmc.pub/blog/20220302-easy-reliable-note-taking/obsidian_source_mode.png]]
 
 Here's the "live preview" version, where the Markdown is rendered into
 its HTML format:
 
 #+caption: Obsidian Markdown Live Preview
-[[https://img.cleberg.net/blog/20220302-easy-reliable-note-taking/obsidian_live_preview.png]]
+[[https://img.cmc.pub/blog/20220302-easy-reliable-note-taking/obsidian_live_preview.png]]
 
 *** Programming on Desktop
 :PROPERTIES:
diff --git a/content/blog/2022-03-24-server-hardening.org b/content/blog/2022-03-24-server-hardening.org
index 7c9af8d..8704a27 100644
--- a/content/blog/2022-03-24-server-hardening.org
+++ b/content/blog/2022-03-24-server-hardening.org
@@ -110,7 +110,7 @@ via your randomized port.
 
 ** =ufw=
 
-To see how to configure =ufw=, see my other post: [[https://cleberg.net/blog/ufw.html][Secure Your 
+To see how to configure =ufw=, see my other post: [[https://cmc.pub/blog/ufw.html][Secure Your 
 Network with the Uncomplicated Firewall]].
 
 The general notion with an on-device firewall is that you want to deny all
@@ -196,7 +196,7 @@ sudo ufw enable
 
    This process involves editing a couple files and installing an MFA package,
    so I will not include all the details in this post. To see how to configure
-   MFA for =ssh=, see my other post: [[https://cleberg.net/blog/ssh-mfa.html][Enabling MFA for 
+   MFA for =ssh=, see my other post: [[https://cmc.pub/blog/ssh-mfa.html][Enabling MFA for 
    SSH]].
 
 ** =fail2ban=
diff --git a/content/blog/2022-06-01-ditching-cloudflare.org b/content/blog/2022-06-01-ditching-cloudflare.org
index 4b18b91..b7ba52d 100644
--- a/content/blog/2022-06-01-ditching-cloudflare.org
+++ b/content/blog/2022-06-01-ditching-cloudflare.org
@@ -77,7 +77,7 @@ the server hosting my various websites and apps.
 
 However, as I was moving away from Cloudflare, I was not able to find a
 suitable replacement that was both inexpensive and simple. So, I simply
-went back to hosting [[https://cleberg.net/blog/set-up-nginx-reverse-proxy/][my own
+went back to hosting [[https://cmc.pub/blog/set-up-nginx-reverse-proxy/][my own
 reverse proxy with Nginx]]. With the recent additions of Unifi hardware
 in my server/network rack, I am much more protected against spam and
 malicious attacks at the network edge than I was before I switched to
diff --git a/content/blog/2022-10-04-syncthing.org b/content/blog/2022-10-04-syncthing.org
index 9211f50..9395540 100644
--- a/content/blog/2022-10-04-syncthing.org
+++ b/content/blog/2022-10-04-syncthing.org
@@ -95,7 +95,7 @@ add/modify connected devices.
 Here's an example web GUI dashboard:
 
 #+caption: Syncthing Dashboard
-[[https://img.cleberg.net/blog/20221020-syncthing/syncthing_gui.png]]
+[[https://img.cmc.pub/blog/20221020-syncthing/syncthing_gui.png]]
 
 ** Remote Devices
 
diff --git a/content/blog/2022-11-29-nginx-referrer-ban-list.org b/content/blog/2022-11-29-nginx-referrer-ban-list.org
index 698196a..27c39fb 100644
--- a/content/blog/2022-11-29-nginx-referrer-ban-list.org
+++ b/content/blog/2022-11-29-nginx-referrer-ban-list.org
@@ -101,7 +101,7 @@ In order to test the results, let's curl the contents of our site. To
 start, I'll curl the site normally:
 
 #+begin_src sh
-curl https://cleberg.net
+curl https://cmc.pub
 #+end_src
 
 The HTML contents of the page come back successfully:
@@ -113,7 +113,7 @@ The HTML contents of the page come back successfully:
 Next, let's include a banned referrer:
 
 #+begin_src sh
-curl --referer https://news.ycombinator.com https://cleberg.net
+curl --referer https://news.ycombinator.com https://cmc.pub
 #+end_src
 
 This time, I'm met with a 403 Forbidden response page. That means we are
diff --git a/content/blog/2023-01-05-mass-unlike-tumblr-posts.org b/content/blog/2023-01-05-mass-unlike-tumblr-posts.org
index e3811c6..d0f6cd2 100644
--- a/content/blog/2023-01-05-mass-unlike-tumblr-posts.org
+++ b/content/blog/2023-01-05-mass-unlike-tumblr-posts.org
@@ -56,7 +56,7 @@ and be sure you're on the "Console" tab. It should look something like
 this (this is in Firefox, Chromium should be similar):
 
 #+caption: Firefox Dev !Tools
-[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/dev_console.png]]
+[[https:///img.cmc.pub/blog/20230105-mass-unlike-tumblr-posts/dev_console.png]]
 
 All you need to do is paste the following snippet into the dev console.
 This code will collect all unlike buttons (=elements=) and then click
@@ -88,7 +88,7 @@ the console, pressed Enter, and then the posts are automatically
 unliked.
 
 #+caption: Script !Results
-[[https:///img.cleberg.net/blog/20230105-mass-unlike-tumblr-posts/script_results.png]]
+[[https:///img.cmc.pub/blog/20230105-mass-unlike-tumblr-posts/script_results.png]]
 
 Thinking about this further, I would bet that this would be fairly
 simple to package into a browser add-on so that users could install the
diff --git a/content/blog/2023-06-23-byobu.org b/content/blog/2023-06-23-byobu.org
index 14ddff4..41d0223 100644
--- a/content/blog/2023-06-23-byobu.org
+++ b/content/blog/2023-06-23-byobu.org
@@ -19,7 +19,7 @@ Take a look below at my current multi-window set-up in byobu while I
 write this blog post:
 
 #+caption: byobu
-[[https://img.cleberg.net/blog/20230623-byobu/byobu.png]]
+[[https://img.cmc.pub/blog/20230623-byobu/byobu.png]]
 
 *** Keybindings
 
diff --git a/content/blog/2023-06-23-self-hosting-convos.org b/content/blog/2023-06-23-self-hosting-convos.org
index 3d10520..dff8249 100644
--- a/content/blog/2023-06-23-self-hosting-convos.org
+++ b/content/blog/2023-06-23-self-hosting-convos.org
@@ -130,10 +130,10 @@ There are numerous themes to choose from; the theme shown in the images
 below is Dracula.
 
 #+caption: Convos Home
-[[https://img.cleberg.net/blog/20230623-convos/convos_home.png]]
+[[https://img.cmc.pub/blog/20230623-convos/convos_home.png]]
 
 #+caption: Convos Chat
-[[https://img.cleberg.net/blog/20230623-convos/convos_chat.png]]
+[[https://img.cmc.pub/blog/20230623-convos/convos_chat.png]]
 
 * Registering a Nickname
 
diff --git a/content/blog/2023-06-30-self-hosting-voyager.org b/content/blog/2023-06-30-self-hosting-voyager.org
index 7e66776..33baef9 100644
--- a/content/blog/2023-06-30-self-hosting-voyager.org
+++ b/content/blog/2023-06-30-self-hosting-voyager.org
@@ -120,4 +120,4 @@ sudo systemctl restart nginx.service
 The site will now be available at the =server_name= you specified above!
 
 You can visit my instance at
-[[https://voyager.cleberg.net][voyager.cleberg.net]] for an example.
+[[https://voyager.cmc.pub][voyager.cmc.pub]] for an example.
diff --git a/content/blog/2023-10-04-digital-minimalism.org b/content/blog/2023-10-04-digital-minimalism.org
index 798d3ff..ac4d4f5 100644
--- a/content/blog/2023-10-04-digital-minimalism.org
+++ b/content/blog/2023-10-04-digital-minimalism.org
@@ -3,7 +3,7 @@
 #+description: 
 #+slug: digital-minimalism
 
-I've written [[https://cleberg.net/wiki/#digital-garden][a note about minimalism]]
+I've written [[https://cmc.pub/wiki/#digital-garden][a note about minimalism]]
 before, but I wanted to dedicate some time to reflect on digital
 minimalism and how I've been able to minimize the impact of digital
 devices in my life.
diff --git a/content/blog/2023-10-11-self-hosting-authelia.org b/content/blog/2023-10-11-self-hosting-authelia.org
index 2b9a6b7..07628f8 100644
--- a/content/blog/2023-10-11-self-hosting-authelia.org
+++ b/content/blog/2023-10-11-self-hosting-authelia.org
@@ -441,11 +441,11 @@ When visiting the protected domain, you will now be redirected to your
 authentication domain and presented with the Authelia login portal.
 
 #+caption: Authelia Portal
-[[https://img.cleberg.net/blog/20231010-authelia/authelia_portal.png]]
+[[https://img.cmc.pub/blog/20231010-authelia/authelia_portal.png]]
 
 Once you've successfully authenticated, you can visit your
 authentication domain directly and see that you're currently
 authenticated to any domain protected by Authelia.
 
 #+caption: Authelia Success
-[[https://img.cleberg.net/blog/20231010-authelia/authelia_success.png]]
+[[https://img.cmc.pub/blog/20231010-authelia/authelia_success.png]]
diff --git a/content/blog/2023-10-17-self-hosting-anonymousoverflow.org b/content/blog/2023-10-17-self-hosting-anonymousoverflow.org
index 3b9068b..6479fbf 100644
--- a/content/blog/2023-10-17-self-hosting-anonymousoverflow.org
+++ b/content/blog/2023-10-17-self-hosting-anonymousoverflow.org
@@ -6,7 +6,7 @@
 * Overview
 
 I recently launched an instance of AnonymousOverflow at
-[[https://ao.cleberg.net][ao.cleberg.net]] and wanted to write a brief
+[[https://ao.cmc.pub][ao.cmc.pub]] and wanted to write a brief
 post on how easy it is to install with Docker Compose and Nginx.
 
 This guide uses Ubuntu server, Docker Compose, and Nginx as a reverse
@@ -128,4 +128,4 @@ sudo systemctl restart nginx.service
 #+end_src
 
 The website will now be available publicly. Visit
-[[https://ao.cleberg.net][my instance]] for an example.
+[[https://ao.cmc.pub][my instance]] for an example.
diff --git a/content/blog/2024-01-27-tableau-dashboard.org b/content/blog/2024-01-27-tableau-dashboard.org
index f1efc36..cdeb7b9 100644
--- a/content/blog/2024-01-27-tableau-dashboard.org
+++ b/content/blog/2024-01-27-tableau-dashboard.org
@@ -11,7 +11,7 @@ them to create the dashboard below. You can view this dashboard interactively
 online here: [[https://public.tableau.com/app/profile/c.c7042/viz/OmahaCrimeData2015-2023/OmahaCrimeData2015-2023#1][Omaha Crime Data (2015 - 2023)]].
 
 #+caption: Tableau Dashboard
-[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.png]]
+[[https://img.cmc.pub/blog/20240127-tableau-dashboard/dashboard.png]]
 
 * Gather the Data
 
@@ -140,4 +140,4 @@ There's a ton of other options available to be used in a dashboard like this,
 but this project shows a quick preview of what you can do in Tableau Public.
 
 #+caption: Tableau Dashboard
-[[https://img.cleberg.net/blog/20240127-tableau-dashboard/dashboard.png]]
+[[https://img.cmc.pub/blog/20240127-tableau-dashboard/dashboard.png]]
diff --git a/content/blog/2024-03-13-doom-emacs.org b/content/blog/2024-03-13-doom-emacs.org
index d4f0c19..1b83488 100644
--- a/content/blog/2024-03-13-doom-emacs.org
+++ b/content/blog/2024-03-13-doom-emacs.org
@@ -12,10 +12,10 @@ and the help pane open at the bottomm.
 The themes are =doom-homage-white= and =doom-homage-black=.
 
 #+caption: Doom Emacs Light Mode
-[[https://img.cleberg.net/blog/20240314-doom-emacs/light.png]]
+[[https://img.cmc.pub/blog/20240314-doom-emacs/light.png]]
 
 #+caption: Doom Emacs Dark Mode
-[[https://img.cleberg.net/blog/20240314-doom-emacs/dark.png]]
+[[https://img.cmc.pub/blog/20240314-doom-emacs/dark.png]]
 
 ** Getting Started
 
@@ -183,7 +183,7 @@ been slowly adoping some Python and general web dev tools as well.
 *** Markdown
 
 #+caption: Markdown Preview
-[[https://img.cleberg.net/blog/20240314-doom-emacs/markdown.png]]
+[[https://img.cmc.pub/blog/20240314-doom-emacs/markdown.png]]
 
 Markdown is fairly simple as the syntax is limited, so just make sure the
 =~/.doom.d/init.el= includes the =markdown= declaration in the =:lang= section.
@@ -205,7 +205,7 @@ things like link hiding.
 *** Org-Mode
 
 #+caption: Org-Mode Preview
-[[https://img.cleberg.net/blog/20240314-doom-emacs/org.png]]
+[[https://img.cmc.pub/blog/20240314-doom-emacs/org.png]]
 
 Similar to the markdown section above, ensure that the =~/.doom.d/init.el=
 includes the =org= declaration in the =:lang= section.
@@ -269,10 +269,10 @@ list them all, so I will simply cover a few of the basic commands I use myself.
 
    (setq org-publish-project-alist
          `(("blog"
-            :base-directory "~/Source/cleberg.net/"
+            :base-directory "~/Source/cmc.pub/"
             :base-extension "org"
             :recursive t
-            :publishing-directory "~/Source/cleberg.net/public/"
+            :publishing-directory "~/Source/cmc.pub/public/"
             :publishing-function org-html-publish-to-html
             ;; HTML5
             :html-doctype "html5"
@@ -311,13 +311,13 @@ list them all, so I will simply cover a few of the basic commands I use myself.
            )
 
            ("static"
-            :base-directory "~/Source/cleberg.net/static/"
+            :base-directory "~/Source/cmc.pub/static/"
             :base-extension "css\\|txt\\|jpg\\|gif\\|png"
             :recursive t
-            :publishing-directory  "~/Source/cleberg.net/public/"
+            :publishing-directory  "~/Source/cmc.pub/public/"
             :publishing-function org-publish-attachment)
 
-           ("cleberg.net" :components ("blog" "static"))))
+           ("cmc.pub" :components ("blog" "static"))))
    #+end_src
 
 ** General Thoughts
diff --git a/content/blog/2024-03-15-self-hosting-ddns-updater.org b/content/blog/2024-03-15-self-hosting-ddns-updater.org
index 64e7a6c..82cfc7a 100644
--- a/content/blog/2024-03-15-self-hosting-ddns-updater.org
+++ b/content/blog/2024-03-15-self-hosting-ddns-updater.org
@@ -4,7 +4,7 @@
 #+slug: self-hosting-ddns-updater
 
 #+caption: DDNS Updater Web View
-[[https://img.cleberg.net/blog/20240315-ddns-updater/ddns.png]]
+[[https://img.cmc.pub/blog/20240315-ddns-updater/ddns.png]]
 
 [[https://github.com/qdm12/ddns-updater][DDNS Updater]] is a program to keep DNS A and/or AAAA records updated for multiple
 DNS providers.
diff --git a/content/blog/2024-03-29-org-blog.org b/content/blog/2024-03-29-org-blog.org
index 5ae1a2b..6173231 100644
--- a/content/blog/2024-03-29-org-blog.org
+++ b/content/blog/2024-03-29-org-blog.org
@@ -8,7 +8,7 @@ feed duplicated itself when I moved this blog over to org-mode last night.
 
 This post focuses specifically on the configuration and tools I use to blog from
 Emacs with Org-Mode and does not focus on Emacs or Org-Mode themselves. Refer to
-the post I wrote about [[https://cleberg.net/blog/doom-emacs-org-mode.html][Doom Emacs & Org-Mode]] for more information about my base
+the post I wrote about [[https://cmc.pub/blog/doom-emacs-org-mode.html][Doom Emacs & Org-Mode]] for more information about my base
 Emacs configuration.
 
 * Weblorg
@@ -60,7 +60,7 @@ Now that I've installed weblorg, I need to configure the project. I'll start by
 navigating to my site's source code and creating a =publish.el= file.
 
 #+begin_src sh
-cd ~/Source/cleberg.net && nano publish.el
+cd ~/Source/cmc.pub && nano publish.el
 #+end_src
 
 Since I'm using Doom, Emacs will not automatically load the packages I need
@@ -80,13 +80,13 @@ explicitly tell Emacs where Doom stores the =htmlize=, =weblorg=, and
 ;; To build with the custom URL below, call:
 ;;;; ENV=prod emacs --script publish.el
 (if (string= (getenv "ENV") "prod")
- (setq weblorg-default-url "https://cleberg.net"))
+ (setq weblorg-default-url "https://cmc.pub"))
 
 ;; site metadata
 (weblorg-site
  :theme nil
- :template-vars '(("site_name" . "cleberg.net")
-                  ("site_owner" . "hello@cleberg.net")
+ :template-vars '(("site_name" . "cmc.pub")
+                  ("site_owner" . "hello@cmc.pub")
                   ("site_description" . "Just a blip of ones and zeroes.")))
 
 ;; route for rendering the index page of the website
@@ -235,7 +235,7 @@ Within this script, I do the following:
 #+begin_src sh
 rm -rf .build/* && \
 ENV=prod emacs--script publish.el && \
-scp -r .build/* ubuntu:/var/www/cleberg.net/
+scp -r .build/* ubuntu:/var/www/cmc.pub/
 #+end_src
 
 *** Time to Build
diff --git a/content/blog/2024-04-08-docker-local-web-server.org b/content/blog/2024-04-08-docker-local-web-server.org
index f551450..46679c9 100644
--- a/content/blog/2024-04-08-docker-local-web-server.org
+++ b/content/blog/2024-04-08-docker-local-web-server.org
@@ -33,7 +33,7 @@ Open the installer and follow the installation process until the application
 finishes the installation process.
 
 #+caption: Docker Desktop on macOS
-[[https://img.cleberg.net/blog/20240408-docker-local-web-server/docker-desktop.png]]
+[[https://img.cmc.pub/blog/20240408-docker-local-web-server/docker-desktop.png]]
 
 ** Creating an Nginx Container
 
@@ -56,7 +56,7 @@ docker run -it --rm -d -p 8000:80 --name web nginx
 You can navigate to [[http://localhost:8000]] to see the resulting page.
 
 #+caption: Default Nginx Container
-[[https://img.cleberg.net/blog/20240408-docker-local-web-server/default-container.png]]
+[[https://img.cmc.pub/blog/20240408-docker-local-web-server/default-container.png]]
 
 ** Customizing the Nginx Container
 
@@ -76,7 +76,7 @@ To see the updates, you can delete the previous container in the GUI or run
 =docker run= command below.
 
 #+begin_src sh
-docker run -it -d -p 8000:80 --name web -v ~/Source/cleberg.net/.build:/usr/share/nginx/html -v ~/Source/cleberg.net/nginx-config.conf:/etc/nginx/conf.d/default.conf nginx
+docker run -it -d -p 8000:80 --name web -v ~/Source/cmc.pub/.build:/usr/share/nginx/html -v ~/Source/cmc.pub/nginx-config.conf:/etc/nginx/conf.d/default.conf nginx
 #+end_src
 
 Here's an example of my development configuration file.
@@ -84,14 +84,14 @@ Here's an example of my development configuration file.
 #+begin_src conf
 # nginx-config.conf
 server {
-       server_name cleberg.net www.cleberg.net;
+       server_name cmc.pub www.cmc.pub;
 
        root /usr/share/nginx/html;
        index index.html;
        autoindex on;
 
-       access_log  /var/log/nginx/cleberg.net.access.log;
-       error_log  /var/log/nginx/cleberg.net.error.log;
+       access_log  /var/log/nginx/cmc.pub.access.log;
+       error_log  /var/log/nginx/cmc.pub.error.log;
 
        location / {
                 try_files $uri $uri/ =404;
@@ -102,14 +102,14 @@ server {
 }
 #+end_src
 
-[[https://img.cleberg.net/blog/20240408-docker-local-web-server/custom-container.png]]
+[[https://img.cmc.pub/blog/20240408-docker-local-web-server/custom-container.png]]
 
 * Customizing Deployment Actions
 
 I am currently blogging with [[https://emacs.love/weblorg/][weblorg]], which uses a custom =publish.el= file to
 build the static site. Within this file, I have configured my deployment process
 to check for the =ENV= variable in thesh and if it's set to =prod=, the script
-will set the base URLs to =https://cleberg.net=. If not, it sets the base URLs
+will set the base URLs to =https://cmc.pub=. If not, it sets the base URLs
 to =localhost:8000= (which matches the port used in the container above).
 
 Therefore, I have modified my =build.sh= script to build with =localhost= URLs
@@ -123,7 +123,7 @@ if [ "$ENV" == "prod" ]; then
     echo "Environment = Production"              && \
     rm -rf .build/*                              && \
     emacs --script publish.el                    && \
-    scp -r .build/* ubuntu:/var/www/cleberg.net/
+    scp -r .build/* ubuntu:/var/www/cmc.pub/
 else
     echo "Environment = Development"             && \
     rm -rf .build/*                              && \
diff --git a/content/blog/2024-04-18-mu4e.org b/content/blog/2024-04-18-mu4e.org
index dadfc0b..3683f6e 100644
--- a/content/blog/2024-04-18-mu4e.org
+++ b/content/blog/2024-04-18-mu4e.org
@@ -159,9 +159,9 @@ auth on
 host smtp.startmail.com
 port 465
 protocol smtp
-from hello@cleberg.net
-user hello@cleberg.net
-passwordeval security find-generic-password -s startmail -a hello@cleberg.net -w
+from hello@cmc.pub
+user hello@cmc.pub
+passwordeval security find-generic-password -s startmail -a hello@cmc.pub -w
 tls on
 tls_starttls off
 
@@ -300,4 +300,4 @@ The home page shows various options and metadata about the account you've
 opened.
 
 #+caption: Mu4e Home Page
-[[https://img.cleberg.net/blog/20240418-mu4e/mu4e.png]]
+[[https://img.cmc.pub/blog/20240418-mu4e/mu4e.png]]
diff --git a/content/blog/2024-05-03-ubuntu-on-macos.org b/content/blog/2024-05-03-ubuntu-on-macos.org
index e474a0d..5248c9b 100644
--- a/content/blog/2024-05-03-ubuntu-on-macos.org
+++ b/content/blog/2024-05-03-ubuntu-on-macos.org
@@ -32,7 +32,7 @@ Once installed, you can launch OrbStack and create a Linux machine in a matter
 of seconds. The creation dialog defaults to Ubuntu.
 
 #+caption: OrbStack's Linux Machine Creation Page
-[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/create.png]]
+[[https://img.cmc.pub/blog/20240503-ubuntu-on-macos/create.png]]
 
 ** Launching the Machine
 
@@ -62,7 +62,7 @@ In the example below, we can see that the machine is using =Linux ubuntu 6.9.6=
 and operates similar to a fresh Ubuntu install on bare metal.
 
 #+caption: Ubuntu CLI
-[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/cli.png]]
+[[https://img.cmc.pub/blog/20240503-ubuntu-on-macos/cli.png]]
 
 You can also click the machine's folder icon in OrbStack to open the machine's
 file system within macOS's native Files app. Within Files, you can double-click
@@ -70,13 +70,13 @@ to open any files and they will open in the macOS defaults for those file types
 (e.g., TextEdit).
 
 #+caption: Ubuntu Files
-[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/files.png]]
+[[https://img.cmc.pub/blog/20240503-ubuntu-on-macos/files.png]]
 
 Here's an example of opening the =test.md= file in the screenshot above, which
 defaults to opening in Xcode on my system.
 
 #+caption: Ubuntu Files
-[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/xcode.png]]
+[[https://img.cmc.pub/blog/20240503-ubuntu-on-macos/xcode.png]]
 
 *** Test Examples
 
@@ -84,7 +84,7 @@ As a quick example of the system, I installed =neofetch=, switched to the =zsh=
 shell, and ran a few common commands.
 
 #+caption: Test Examples
-[[https://img.cleberg.net/blog/20240503-ubuntu-on-macos/test.png]]
+[[https://img.cmc.pub/blog/20240503-ubuntu-on-macos/test.png]]
 
 ** Thoughts
 
diff --git a/content/blog/2024-07-11-emacs-on-ipad.org b/content/blog/2024-07-11-emacs-on-ipad.org
index 662cac3..4922f48 100644
--- a/content/blog/2024-07-11-emacs-on-ipad.org
+++ b/content/blog/2024-07-11-emacs-on-ipad.org
@@ -15,7 +15,7 @@ I recommend [[https://apps.apple.com/us/app/ish-shell/id1436902243][iSH]], since
 and will allow you to install packages that you need.
 
 #+caption: iSH Application
-[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/ish.png]]
+[[https://img.cmc.pub/blog/20240711-emacs-on-ipad/ish.png]]
 
 ** Require Packages
 
@@ -28,7 +28,7 @@ apk add emacs ripgrep fd findutils
 #+end_src
 
 #+caption: Package !Installation
-[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dependencies.png]]
+[[https://img.cmc.pub/blog/20240711-emacs-on-ipad/dependencies.png]]
 
 ** Emacs
 
@@ -40,7 +40,7 @@ incredibly slow and buggy that I was not even able to take screenshots. Someone
 smarter than me could likely get it to work with a little tinkering.
 
 #+caption: Emacs
-[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/emacs.png]]
+[[https://img.cmc.pub/blog/20240711-emacs-on-ipad/emacs.png]]
 
 *** MELPA
 
@@ -49,13 +49,13 @@ able to search through their 5700+ packages instead of just ELPA packages. If
 you don't, you will only have access to ELPA packages like the ones below.
 
 #+caption: package-install
-[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/melpa.png]]
+[[https://img.cmc.pub/blog/20240711-emacs-on-ipad/melpa.png]]
 
 Once you have MELPA, you can install packages like the =dashboard= package shown
 below.
 
 #+caption: emacs-dashboard
-[[https://img.cleberg.net/blog/20240711-emacs-on-ipad/dashboard.png]]
+[[https://img.cmc.pub/blog/20240711-emacs-on-ipad/dashboard.png]]
 
 *** Speed
 
diff --git a/content/blog/2024-08-11-org-mode-features.org b/content/blog/2024-08-11-org-mode-features.org
index c8b1e01..603d822 100644
--- a/content/blog/2024-08-11-org-mode-features.org
+++ b/content/blog/2024-08-11-org-mode-features.org
@@ -7,7 +7,7 @@
 * Cycling (Folding)
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L7][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L7][View this section]] in org-mode.
 #+end_quote
 
 My absolute top-used feature is [[https://orgmode.org/manual/Global-and-local-cycling.html][global and local cycling]] and it's not even
@@ -55,7 +55,7 @@ at the top of the buffer:
 * TODO Lists
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L55][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L55][View this section]] in org-mode.
 #+end_quote
 
 Next up on in this post are [[https://orgmode.org/manual/TODO-Items.html][TODO Lists]]. Being able to combine note taking and
@@ -106,7 +106,7 @@ that variable to alert me of tasks with iOS native notifications.
 * Time Stamping
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L106][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L106][View this section]] in org-mode.
 #+end_quote
 
 Another great feature are the [[https://orgmode.org/manual/Dates-and-Times.html][dates and times]] functionalities within org-mode.
@@ -137,7 +137,7 @@ different options available when creating timestamps.
 * Tags
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L137][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L137][View this section]] in org-mode.
 #+end_quote
 
 Next up are [[https://orgmode.org/manual/Tags.html][Tags]], which provide a way to document contexts within and across
@@ -162,7 +162,7 @@ m= and search for a tag of your choosing.
 * Tables
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L162][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L162][View this section]] in org-mode.
 #+end_quote
 
 One of the most inconvenient parts of writing in Markdown was dealing with
@@ -232,7 +232,7 @@ on the second line.
 * Source Code Blocks
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L232][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L232][View this section]] in org-mode.
 #+end_quote
 
 ** Introduction to Source Code Blocks
@@ -302,7 +302,7 @@ results below the code block.
 * Exporting and Publishing
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L302][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L302][View this section]] in org-mode.
 #+end_quote
 
 I would be remiss if I did not mention the native [[https://orgmode.org/manual/Exporting.html][exporting and publishing]]
@@ -336,7 +336,7 @@ external [[https://orgmode.org/tools.html][tools]], including [[https://orgmode.
 * Agenda
 
 #+begin_quote
-[[https://git.sr.ht/~cyborg/cleberg.net/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L336][View this section]] in org-mode.
+[[https://git.sr.ht/~cyborg/cmc.pub/tree/main/item/content/blog/2024-08-11-org-mode-features.org#L336][View this section]] in org-mode.
 #+end_quote
 
 Last, but not least, are [[https://orgmode.org/manual/Agenda-Views.html][Agenda Views]]. With agenda views, you can easily view
diff --git a/content/blog/2024-08-25-n8n-sentiment-analysis.org b/content/blog/2024-08-25-n8n-sentiment-analysis.org
index 194844e..d997e98 100644
--- a/content/blog/2024-08-25-n8n-sentiment-analysis.org
+++ b/content/blog/2024-08-25-n8n-sentiment-analysis.org
@@ -113,7 +113,7 @@ You can open the included workflow at
 and create a new configuration.
 
 #+caption: n8n Workflow
-[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/workflow.png]]
+[[https://img.cmc.pub/blog/20240825-n8n-sentiment-analysis/workflow.png]]
 
 This workflow contains the following nodes:
 1. Email Trigger (IMAP)
@@ -151,10 +151,10 @@ send yourself a test email!
 After testing each step noted above, n8n provided the results below - it works!
 
 #+caption: Positive Results
-[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/positive_results.png]]
+[[https://img.cmc.pub/blog/20240825-n8n-sentiment-analysis/positive_results.png]]
 
 #+caption: Negative Results
-[[https://img.cleberg.net/blog/20240825-n8n-sentiment-analysis/negative_results.png]]
+[[https://img.cmc.pub/blog/20240825-n8n-sentiment-analysis/negative_results.png]]
 
 While this isn't anything earth-shattering, it does show easy it is to get
 started with n8n and large language models in a self-hosted environment.
diff --git a/content/blog/2024-09-20-prometheus-grafana-cloud.org b/content/blog/2024-09-20-prometheus-grafana-cloud.org
index 4eb05aa..c0e9603 100644
--- a/content/blog/2024-09-20-prometheus-grafana-cloud.org
+++ b/content/blog/2024-09-20-prometheus-grafana-cloud.org
@@ -277,7 +277,7 @@ and determine what Grafana should do when an alert is triggered.
 ** OnCall
 
 #+caption: OnCall
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/oncall.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/oncall.png]]
 
 Within the Alerts & IRM section of Grafana (=/alerts-and-incidents=), open the
 Users page.
@@ -299,12 +299,12 @@ users and teams to be on call for specific date and time ranges. For my
 purposes, I put myself on-call 24/7 so that I receive all alerts.
 
 #+caption: User Information
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/irm_user_info.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/irm_user_info.png]]
 
 ** Alerting
 
 #+caption: Alerting Insights
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/alerting_insights.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/alerting_insights.png]]
 
 Now that we have defined users and team associated with an on-call schedule and
 configured to receive the proper alerts, let's define a rule that will generate
@@ -323,13 +323,13 @@ evaluation group. This is connected to our Grafana email, but can be associated
 with any notification policy.
 
 #+caption: New Alert Rule
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/new_alert.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/new_alert.png]]
 
 When the alert fires, it will generate an email (or whatever notification policy
 you assigned) and will look something like the following image.
 
 #+caption: Alerting Example
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/email_alert.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/email_alert.png]]
 
 ** Dashboards
 
@@ -337,13 +337,13 @@ As promised above, here are some dashboard screenshots based on the
 configurations above.
 
 #+caption: Nginx Dashboard
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_nginx.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/dashboard_nginx.png]]
 
 #+caption: Node Dashboard
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_node.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/dashboard_node.png]]
 
 #+caption: OnCall Dashboard
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_oncall.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/dashboard_oncall.png]]
 
 #+caption: Prometheus Dashboard
-[[https://img.cleberg.net/blog/20240920-prometheus-grafana-cloud/dashboard_prometheus.png]]
+[[https://img.cmc.pub/blog/20240920-prometheus-grafana-cloud/dashboard_prometheus.png]]
diff --git a/content/blog/2024-10-31-continue-ollama-code-assistant.org b/content/blog/2024-10-31-continue-ollama-code-assistant.org
index 790d668..8aceca1 100644
--- a/content/blog/2024-10-31-continue-ollama-code-assistant.org
+++ b/content/blog/2024-10-31-continue-ollama-code-assistant.org
@@ -201,19 +201,19 @@ Continue:
 Below are a few screenshots from my current VS Codium window:
 
 #+caption: Available Continue Commands
-[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_commands.png]]
+[[https://img.cmc.pub/blog/20241031-continue-ollama-code-assistant/continue_commands.png]]
 
 #+caption: Continue Fullscreen Chat Window
-[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_fullscreen.png]]
+[[https://img.cmc.pub/blog/20241031-continue-ollama-code-assistant/continue_fullscreen.png]]
 
 #+caption: Inline Hotkeys
-[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline_hotkeys.png]]
+[[https://img.cmc.pub/blog/20241031-continue-ollama-code-assistant/continue_inline_hotkeys.png]]
 
 #+caption: Inline Editing Suggestions
-[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_inline.png]]
+[[https://img.cmc.pub/blog/20241031-continue-ollama-code-assistant/continue_inline.png]]
 
 #+caption: Sidebar Context Window
-[[https://img.cleberg.net/blog/20241031-continue-ollama-code-assistant/continue_sidebar.png]]
+[[https://img.cmc.pub/blog/20241031-continue-ollama-code-assistant/continue_sidebar.png]]
 
 * Conclusion
 
diff --git a/content/blog/2024-12-27-self-hosting-the-lounge.org b/content/blog/2024-12-27-self-hosting-the-lounge.org
index b3dd943..2462b50 100644
--- a/content/blog/2024-12-27-self-hosting-the-lounge.org
+++ b/content/blog/2024-12-27-self-hosting-the-lounge.org
@@ -11,7 +11,7 @@ desirable features for a modern IRC client. The Lounge supports push
 notifications, link previews, file uploads, always connected, multi-user
 support, and is available as a PWA for mobile devices.
 
-I wanted to write this as I had written a post about [[https://cleberg.net/blog/self-hosting-convos.html][self-hosting Convos]] and
+I wanted to write this as I had written a post about [[https://cmc.pub/blog/self-hosting-convos.html][self-hosting Convos]] and
 have recently migrated over to The Lounge instead.
 
 If you'd like to try a demo first, head over to [[https://demo.thelounge.chat/][the official demo website]].
@@ -60,7 +60,7 @@ browsing from a different device. Don't forget to allow the port through your
 machine's firewall, if you have one enabled.
 
 #+caption: Login
-[[https://img.cleberg.net/blog/20241229-thelounge/login.png]]
+[[https://img.cmc.pub/blog/20241229-thelounge/login.png]]
 
 ** Nginx Reverse Proxy
 
@@ -155,10 +155,10 @@ bottom of the sidebar and connect to individual channels or users via the plus
 (=+=) button next to your server's name in the sidebar.
 
 #+caption: New Server Connection
-[[https://img.cleberg.net/blog/20241229-thelounge/new_connection.png]]
+[[https://img.cmc.pub/blog/20241229-thelounge/new_connection.png]]
 
 #+caption: Existing Server Connection
-[[https://img.cleberg.net/blog/20241229-thelounge/existing_connection.png]]
+[[https://img.cmc.pub/blog/20241229-thelounge/existing_connection.png]]
 
 #+caption: Channel View
-[[https://img.cleberg.net/blog/20241229-thelounge/channel.png]]
+[[https://img.cmc.pub/blog/20241229-thelounge/channel.png]]
diff --git a/content/blog/2025-01-23-self-hosting-tandoor.org b/content/blog/2025-01-23-self-hosting-tandoor.org
index 985c3ca..db226bf 100644
--- a/content/blog/2025-01-23-self-hosting-tandoor.org
+++ b/content/blog/2025-01-23-self-hosting-tandoor.org
@@ -125,22 +125,22 @@ The app is now available on your custom domain!
 ** Screenshots
 
 #+caption: Login
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/login.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/login.png]]
 
 #+caption: Recipes
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/recipes.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/recipes.png]]
 
 #+caption: Meal Plan
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/mealplan.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/mealplan.png]]
 
 #+caption: Shopping Lists
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/shopping.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/shopping.png]]
 
 #+caption: Cook Book
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/cookbook.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/cookbook.png]]
 
 #+caption: Import
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/import.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/import.png]]
 
 #+caption: Administration Panel
-[[https://img.cleberg.net/blog/20250123-self-hosting-tandoor/admin.png]]
+[[https://img.cmc.pub/blog/20250123-self-hosting-tandoor/admin.png]]
diff --git a/content/blog/2025-02-11-obscura-vpn.org b/content/blog/2025-02-11-obscura-vpn.org
index afd2e7b..8134ba3 100644
--- a/content/blog/2025-02-11-obscura-vpn.org
+++ b/content/blog/2025-02-11-obscura-vpn.org
@@ -55,7 +55,7 @@ far as I can tell, there is no free tier available. In my opinion, this is a
 good thing as I hesitate to understand how privacy-focused apps make money when
 they offer free services to users.
 
-[[https://img.cleberg.net/blog/20250211-obscura-vpn/payment.png]]
+[[https://img.cmc.pub/blog/20250211-obscura-vpn/payment.png]]
 #+caption: Payment
 
 ** Connection
@@ -64,10 +64,10 @@ Once you've enrolled in either a subscription or one-time payment, Obscura will
 return you to the app and allow you to connect. You can choose a specific server
 location or automatically connect.
 
-[[https://img.cleberg.net/blog/20250211-obscura-vpn/connect.png]]
+[[https://img.cmc.pub/blog/20250211-obscura-vpn/connect.png]]
 #+caption: Initial Connection
 
-[[https://img.cleberg.net/blog/20250211-obscura-vpn/toolbar.png]]
+[[https://img.cmc.pub/blog/20250211-obscura-vpn/toolbar.png]]
 #+caption: Toolbar Utility
 
 ** Speed
@@ -91,7 +91,7 @@ nodes before connecting to your target.
 From the image below, we can see that Mullvad confirmed my traffic to be
 connected through a Mullvad IP address.
 
-[[https://img.cleberg.net/blog/20250211-obscura-vpn/mullvad-check.png]]
+[[https://img.cmc.pub/blog/20250211-obscura-vpn/mullvad-check.png]]
 #+caption: Mullvad Check
 
 * Final Thoughts
diff --git a/content/blog/2025-02-24-email-migration.org b/content/blog/2025-02-24-email-migration.org
index b9cf3ff..b2eb93f 100644
--- a/content/blog/2025-02-24-email-migration.org
+++ b/content/blog/2025-02-24-email-migration.org
@@ -48,7 +48,7 @@ This led to a dead end as my two methods failed:
 At this point, I decided to take a step back and use [[https://github.com/djcb/mu][mu]], a command-line utility
 that would index my files and sync back and forth with Migadu for me.
 
-Using my blog post, [[https://cleberg.net/blog/mu4e.html][Email in Doom Emacs with Mu4e on macOS]], (and skipping the
+Using my blog post, [[https://cmc.pub/blog/mu4e.html][Email in Doom Emacs with Mu4e on macOS]], (and skipping the
 mu4e parts) I was able to set up a minimal directory connected to my Migadu IMAP
 account. Using my terminal, I simply moved all of my messages into the =mu=
 directory and synchronized the account, and voila, my messages synchronized
diff --git a/content/index.org b/content/index.org
index d94d79b..cf6e3dc 100644
--- a/content/index.org
+++ b/content/index.org
@@ -1,2 +1,2 @@
-#+title: cleberg.net
+#+title: cmc.pub
 #+description: Just a blip of ones and zeroes.
diff --git a/content/salary/index.org b/content/salary/index.org
index d8c7a12..845a420 100644
--- a/content/salary/index.org
+++ b/content/salary/index.org
@@ -46,7 +46,7 @@ raise while in the same role.
 | Teaching Assistant                             | University of Nebraska | Lincoln, NE    | 2017-08 | 2018-05 | $7/hour  |
 | Community Management Intern                    | Walgreens              | Lincoln, NE    | 2017-06 | 2018-02 | $14/hour |
 
-[[[https://cleberg.net/salary.csv][source data]]]
+[[[https://cmc.pub/salary.csv][source data]]]
 
 ** Salary Visualization
 :PROPERTIES:
@@ -56,7 +56,7 @@ See the graph below for a visualization of each job's salary over time, as well
 as percentage increases or decreases between jobs.
 
 #+caption: Salary Visualization
-[[https://img.cleberg.net/blog/salary/salary.png]]
+[[https://img.cmc.pub/blog/salary/salary.png]]
 
 This page was inspired by [[https://xeiaso.net/salary-transparency/][Xe]], and I'm quoting the following wording from them as
 I want to reiterate this piece:
diff --git a/content/services/index.org b/content/services/index.org
index 57acc21..6a834f8 100644
--- a/content/services/index.org
+++ b/content/services/index.org
@@ -1,15 +1,14 @@
 #+title: Services
 #+slug: index
 
-- [[https://ao.cleberg.net/][AnonymousOverflow]] - A StackOverflow proxy
-- [[https://cyberchef.cleberg.net/][CyberChef]] - The Cyber Swiss Army Knife
-- [[https://files.cleberg.net/][FileArchive]] - An interesting file archive
-- [[https://paste.cleberg.net/][FlashPaper]] - One-time encrypted password/secret sharing
-- [[https://invidious.cleberg.net/][Invidious]] - A YouTube proxy
-- [[https://office.cleberg.net/][Office]] - The world's smallest office suite
-- [[https://org.cleberg.net/][Org-Live]] - A basic org-mode editor for the web I built
-- [[https://priviblur.cleberg.net][Priviblur]] - A privacy-focused alternative frontend to Tumblr
-- [[https://rimgo.cleberg.net/][Rimgo]] - An alternative frontend for Imgur
-- [[https://search.cleberg.net/][SearXNG]] - A privacy-respecting, open metasearch engine
+- [[https://ao.cmc.pub/][AnonymousOverflow]] - A StackOverflow proxy
+- [[https://cyberchef.cmc.pub/][CyberChef]] - The Cyber Swiss Army Knife
+- [[https://files.cmc.pub/][FileArchive]] - An interesting file archive
+- [[https://paste.cmc.pub/][FlashPaper]] - One-time encrypted password/secret sharing
+- [[https://office.cmc.pub/][Office]] - The world's smallest office suite
+- [[https://org.cmc.pub/][Org-Live]] - A basic org-mode editor for the web I built
+- [[https://priviblur.cmc.pub][Priviblur]] - A privacy-focused alternative frontend to Tumblr
+- [[https://rimgo.cmc.pub/][Rimgo]] - An alternative frontend for Imgur
+- [[https://search.cmc.pub/][SearXNG]] - A privacy-respecting, open metasearch engine
 
-See the [[https://git.sr.ht/~cyborg/cleberg.net/log/main/item/content/services/index.org][git log]] if you want to see changes that have been made.
+See the [[https://git.sr.ht/~cyborg/cmc.pub/log/main/item/content/services/index.org][git log]] if you want to see changes that have been made.
diff --git a/content/wiki/ios.org b/content/wiki/ios.org
index fefde17..f44fa66 100644
--- a/content/wiki/ios.org
+++ b/content/wiki/ios.org
@@ -3,7 +3,7 @@
 
 Related:
 
-- [[https://cleberg.net/wiki/hardware.html][Hardware]]
+- [[https://cmc.pub/wiki/hardware.html][Hardware]]
 
 My primary mobile OS. Currently running iOS 17. This wiki page contains most of
 the apps I have used at one point or another across my different iPhones.
diff --git a/content/wiki/macos.org b/content/wiki/macos.org
index 566e68b..28d8a96 100644
--- a/content/wiki/macos.org
+++ b/content/wiki/macos.org
@@ -3,7 +3,7 @@
 
 Related:
 
-- [[https://cleberg.net/wiki/hardware/][Hardware]]
+- [[https://cmc.pub/wiki/hardware/][Hardware]]
 
 My primary OS. Currently running macOS Sonoma 14. This wiki page contains most
 of the apps I have used at one point or another across my different Macbooks.
diff --git a/publish.el b/publish.el
index 1a3eacf..fa61e34 100644
--- a/publish.el
+++ b/publish.el
@@ -8,13 +8,13 @@
 
 ;; Set default URL for Weblorg
 (if (string= (getenv "ENV") "prod")
-    (setq weblorg-default-url "https://cleberg.net"))
+    (setq weblorg-default-url "https://cmc.pub"))
 
 ;; Define site configuration
 (weblorg-site
  :theme nil
-  :template-vars `(("site_name" . "cleberg.net")
-                  ("site_owner" . "Christian Cleberg <hello@cleberg.net>")
+  :template-vars `(("site_name" . "cmc.pub")
+                  ("site_owner" . "Christian Cleberg <hello@cmc.pub>")
                   ("site_description" . "Just a blip of ones and zeroes.")))
 
 ;; Define routes for rendering content
diff --git a/theme/static/.well-known/security.txt b/theme/static/.well-known/security.txt
index 65d5ae7..3bc4639 100644
--- a/theme/static/.well-known/security.txt
+++ b/theme/static/.well-known/security.txt
@@ -1,11 +1,11 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
 
-Contact: mailto:security@cleberg.net
+Contact: mailto:hello@cmc.pub
 Expires: 2100-01-01T06:00:00.000Z
-Encryption: https://cleberg.net/gpg.txt
+Encryption: https://cmc.pub/gpg.txt
 Preferred-Languages: en
-Canonical: https://cleberg.net/.well-known/security.txt
+Canonical: https://cmc.pub/.well-known/security.txt
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAEBCAAdFiEEOReXP7FZu7hhlFOFaUUaUXrAyzcFAmYkB9IACgkQaUUaUXrA
diff --git a/theme/static/gpg.txt b/theme/static/gpg.txt
index 93b642d..477c858 100644
--- a/theme/static/gpg.txt
+++ b/theme/static/gpg.txt
@@ -1,52 +1,25 @@
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 
-mQINBGN0Z8YBEAC6gWrNuB0nyAVkIuCsErIqpO7ngH0HV2sZD54t0ge9on0Fb+QA
-S/oRSK3bcwgR09lnIwPDWpQqlPpzKib2bZ9USBMD0lcgPb0hMr0fafs/+/FCRQV1
-Pvc/e37n2/KHRW2KoiM4sOFT9LYxi7LBGgXffusx6uVBzrNUacTFFd/pMNkPd5uX
-/J4IT+QbDh1bKw4CtLNvoh7xTcfdpzdqpHfNkjm+24pEnbrv6QrSpBzol4uulaB+
-5I8JF938/FBHBndVMT9UQcGRtX+ttZTp9U7m0TzCAsyrVV/V8rEbcGTMlU+yyUjR
-TDRX4Dwj79IfL+vLZgFGLd8GwO08AirNkHYaZwzvYi42I5Bh8cX1L2IippYL8YYF
-ASX26pXC6mxTwC/hjCA7rzyIMD5sf1UailYm5MvrhEujRYOPWDU+kex2t2HJpzvN
-vYSVIS0sKi7iHr82VA+/spR6Ii07/84zZPQ1h/sXJLaDolQV2pU7WJBPyFO957Er
-BggugSpB1U/blgU+B9vOR+2sMEReRQwVF7aVhQ2Wy5wOZRHlmTZVMNO5SawXkiTp
-Bt4IwhThzMcUQstXxf5V44pPsB5uQE3n4WdROfJTOiB2cZJZOiXe3iPiiTsVsBc2
-tcqxJmwplMS4jNddJ9Nh0NTCKNk3Yt0iZzWlQDKAzR1uSGW9fQGAdh/UZQARAQAB
-tCVDaHJpc3RpYW4gQ2xlYmVyZyA8aGVsbG9AY2xlYmVyZy5uZXQ+iQJRBBMBCAA7
-FiEEOReXP7FZu7hhlFOFaUUaUXrAyzcFAmN0Z8YCGwMFCwkIBwICIgIGFQoJCAsC
-BBYCAwECHgcCF4AACgkQaUUaUXrAyzcrIQ//ZzCvcNKi2exZ4MfH68q9cIrJtHA3
-+FQ/3yTwAMiXmaTctHTcME+4Um12TCJMH/PwOkmxjolln5LfNHC8emcNs9Uaoga7
-1Cy8ihqKbQMaZN1ZHrgaddeTs7+N1+/u8yAZPXo+N6pmLaeuPfn1MMhcejTbo+C/
-c22/yj97ym6Iuc9oodnbHb2rxhGKReQLJmqzBHWd0syFbYDopmhY2MjMawVirPG7
-vt6EbiFHkWLBY08FYbOQWT4bXdSHlLxT3q5m+j0HdVjHxd/vOk+dc3FPtK8ZpTVC
-qKa2oQ6dl4fjp8GVbu4f4SMDDJRR1iOoLTNEhKDSZHkZdjH0/LQRLsf49cqbff1Y
-mpxJcNv1/RmgzctTmBAoGt2RS8mT97H8AUW7v7PGs3eS/OkrY1e4cuTrmcafEaMy
-J2L7aUxDVVUCvRKsONXx+zSLin7ByRHypqRfxGqnpQUDPW4Oty6CewsSXktDjIUx
-FXzMwfuNXKS/KHqcUxamE0rL8O2d3CJI4YAbWu2Y0GtBetfuaaOgi56cYqv86zGu
-os0oga1ZakiCeRPgEaipPaZZMf6pCvucF2VyaUHwIOMcSVEH5nhHO4McgYLSZucx
-na5qcLk06EP+1HjmifGqPmkxHTW/ez5x6m/QT9jOzyRu94p3IG5DT1Lh8kl6gid7
-YntCGrwcsvw8zKi5Ag0EY3RnxgEQANj1c0ZS3npmtj1V5m+vsq1mK2g4K66senuC
-Gf+wTudYgcUzBhcTtEwzFJTwFFUMkfpgmkgYrlMB7iH+85YxiDR2sBhMg56haJXn
-LGnSaWqHVE4P0yyHI/6QasYxdJWfYkSH9m3B8yW1VKs4eSSL6S/U/qdHzDRRZCEX
-lNhvplrWcWv6Ifk/aYJ+njwn+jhXT4j8lbhem5oCbg4olY84bs+rfvWHTrWdGD1N
-sHkbLEwLgnmJou7vkVY9vkIMhbgpvNp1CEx0zOGTMhlPrCYBCFUGR7Bnoqwwl/C4
-CTBwZxBE5bNBpsEdySYhmHW+YHRHIxeboLmOyoc0CpT/zhu2y5JxqJBiGEDYhTM/
-V2nNqKGDgUenXqjwoBw5oCNQJ35NNgFgEbphhs71W7VVwEPRdppcem33TcpFBeoE
-vTzCfK6xJA82ASJHKz0hajEQchJ5jJZYo4wRZJGFv2jMIhq24DLIqxgjZeBKLEzl
-RigfuuCrAsQBIMtTUSUUvxjB/b+UDYssqi9Q+8F7FcwqE9egaj7xVQprTAYcGW7S
-zxfjzFSbJSl+b4WQSewFtmFIx62RYemBH+YPxbwOhQAuRWgEg0E6xeuILu22xydf
-DEkbk1GEXH3ilYxl4LhFy2EmUbvB8rxh5Vk3A1KVaBe/ndPhwznTe7X9ypRHzQiV
-Jkc2vVGjABEBAAGJAjYEGAEIACAWIQQ5F5c/sVm7uGGUU4VpRRpResDLNwUCY3Rn
-xgIbDAAKCRBpRRpResDLN60xD/9pEDZK7SXZy/nhVdHMKn2UyF7F8dEXYxILmXp0
-53zDDVN5D7luHjcI5pYynWqlgXWPAaCOthWtexr3r3b8fVSc7yxi497fFa3jiVkn
-VNYjDCa4SK5H6Rdf6I5rv+SS1PPmiVFKL7xuWcJ9YucHACdeH0UUmPCMmHHDc9SY
-MGUPjadFxjCGtBz8itS+ufDiZsTU9ov7XRE+pVyrDlMSVD1Ex02vMRtr+UD9lkYb
-KGs32TEDw28+OgvSZc81P6/BuxmG2XxgvU5OOrlVFOs4VU5P0TnZVxbVuKyO4fkZ
-sxSApn+U4lU89dM0M1l1S2NZtvkWTIW2jFvzwXDCPxs5GAXAGtnEO8gjGICo2QV3
-VovHMTmPz7Bo87fqGZkfZatzvAeHW92FIhQBOdgSiCwSDRPVVdPTpQ27BaUrfH8p
-aS81RhlCWgKptFKj4+MAqGEf9V6jUIKn5EvdSxCZ5XXHmaBL/kXxTPaDJiK8nMKv
-dr/iwtb23SwNrBLQkYcI+6aZj4jcqr5T0H2EsC8h9jQWMG+S9/BzhJOI/QeepHvD
-VJQve5jozXbz+iBRLrWbEgbNydL/LT9iQCWaWt2HCPQ7bPrxKqya8fUMPxi3VCZZ
-AuXpJzywCyVuzpuChuvdMflHbmx1r8uJjSmUCJf6ngt0TQMXiwL3vsECTV7ZtVge
-0jZ4tA==
-=pl2G
+mDMEZ9CjJhYJKwYBBAHaRw8BAQdANl9s/8i2dlImJtTkHsOx/2RrAbc1V4zcrjJd
+EvpdYKK0IUNocmlzdGlhbiBDbGViZXJnIDxoZWxsb0BjbWMucHViPoiTBBMWCgA7
+FiEExocApvpLcYO2zuR97tyZXNFPGTwFAmfQoyYCGyMFCwkIBwICIgIGFQoJCAsC
+BBYCAwECHgcCF4AACgkQ7tyZXNFPGTyuIgEAlnx3gjFxc+61SLqJRih6cS3hQfiH
+3zhBQiF/EjZOv5MA/1w9iY6HquKJb+4VjFSvx8dI0iYLOmLnU+grIEVZHAIAiQIz
+BBABCAAdFiEEOReXP7FZu7hhlFOFaUUaUXrAyzcFAmfQpDsACgkQaUUaUXrAyzcH
+rxAAk3s5KEwbke95EDa15cfvQa0sRTO8kHlLy713Ypjw2F2sTUiW4TNWlbwHvz7f
+ZNfi65Ds2d9vj7qLFWEgWGNgcevRJQAIKpzHQe9pi2oBuFxxbwL8Ick07cDJ4eDz
+CTER+EF6EUZA30PxiKKvCgprAnmZYoDTEko3rpj7O04hijJM2I/ZUcEQf68doM4s
+bIhtDcCEkNSGvYHsP9XAh6f+NTwqD6WtqvOKnI0g2Ea59c/qggqquC5jx4KvCOa1
+NQnqbFC/DB+CADSkhwSkBv+z44B7T0n2+uRvXWx+zkFZqNYkw0i9o9evoXRCKq0x
+GgPeEtcaVuAm8fru1yyiRIUBHwQ8up3ySpyygn56DhxL8G+Vw1+3J7KC0yk8dYb3
+paYodraF27mulRJHm7DPd8JuT0OVOnKBLE/P/BGPYOq39kYTn2qzvXQzPQvfbkdR
+oH+PM31HUmYkYRjZxkVdsE1SpwkRXyFG1GLNEOz73bdes/Vc/sajG7qbZXNaJfwD
+gUfL1x2W1CkSKiiaTlWdKZtPB43wnN2KZqgJ5Kj1axqCTw3KFArg/pkjgxjRC+IK
+uKmWiP8sLWTDwTjnvITnVmXiwMkv6TLPmljsVGOLfDtrFVfB1iAn4hceEajPOhYh
+5iiJg6ZE+43NhqKQcgEqcyX3T/giVC528Ww3BJ5EHuLJn2i4OARn0KOpEgorBgEE
+AZdVAQUBAQdA7X3Gt9b5IobqDcudWMZdoPPkvpoomBkEdU+lK+KdqAQDAQgHiHgE
+GBYKACAWIQTGhwCm+ktxg7bO5H3u3Jlc0U8ZPAUCZ9CjqQIbDAAKCRDu3Jlc0U8Z
+PEUJAP4+NKbFgz+xYK7dnmYMmC5EpVaVQQenLrRQnPT/5G/AZgD/ZY+sXairfJlL
+HzMY8Xt1sB5k29myBFTDIhwq+Usm8go=
+=dq5B
 -----END PGP PUBLIC KEY BLOCK-----
diff --git a/theme/templates/base.html b/theme/templates/base.html
index bd0f011..b75c2bc 100644
--- a/theme/templates/base.html
+++ b/theme/templates/base.html
@@ -33,7 +33,7 @@
         </p>
         <p>Last build: &lt;{{ now() | strftime("%Y-%m-%d %a %H:%M:%S") }}&gt;</p>
 		<p>
-			<a href="https://git.sr.ht/~cyborg/cleberg.net" target="_blank"
+			<a href="https://git.sr.ht/~cyborg/cmc.pub" target="_blank"
 			rel="noopener">Source Code</a> &middot;
 			<a href="/feed.xml">RSS Feed</a> &middot;
             <a href="/.well-known/security.txt">security.txt</a>
diff --git a/theme/templates/feed.xml b/theme/templates/feed.xml
index 7b23994..78796bd 100644
--- a/theme/templates/feed.xml
+++ b/theme/templates/feed.xml
@@ -10,7 +10,7 @@
      xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
      xmlns:media="http://search.yahoo.com/mrss/">
   <channel>
-    <title>{{ site_name | default("cleberg.net") }}</title>
+    <title>{{ site_name | default("cmc.pub") }}</title>
     <atom:link
       href="{{ url_for("rss") }}"
       rel="self" type="application/rss+xml" />
@@ -20,13 +20,13 @@
     <pubDate>{{ posts | first | getattr("date") | strftime("%a, %d %b %Y %H:%M:%S %z") }}</pubDate>
     <lastBuildDate>{{ now() | strftime("%a, %d %b %Y %H:%M:%S %z") }}</lastBuildDate>
     <generator>{{ meta.generator }}</generator>
-    <webMaster>{{ site_owner | default("hello@cleberg.net") }}</webMaster>
+    <webMaster>{{ site_owner | default("hello@cmc.pub") }}</webMaster>
 
     {% for post in posts %}
     <item>
       <title>{{ post.title }}</title>
       <link>{{ url_for("blog", slug=post.slug) }}</link>
-      <author>{{ post.author|default("hello@cleberg.net") }}</author>
+      <author>{{ post.author|default("hello@cmc.pub") }}</author>
       <guid isPermaLink="false">{{ url_for("blog", slug=post.slug) }}</guid>
       <pubDate>{{ post.date|strftime("%a, %d %b %Y %H:%M:%S %z") }}</pubDate>
       <description><![CDATA[{{ post.html|safe }}]]></description>
diff --git a/theme/templates/index.html b/theme/templates/index.html
index 905bd57..e11eaef 100644
--- a/theme/templates/index.html
+++ b/theme/templates/index.html
@@ -1,9 +1,10 @@
 {% extends "base.html" %} {% block main %}
 <section>
-	<h1>cleberg.net</h1>
-	<pre>pub   rsa4096 2022-11-16 [SC]
-      <a href="/gpg.txt">3917 973F B159 BBB8 6194 5385 6945 1A51 7AC0 CB37</a>
-uid           [ultimate] Christian Cleberg &lt;hello@cleberg.net&gt;</pre>
+	<h1>cmc.pub</h1>
+	<pre>pub   ed25519 2025-03-11 [SCA]
+      <a href="/gpg.txt">C687 00A6 FA4B 7183 B6CE E47D EEDC 995C D14F 193C</a>
+uid           [ultimate] Christian Cleberg &lt;hello@cmc.pub&gt;
+sub   cv25519 2025-03-11 [E]</pre>
 </section>
 <section>
 	<h2>Recent Blog Posts</h2>
@@ -33,7 +34,7 @@ uid           [ultimate] Christian Cleberg &lt;hello@cleberg.net&gt;</pre>
 <section>
 	<h2>Everything Else</h2>
 	<ul>
-		<li><a href="https://cv.cleberg.net">Curriculum Vitae</a></li>
+		<li><a href="https://cv.cmc.pub">Curriculum Vitae</a></li>
 		<li><a href="/salary/">Salary</a></li>
 		<li><a href="/services/">Services</a></li>
 		<li><a href="/wiki/">Wiki</a></li>
@@ -43,13 +44,9 @@ uid           [ultimate] Christian Cleberg &lt;hello@cleberg.net&gt;</pre>
 <section>
 	<h2>Contact</h2>
 	<ul>
-		<li><a href="mailto:hello@cleberg.net">hello@cleberg.net</a> (<a href="https://cleberg.net/gpg.txt">GPG</a>)</li>
+		<li><a href="mailto:hello@cmc.pub">hello@cmc.pub</a> (<a href="https://cmc.pub/gpg.txt">GPG</a>)</li>
 		<li>cyb0rg on <a href="https://libera.chat/">libera.chat</a></li>
-		<li>
-			<a href="https://matrix.to/#/@cyborg:matrix.tchncs.de"
-				>@cyborg:@matrix.tchncs.de</a
-			>
-		</li>
+		<li><a href="https://lemmy.cmc.pub/u/cmc">@cmc</a> on Lemmy</li>
 		<li><a href="https://sr.ht/~cyborg">Sourcehut</a></li>
 	</ul>
 </section>
diff --git a/theme/templates/post.html b/theme/templates/post.html
index 43f45d2..a3c15a5 100644
--- a/theme/templates/post.html
+++ b/theme/templates/post.html
@@ -23,6 +23,6 @@
 		{% endif %}
 	</section>
 	<section>{{ post.html | safe }}</section>
-	<blockquote><a href="mailto:hello@cleberg.net">Reply via email</a></blockquote>
+	<blockquote><a href="mailto:hello@cmc.pub">Reply via email</a></blockquote>
 </article>
 {% endblock %}
diff --git a/utils/hooks/post-push b/utils/hooks/post-push
index 4193037..f7ceff8 100644
--- a/utils/hooks/post-push
+++ b/utils/hooks/post-push
@@ -26,4 +26,4 @@ emacs --script publish.el &>/dev/null
 minify -o theme/static/styles.min.css theme/static/styles.css
 
 # Deploy changes
-rsync -r --delete-before .build/* $ubuntu_server:/var/www/cleberg.net/
+rsync -r --delete-before .build/* $ubuntu_server:/var/www/cmc.pub/
diff --git a/utils/nginx-dev.conf b/utils/nginx-dev.conf
index ed94af7..2620df2 100644
--- a/utils/nginx-dev.conf
+++ b/utils/nginx-dev.conf
@@ -1,12 +1,12 @@
 server {
-	server_name cleberg.net www.cleberg.net;
+	server_name cmc.pub www.cmc.pub;
 
 	root /usr/share/nginx/html;
 	index index.html;
 	autoindex on;
 
-	access_log  /var/log/nginx/cleberg.net.access.log;
-	error_log  /var/log/nginx/cleberg.net.error.log;
+	access_log  /var/log/nginx/cmc.pub.access.log;
+	error_log  /var/log/nginx/cmc.pub.error.log;
 
 	location / {
 		try_files $uri $uri/ =404;
diff --git a/utils/salary_visualization.py b/utils/salary_visualization.py
index a34094b..eb3434c 100644
--- a/utils/salary_visualization.py
+++ b/utils/salary_visualization.py
@@ -13,7 +13,7 @@ import plotly.graph_objs as go
 locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
 
 # Read the CSV file
-df = pd_read_csv('~/git/cleberg.net/theme/static/salary.csv')
+df = pd_read_csv('~/git/cmc.pub/theme/static/salary.csv')
 
 def format_currency(value: float) -> str:
     """