Compare commits

...

2 commits

Author SHA1 Message Date
23d11c6751 Blog post restored 2025-06-05 22:17:05 +03:00
daf097b0ce Blog post restored 2025-06-05 22:16:57 +03:00
5 changed files with 116 additions and 5 deletions

File diff suppressed because one or more lines are too long

View file

@ -86,6 +86,8 @@
padding: 5px 10px;
z-index: 2;
font-size: 0.85em;
min-width: 40px;
text-align: center;
}
.filename {
@ -99,21 +101,28 @@
top: -15px;
z-index: 1;
}
.code-container {
position: relative;
overflow-x: auto;
}
.copy-button {
position: absolute;
right: 40px;
top: -15px;
right: 10px;
top: 25px;
background: var(--color--code-background);
color: white;
border: none;
border-radius: 10px;
border-radius: 6px;
padding: 5px 8px;
font-size: 0.8rem;
cursor: pointer;
transition: background 0.2s ease;
transition: all 0.2s ease;
opacity: 0.7;
z-index: 1;
&:hover {
background: var(--color--primary-shade);
opacity: 1;
}
}
}

View file

@ -2,6 +2,7 @@
import Header from '$lib/components/organisms/Header.svelte';
import Footer from '$lib/components/organisms/Footer.svelte';
import Tag from '$lib/components/atoms/Tag.svelte';
import Crest from '$lib/components/atoms/Crest.svelte';
import dateformat from 'dateformat';
import { keywords, siteBaseUrl, title } from '$lib/data/meta';
@ -78,6 +79,10 @@
</div>
</article>
<div class="crest-wrapper">
<Crest x="256" y="256" s="3" />
</div>
{#if post.relatedPosts && post.relatedPosts.length > 0}
<div class="container">
<RelatedPosts posts={post.relatedPosts} />
@ -96,6 +101,14 @@
background-color: var(--color--post-page-background);
}
.crest-wrapper {
display: flex;
justify-content: center;
align-items: center;
margin: 10px auto;
width: 100%;
}
#article-content {
--main-column-width: 65ch;
position: relative;

View file

@ -0,0 +1,88 @@
---
slug: kub-1
title: 'My Journey to Kubernetes land #1'
description: From a single Docker container to a full homelab setup - this is how it all started.
date: '2025-01-08'
coverImage: /images/posts/kube.jpeg
tags: ['homelab', 'kubernetes', 'media server']
---
<!-- ---
slug: launching
title: Houston Houston!
date: 2024-12-10T22:13:25.350Z
excerpt: Apollo
coverImage: /images/posts/launching.jpeg
tags:
- launch
--- -->
<script>
import CodeBlock from "$lib/components/molecules/CodeBlock.svelte";
</script>
# The Kubernetes way
The love story started with a single docker container. In this posts I will try to go through how I started, the process and how I ended up with this setup. as much as I could since it was never a straight path 🐋
### The Discovery
Years ago it all started when I discovered docker containers. I remember I needed a solution to cache downloaded games so I dont consume alot of bandwith and resources. The main goal was to make it faster. I downloaded Game A in PC#1. I redownload the same game in PC#2 but this time it will fetch it from the local cache server.
I had no clue what docker was. Yes you heard that right. Not a single clue! I found a project called lancache. Im comfortable with computers so I thought lets give it a go. So I did.
### The meetup
I had a Desktop PC with 32GB Ram and intel i5. and about 6TB for storage. I thought well this gonna be a server "lets just install linux server on it, and we will go from there" I barley knew how to cd and ls. Today my main daily driver is linux. funny how things work 🤣. Anyways I installed ubuntu server. Followed the instructions on running lancache from github and the docs. Aaaand it was running successfully! I was happy. its doing what its inteded to do. I have **Orchestrated** this I thought.
One of my friends was my tech guy for the tech guy if you know what I mean. I myself was the tech guy for everyone else. But he was my tech guy! I was proudly showing him the setup. He said and I quote "Oh you are running it in a docker container" I had no clue what was that. I just followed the instructions I knew docker was involved because I wrote some commands started with docker. However I had no clue what it was. He is software engineer, Backend specifically not a devop so he knew what is it just not fully. I told him yeah "uhh yeah docker!". What the hell is that? where can I see the cached files why everything looks gibbresh! He proceeded with explainging docker to me. "its basically a small virtual machine running ubuntu in your ubuntu except it shares the kerneal so its lighter than a VM".
![noclue](https://images.gr-assets.com/hostedimages/1395589252ra/9017005.gif)
He lost me at kernal. But I kind of understood the idea. I did my own search. Found another project called jellyfin where you can watch movies and series streamed locally! At first I wasnt excited for the project per se. I just wanted to go through the journy of running it. So I did what I do best. Google it, Follow this instruction I found in a blog post. I spent few hours and it was running! on the same server that i was using for lancache. however all of this is not at home **yet**.
### The Compose
This little project intoduced me to docker compose. I dont exactly remember when but its around this timeline. After I tested around thats its working I got excited with the project. It was amazing! I looked for a way to securly connect to it from home. And stumbled on tailscale, I installed it on the server. So now I got a tunnel I could connect to it from home! I was excited. I shared it with my family! Installed tailscale and jellyfin TV Client on all TVs. its great! but It was still just a little project. proof of concept that it works how I **orchestrated** it. I slowly began to get addicted to this. I could command a machine to do exactly what I want when I want automatically.
### The Orchestra
##### Hardware
After that I was using it as is. tailscale and client. I myself wasnt using it much at first. I noticed my wife and my little brother was using it almost daily! I thought 💡 "Hey, why dont I just do the whole thing here locally?" At that point I didn't even knew "Homelab" was an actual term. So I did. But first! we need hardware dont we.
I had an old desktop pc it was missing some components. I know that on of my friends got me covered he is PC componenets hoarder big time. I gave him a call he was happy to get rid of it. everytime I needed sata cable or whatever I would give him a call first see if its available in his *store* 🤣. Extra points for beign a neighbour as well.
##### Software
Okay, I got my hardware now. Its mix and match from old parts:
* Ram 8GB Currenlty (16GB)
* AMD Ryzen 7 1800X (16) @ 3.600GHz
* And some old GTX 280 Nvidia I think Currently (NVIDIA GeForce GTX 1080 Ti)
Great! lets get that ubuntu server on it! This is where I was starting to get comfortable with docker compose. Not so comfortable just getting started. I began on getting the stack passing the volumes here and there. Slowly and surely getting how things works. Its not a straight line from here to where I am now.
Finally the stack is working locally! To the users who are just 2 now. nothing much changed. except they dont need to run tailscale now!
<CodeBlock lang="yaml">
```yaml
- Jellyfin : The media server
- Jellyseer : Requesting new media
- Sonarr : Series tracker
- Radarr : Movies tracker
- Transmission : Download client
- Jackett : Proxy server
```
</CodeBlock>
Fast forward configuring Caddy and sharing these services with friends and family. Currently around 60 users ☃️
And this is where I started my real journy into Dockers, Containers, Homelab, Selfhosting as Hobby and eventually Devops, Kubernetes, and CI/CD.
we will get into all of that in another blog post since this is getting long 🥱
for now if you are intersted you can see some of my CI/CD 👇🏼
[Git with CI/CD Repos](https://git.askar.tv/nomad)
[Github](https://github.com/nomadics9)

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB