<!-- .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?) ![reference link](https://hackmd.io/_uploads/HykUa1bPn.png) - 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) ---- ![](https://go.justmiles.io/f/179b1311?download) --- ## 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}]"}
    266 views