From 61ec024ad4fd7f34c52e7cfbb83985cabaee6a9d Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Fri, 28 Nov 2025 16:11:58 +0100 Subject: [PATCH] say more about projects --- src/content/posts/a-homelab-adventure | 89 ---------------------- src/content/projects/censura.md | 2 +- src/content/projects/commandwhitelist.md | 3 +- src/content/projects/discipleofland.md | 2 +- src/content/projects/dumbforksgenerator.md | 6 +- src/content/projects/enchantio.md | 3 +- src/content/projects/guildmaster.md | 3 +- src/content/projects/image-functions.md | 3 +- src/content/projects/inviter.md | 4 +- src/content/projects/iwotd.md | 2 +- src/content/projects/meapi.md | 3 +- src/content/projects/mobrrr.md | 3 +- src/content/projects/noted.md | 4 +- src/content/projects/notjustnameplates.md | 4 +- src/content/projects/preventstabby.md | 4 +- src/content/projects/purpur-extras.md | 4 +- src/content/projects/purpur.md | 3 +- src/content/projects/yardwatch.md | 3 +- 18 files changed, 39 insertions(+), 106 deletions(-) delete mode 100644 src/content/posts/a-homelab-adventure diff --git a/src/content/posts/a-homelab-adventure b/src/content/posts/a-homelab-adventure deleted file mode 100644 index aa32b16..0000000 --- a/src/content/posts/a-homelab-adventure +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: "A homelab adventure" -publishDate: "18 Nov 2025" -description: "\"Fine, I'll do it myself.\"" -tags: ["software", "homelab"] ---- - -## The bare minimum - -When I think back, it all started with a friend asking if I can help them learn proxmox. I didn't know anything about -proxmox, so I told them sorry, but it somehow stuck with me. Few months later I realized I'm not really using my mini -gmktec pc for much. I initially bought it for playing league of legends, since I'm daily driving linux and it was about -time riot decided to require installing a rootkit on your specifically windows machine to play their game. I found -myself not playing much, so it went. I grabbed a thumb drive, burned proxmox iso on it and gave it a go. - -After the first impressions of the web interface, I kew what should be the first service to run on it. Pihole. I've -been using adguard dns on my router before, but I liked the idea of hosting dns server locally on my own network. It -even comes with an option to define local dns records, so I can use actual domain names instead of ip addresses to -access my other services. - -Very second thing I installed was homeassistant. I actually tested using it before, hosted on my main PC in a docker -container, but it lacked plugin support and some things I wanted to do were just not possible without them. Thus, my -first actual VM was born. The only smart device I had at the time was a lightbulb in my room, that I was using a mobile -app to control. Luckily the bulb fully supported homeassistant, so I just hooked it right up, and now I can turn it off -if I forget to do it before going out. - -## The files -So, now that I had a dedicated machine running proxmox I might as well host my music and movies on it, right? So I -created jellyfin CT. When doing so, I made my first mistake. "I need space for my media, so I'll just create a 1TB mount -point. What could go wrong?". Well, turns out that a lot can go wrong when you later decide to add more services that -concern media, like navidrome for music streaming. And now I need to duplicate my music files, because there is no easy -way to share the same local storage between two containers that is not absolutely cursed. So I pivot straight into -another mistake: doing the exact same thing, but with samba server. Now I have a local mount point on that smb share and -at least I can share my media between multiple containers and even manage the files myself from my pc. While it's still -not great, it's an upgrade. At least I don't have to duplicate my files anymore. With that disaster temporarily out of -the way it's time to add some actually useful stuff. - -## The useful stuff -I got Homarr as a dashboard for quick access to my other services. While it's working fine for me, I'm considering -writing my own dashboard in the future to have ultimate control over it. Next were Prowlarr and deluge client, deluge of -course having mounted my smb share as download location. I also added n8n instance, mainly to mess around with, but -it ended up being pretty simple way of automating a few things, including discord notifications for articles from this -very blog! Next up, freshRSS for centralizing my news and youtube subscriptions in one place. - -Having all of that is sure nice and all, but what if I want to go somewhere and still be able to watch me some anime -or listen to my music on the go? Sadly this part kinda sucks. My asus router I got way before I did any thinking about -homelabbing has vpn built in, so I just set that up and am now using wireguard to connect directly to my home network. -For now, it works. I plan on building my own router in the future, so I can have more control, because asus stock -firmware absolutely sucks and requires consent to send data to their servers to enable any functionality that might be -remotely useful. - -## Gaming -For the longest time I wanted to get my forever minecraft world off the internet and host it in my house, so I can still -access it if the internet goes down. I simply installed pterodactyl wings CT and added it to my existing pterodactyl -panel (which after today's cloudflare outage I now plan to also bring onto my homelab). Now my world, testing server and -a proxy are running on my mini pc. I still want my friends to be albe to join, so I repurposed the old vps where the -server was running before and set up nginx and haproxy to forward the traffic to the minecraft proxy running at home. -The old vps happens to have 500mbps connection and my home connection is 1tbps, so even if the nightmare scenario -happens and the proxy gets ddosed, I will still enough wiggle room to keep my home connection usable. - -## The storage situation -Turns out having just 2 nvme slots with 1tb and 4tb drives respectively is not enough if you want to download all media -you might ever want to watch. Free space was running low and it was running out fast. I decided to make an actual -investment into my home setup and bought a 4-bay NAS from terra master. For the drives, I got 3 12tb WD purples and -set them up in raid5, giving me 24tb of usable space with basic redundancy. I could now move all my media files off the -mini pc and start using that space for more things. I still use that 4tb nvme as a file server for some of the -containers that need faster storage, but most of the files now live on the NAS. - -As I got a separate device for storage, I've set it up so proxmox now backups all the VMs and CTs directly onto the NAS. -Pterodactyl wings on my proxmox node are also now configured to save backups on the NAS. I also had borg backup set up -for my main pc, but I just changed my daily driver distro from ubuntu to cachyos and I haven't found time to set up borg -on it yet, but hopefully I will manage to get enough time to do it before any major failure happens. - -## Smart home -I mentioned that while setting up homeassistant I only had a smart bulb to play with. Since then, I've been accumulating -IoT devices. My room now has a smart extension cord that tracks how much power my pc is using, I switched all lightbulbs -in the house to ones I can control with homeassistant and I made some automations involving the wireless switches that -communicate over zigbee. I also own a roomba, which I can control with homeassistant, but it's been getting worse and -worse since I disconnected it from the internet, so when it finally dies I plan on replacing it with a vacuum that I can -flash with custom firmware and fully control locally. Some miscellaneous things I also have zigbee thermometers per -room, printer and tv. I don't trust any of the electronic locks, so none of that will be ever happening. - -## Where am I now? -In a pretty good place, I feel. Things are running smoothly, I have backups and redundancy in place. Some basic -automation and more freedom with what I can do in my house. Of course, there's still things to do. Like finally sorting -out that leftover local storage that was left on the original samba server CT and migrating all the files from it onto -properly mounted directory that can be accessed by multiple containers without going though network stack. I learned -quite a bit from this whole endeavor and I know I will learn more as I improve and expand my homelab. I'll be sure to -share any major updates to the story here, so check back, or even subscribe to the RSS feed linked to this site! diff --git a/src/content/projects/censura.md b/src/content/projects/censura.md index 805b468..56a73d1 100644 --- a/src/content/projects/censura.md +++ b/src/content/projects/censura.md @@ -1,7 +1,7 @@ --- category: "minecraft" name: "Censura" -description: "Advanced censorship plugin for bukkit minecraft servers." +description: "Advanced censorship plugin for bukkit minecraft servers. Filters all possible in gameplay text inputs." image: "/assets/projects/censura.webp" links: [ { diff --git a/src/content/projects/commandwhitelist.md b/src/content/projects/commandwhitelist.md index abaa323..43defa9 100644 --- a/src/content/projects/commandwhitelist.md +++ b/src/content/projects/commandwhitelist.md @@ -1,7 +1,8 @@ --- category: "minecraft" name: "CommandWhitelist" -description: "Minecraft bukkit plugin that allows to control precisely what commands players can see and use." +description: "Minecraft bukkit plugin that allows to control precisely what commands players can see and use. Created as +a band-aid solution for bad plugins that do not add permission association in their commands." image: "/assets/projects/cw.png" links: [ { diff --git a/src/content/projects/discipleofland.md b/src/content/projects/discipleofland.md index eaf5dd0..f457ad7 100644 --- a/src/content/projects/discipleofland.md +++ b/src/content/projects/discipleofland.md @@ -1,7 +1,7 @@ --- category: "websites" name: "Disciple of Land" -description: "FFXIV gathering node timers." +description: "FFXIV gathering node timers. Tracks which gathering nodes of time limited availability are currently available and where to teleport." image: "/assets/projects/dol.png" links: [ { diff --git a/src/content/projects/dumbforksgenerator.md b/src/content/projects/dumbforksgenerator.md index 7940dd9..a1e2c53 100644 --- a/src/content/projects/dumbforksgenerator.md +++ b/src/content/projects/dumbforksgenerator.md @@ -1,13 +1,17 @@ --- category: "websites" name: "Dumb Forks Generator" -description: "PHP name generator for dumb minecraft server software fork names." +description: "PHP generator for dumb minecraft server software fork names. Inspired by ridiculous names of various minecraft server software forks." image: "/assets/projects/dumbforkgenerator.png" links: [ { text: "Website", url: "https://dumbforks.yht.one" }, + { + text: "Source", + url: "https://github.com/YouHaveTrouble/dumb-fork-name-generator" + }, ] technologies: - "php" diff --git a/src/content/projects/enchantio.md b/src/content/projects/enchantio.md index 9a0306c..a9b37cd 100644 --- a/src/content/projects/enchantio.md +++ b/src/content/projects/enchantio.md @@ -1,7 +1,8 @@ --- category: "minecraft" name: "Enchantio" -description: "Minecraft paper plugin that adds new enchantments that are in line with vanilla Minecraft feel." +description: "Minecraft paper plugin that adds new enchantments that are in line with vanilla Minecraft feel. One of the +first paper plugins that uses native enchants instead of hacking them in via custom data." image: "/assets/projects/enchantio.png" links: [ { diff --git a/src/content/projects/guildmaster.md b/src/content/projects/guildmaster.md index 528b7fd..03ce69c 100644 --- a/src/content/projects/guildmaster.md +++ b/src/content/projects/guildmaster.md @@ -1,7 +1,8 @@ --- category: "websites" name: "Guild Master" -description: "Adventurer's guild management browser game." +description: "Adventurer's guild management browser game. Semi-idle game where you manage an adventurer's guild by + sending adventurers on quests, updating facilities, and expanding your guild." image: "/assets/projects/guildmaster.png" links: [ { diff --git a/src/content/projects/image-functions.md b/src/content/projects/image-functions.md index 49386a0..15d31c9 100644 --- a/src/content/projects/image-functions.md +++ b/src/content/projects/image-functions.md @@ -1,7 +1,8 @@ --- category: "websites" name: "Image Functions" -description: "Image file manipulation in the browser." +description: "Image file manipulation in the browser. Simply upload an image and you can resize and convert it to + multiple formats. All client side, no servers involved." image: "/assets/projects/image-functions.png" links: [ { diff --git a/src/content/projects/inviter.md b/src/content/projects/inviter.md index a8c51a1..d75f542 100644 --- a/src/content/projects/inviter.md +++ b/src/content/projects/inviter.md @@ -1,7 +1,9 @@ --- category: "bots" name: "Inviter" -description: "Simple discord bot that allows you to have a static invite link." +description: "Simple discord bot that allows you to have a static invite link. Discord sometimes drops invite links, or +someone can mistakenly remove them. This bot creates a new temporary link which makes sure user can never face invalid +link." image: "/assets/projects/inviter.png" links: [ { diff --git a/src/content/projects/iwotd.md b/src/content/projects/iwotd.md index 208c7e0..285769f 100644 --- a/src/content/projects/iwotd.md +++ b/src/content/projects/iwotd.md @@ -1,7 +1,7 @@ --- category: "websites" name: "Interesting Website of the Day" -description: "Daily showcase of interesting websites from my personal database." +description: "Daily showcase of interesting websites from my personal database. It's anything and everything." image: "/assets/projects/iwotd.png" links: [ { diff --git a/src/content/projects/meapi.md b/src/content/projects/meapi.md index faedf76..3190ea7 100644 --- a/src/content/projects/meapi.md +++ b/src/content/projects/meapi.md @@ -1,7 +1,8 @@ --- category: "websites" name: "MeAPI" -description: "API about me. See if I'm online, and if so, what game I'm playing." +description: "API about me. See if I'm online, and if so, what game I'm playing. It's even used on this site in the +\"Activity\" section of the homepage" image: "/assets/projects/meapi.png" links: [ { diff --git a/src/content/projects/mobrrr.md b/src/content/projects/mobrrr.md index 3b2d015..fec3c62 100644 --- a/src/content/projects/mobrrr.md +++ b/src/content/projects/mobrrr.md @@ -1,7 +1,8 @@ --- category: "game engines" name: "Mobrrr" -description: "Ground up game engine for moba and strategy games." +description: "Ground up game engine for moba and strategy games. I created it to learn the inner workings of the basics +of game engines and problems that arise when having to do things fast rather than pretty." image: "/assets/projects/mobrrr.png" links: [ { diff --git a/src/content/projects/noted.md b/src/content/projects/noted.md index 9753e6d..32d17f2 100644 --- a/src/content/projects/noted.md +++ b/src/content/projects/noted.md @@ -1,7 +1,9 @@ --- category: "bots" name: "Noted" -description: "Canned response self-hosted discord app." +description: "Canned response self-hosted discord app. Meant to be hosted on your computer and server. Notes can be +added in bot's private channel and used in any channel either bot has access to or user has bot interaction permissions + in." image: "/assets/projects/noted.png" links: [ { diff --git a/src/content/projects/notjustnameplates.md b/src/content/projects/notjustnameplates.md index 53d1749..52a9b79 100644 --- a/src/content/projects/notjustnameplates.md +++ b/src/content/projects/notjustnameplates.md @@ -1,7 +1,9 @@ --- category: "minecraft" name: "NotJustNameplates" -description: "Minecraft purpur plugin replacing player nametags with display entities for ultimate control over them." +description: "Minecraft purpur plugin replacing player nametags with display entities for ultimate control over them. + Completely replaces player names with text display entities removing character limit and allowing styling the text + however you want." image: "/assets/projects/njn.png" links: [ { diff --git a/src/content/projects/preventstabby.md b/src/content/projects/preventstabby.md index 694c905..cc3f7f7 100644 --- a/src/content/projects/preventstabby.md +++ b/src/content/projects/preventstabby.md @@ -1,7 +1,9 @@ --- category: "minecraft" name: "PreventStabby" -description: "Minecraft bukkit plugin that gives more control over PvP capabilities." +description: "Minecraft bukkit plugin that gives more control over PvP capabilities. Players can toggle their PvP status. +Plugin protects players, their pets and mounds from practically all types of damage caused by other players that can be +determined." image: "/assets/projects/ps.webp" links: [ { diff --git a/src/content/projects/purpur-extras.md b/src/content/projects/purpur-extras.md index 407f7f1..d0f8ec7 100644 --- a/src/content/projects/purpur-extras.md +++ b/src/content/projects/purpur-extras.md @@ -1,7 +1,9 @@ --- category: "minecraft" name: "PurpurExtras" -description: "A companion plugin for Purpur server software that adds additional features and improvements." +description: "A companion plugin for Purpur server software that adds additional features and improvements. This is a +collection of features that were deemed easier to implement and maintain as a plugin rather then integrating them into +the server software." image: "/assets/projects/purpur.svg" links: [ { diff --git a/src/content/projects/purpur.md b/src/content/projects/purpur.md index 1f8e3f8..fd43360 100644 --- a/src/content/projects/purpur.md +++ b/src/content/projects/purpur.md @@ -1,7 +1,8 @@ --- category: "minecraft" name: "Purpur" -description: "Purpur is a drop-in replacement for Paper servers designed for configurability and new, fun, exciting gameplay features." +description: "Purpur is a minecraft server software that is a drop-in replacement for Paper servers,designed for + configurability and new, fun, exciting gameplay features." image: "/assets/projects/purpur.svg" links: [ { diff --git a/src/content/projects/yardwatch.md b/src/content/projects/yardwatch.md index 927d321..577f395 100644 --- a/src/content/projects/yardwatch.md +++ b/src/content/projects/yardwatch.md @@ -1,7 +1,8 @@ --- category: "minecraft" name: "YardWatch" -description: "A pair of API and bukkit plugin that unifies protection plugin APIs." +description: "A pair of API and bukkit plugin that unifies protection plugin APIs. Has basic implementations for multiple +popular protection plugins. Some of those plugins decided to implement YardWatch API natively as well (FactionsUUID)" image: "/assets/projects/yardwatch.png" links: [ {