<!-- .slide: data-background="https://go.justmiles.io/f/686f794e?download"-->
# justmiles' Homelab
Building Your Own Selfhosted Playground
---
## Introduction
- Welcome, fellow tech enthusiasts!
- Today, we'll dive into the exciting world of homelab environments.
Note:
Don't act like a goofball
---
<!-- .slide: data-background="https://cdn.discordapp.com/attachments/1013323080875130971/1116568182442967060/justmiles_home_lab_c7c52bd1-4f28-4d75-930c-e2f065cd59dc.png"-->
## What is a Homelab?
Note:
- A homelab is your personal technology playground.
- It's a robust and rich environment built on home-grown and open source projects.
- It allows you to experiment, learn, and develop new skills.
- Think of it as your own mini data center.
---
## Benefits of a Homelab
----
Skill Development
- Gain hands-on experience with various technologies. <!-- .element: class="fragment" -->
- Experiment without any constraints. <!-- .element: class="fragment" -->
- Enhance your knowledge and become a well-rounded IT professional. <!-- .element: class="fragment" -->
----
Testing and Learning
- Test new software, configurations, and solutions in a controlled environment. <!-- .element: class="fragment" -->
- Learn from failures and iterate quickly. <!-- .element: class="fragment" -->
- Stay up to date with the latest trends and emerging technologies. <!-- .element: class="fragment" -->
---
## What's needed for a Homelab
- Hardware
- Virtualization
- Network
- Storage
Note:
Quick chat through what's needed in a homelab, then we'll talk through my own implementations of these.
----
**Hardware**
- Servers, switches, routers, storage devices, and other equipment.
- Consider energy efficiency and noise levels.
----
my loadout
- some router (linksys?)

- some switch (tp-link?)
<img src="https://hackmd.io/_uploads/ByFaA1-P2.png" alt="switch" style="width:100px;"/>
- Couple two tree servers
----
<img src="https://hackmd.io/_uploads/Bke3TyWPh.png" alt="stable-tower" style="width:200px;"/>
<img src="https://hackmd.io/_uploads/ryHVCyWvn.png" alt="stable" style="width:200px;"/>
<img src="https://hackmd.io/_uploads/r1vuC1Ww2.png" alt="e5540" style="width:200px;"/>
----
**Virtualization**
- Hypervisors like VMware ESXi, Proxmox, or Microsoft Hyper-V. <!-- .element: class="fragment" -->
- Create virtual machines (VMs) to run different operating systems and applications. <!-- .element: class="fragment" -->
- Firecracker microVMs <!-- .element: class="fragment" -->
- At a minimum, use containers: containerd/podman/docker <!-- .element: class="fragment" -->
----
**Networking**
- Configure VLANs, firewalls, and routers.
- Practice network management and security.
- Don't expose yourself in public <!-- .element: class="fragment" -->
(we'll get to zero trust)
----
**Storage**
- Explore Network Attached Storage (NAS), Storage Area Network (SAN), or good ole Network File Share (NFS)
- Explore technologies like RAID, remote FUSE file systems, and data replication.
----
**Configuration Management**
- Use tools like Ansible, Puppet, or Chef to automate configuration mangement.
- Create scripts and workflows to streamline operations.
- Backup all the things
----
**Orchestration**
- manual via quemu (pxe boot & cobbler)
- Docker Swarm
- Rancher (cattle)
- Kubernetes
- Nomad
Note:
Nomad all types of compute
Check out the 1M container challenge; how Kube buckles
---
## My Selfhosted Favorites
----
- code-server - development environment in the browser
- Plex - media server
- Synthing - sync data
- Shortpaste - custom URL shortner / file drop
- Taskwarrier - TODO management
----
- Prometheus - monitor all the things
- Grafana - monitoring/timeseries data visualization
- Silverbullet - access markdown notes in the browser
- Authelia - SSO for all the things
- Tailscale - connect to errthing
---
## Zero Trust
----
- Home network is not exposed to the internet (no port forwarding for 80/443)
----

---
## Protips for Getting started with your own Homelab
----
**Start Small**
- Begin with a basic setup and gradually expand as you gain experience.
- Don't overwhelm yourself with complex architectures from the start.
----
**Document Everything**
- Maintain detailed documentation of your setup, configurations, and troubleshooting steps.
- Documenting ensures easy replication and recovery.
----
**Experiment and Learn**
- Embrace a mindset of continuous learning and exploration.
- Try new technologies, break things, and learn from your mistakes.
----
**Join Communities**
- r/selfhosted
---
## Demo?
- [code-server](https://dev.justmiles.io) - dev.justmiles.io
- [CloudFLare Zero Trust Dashboard](https://one.dash.cloudflare.com/86cfcb24d484b8060601cec588047b3c/access/tunnels) - cloudflare.com
- [Silverbullet Notes](https://notes.justmiles.io) - notes.justmiles.io
- [Authelia](https://login.justmiles.io) - login.justmiles.io
- [Nomad](https://nomad.justmiles.net) - nomad.justmiles.net
- https://www.jupiterbroadcasting.com/show/self-hosted
{"title":"justmiles Homelab","breaks":true,"slideOptions":"{\"theme\":\"black\",\"transition\":\"fade\",\"parallaxBackgroundImage\":\"https://go.justmiles.io/f/c82df4ba?download\"}","contributors":"[{\"id\":\"f3b6bf08-291e-43cd-a114-35f4f7abf038\",\"add\":7904,\"del\":2053}]"}