From 804b912e88016ee4702a82579c781e7da4d3d313 Mon Sep 17 00:00:00 2001 From: Tom Cat Date: Tue, 15 Aug 2023 02:48:06 -0600 Subject: [PATCH] Add arch post --- .ignore | 2 + config.yml | 2 +- content/posts/the-migration-to-arch.md | 66 +++++++++++++++++++++++++ static/images/arch-logo.png | Bin 0 -> 18504 bytes 4 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 .ignore create mode 100644 content/posts/the-migration-to-arch.md create mode 100644 static/images/arch-logo.png diff --git a/.ignore b/.ignore new file mode 100644 index 0000000..155ebcb --- /dev/null +++ b/.ignore @@ -0,0 +1,2 @@ +themes/ +static/ diff --git a/config.yml b/config.yml index 33af5a6..83fe320 100644 --- a/config.yml +++ b/config.yml @@ -28,7 +28,7 @@ params: cover: responsiveImages: true # disable to speed up build times at cost of responsive sizes editPost: - URL: "https://gitlab.com/foss-cat/hugo-site/-/blob/main/content/" + URL: "https://git.fosscat.com/tom/fosscat-site/_edit/main/content" Text: "Suggest Changes" # edit text appendFilePath: true # to append file path to Edit link enableEmoji: true diff --git a/content/posts/the-migration-to-arch.md b/content/posts/the-migration-to-arch.md new file mode 100644 index 0000000..f3c1f45 --- /dev/null +++ b/content/posts/the-migration-to-arch.md @@ -0,0 +1,66 @@ +--- +title: "The_migration_to_arch" +date: 2023-08-15T02:04:21-06:00 +draft: true +tags: ['arch linux', 'git', 'self host'] +summary: +tocOpen: true +cover: + image: "/images/arch-logo.png" + alt: "Arch Logo" + caption: "I Use Arch Btw" + relative: false +--- + +# I finally did it + +A post after such a long drought. I've been busy working on lots of little projects, and I realized that I really ought to take the time to write on the blog sight +I take such pain to keep up and running. + +You might be thinking to yourself, pain? Shouldn't this be like a set and forget sort of ordeal? Well, it would be, except that I tinker too much for my own good. +As they say, there are two wolves inside each man, one that craves stable, calm waters, maintainable code, reproducible builds, and the other wants to look under +hood, fat finger `rm -rf /` and other monstrosities that I don't care to joke about because they hurt me too much. + +So, I moved off of the Raspberry Pi Zero W2, and on to a much more legitimate pc build. The blog could have run fine on the pi, but it didn't take long for me to +feel justified in spending some money on a faster machine. Bought it second hand from a crypto mining rig, swapped out the pentium for a respectable i7 of some +recent generation, and I had an upcycled machine ready for some data crunching! + +## The Services + +Eventually, I envision a whole bunch of services running in my 'home lab', as home-labians have taken to calling their piles of processors, but for now, I have a humble three: + + - fosscat.com + The wonderful website you find yourself on currently + + - git.fosscat.com + My newly hosted gitea instance to host all of my current and future repos! This was a bugger to setup, but I ended up [figuring out the issues _WRITE ME_](https://fosscat.com/) + + - sub.fosscat.com + I don't want to say what the subdomain is (though its probably discoverable) just because the project using it is still WIP, but my wife and built a budget app together, and + this machine hosts the REST Api I wrote in Zig. + +## The Alt Timeline with Guix + +Arch Linux was not actually the first OS I put on this new (to me) machine. I had drunk from the FSF goblet and got it in my head to try out +[Guix System, or Guix SD,](https://guix.gnu.org/) or whatever its officially called. I recommend checking it out. It was a couple month adventure, but I think my lisp-less mind +couldn't handle the parantheses required. It has some really cool concepts similar to NixOS, your whole system (users, installed packages, mount points, etc) is defined in one or +more files. Despite its great documentation, it is hard to understand what is going on without some good Guile / Scheme fundamentals, which I lack. So, back to what I know: Arch (btw). + +## What Did I Learn? + +I am not exaggerating that I have completely nuked my machine (server, work and/or personal) many times. But, I've learned a whole lot from it: mostly that I need to +setup proper backups as soon as my system is running. So, with this new machine, especially because I am going to start storing all of my code on it, I am following the 3 - 2 - 1 rule: + + 3. Copies of the data + 2. Storage medias (harddrive, usb, ssd, nas) + 1. Offsite + +I decided to go with Hetzner's [Storage Box](https://docs.hetzner.com/robot/storage-box) solution for Offsite. And its waaay offsite (for me), the company is located in the EU. +But, for only ~$5.00 a month, I get access to a sftp server with 1TB capacity, which mirrors the server's nvme drive running the OS, and then I also am backing the nvme drive up +to a HDD drive connected to the computer. I have lots more to say about so many of these things, I spent pretty much all day configuring everything and getting it all to work, but I +told myself to prioritize frequency over comprehensiveness, so I will leave it at that. + +Oh! I almost forgot, if you want to use the gitea instance I am running as an alternative to having your code fed to AI models, please email me! Im no enterprise company with infinite +backups and resources, but I'd love to share what little I have if it would be useful to you! + +Thanks for stopping in :) \ No newline at end of file diff --git a/static/images/arch-logo.png b/static/images/arch-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8a89ad718f9070d625e74b0719f2327ce65df434 GIT binary patch literal 18504 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