mirror of
https://codeberg.org/martials/homelab-presentasjon.git
synced 2025-05-02 23:41:29 +00:00
286 lines
8.3 KiB
Markdown
286 lines
8.3 KiB
Markdown
---
|
|
# You can also start simply with 'default'
|
|
theme: seriph
|
|
# random image from a curated Unsplash collection by Anthony
|
|
# like them? see https://unsplash.com/collections/94734566/slidev
|
|
background: https://cover.sli.dev
|
|
# some information about your slides (markdown enabled)
|
|
title: Homelab presentasjon
|
|
info: |
|
|
## Homelab presentasjon
|
|
Av Martin og Sindre
|
|
# apply unocss classes to the current slide
|
|
class: text-center
|
|
# https://sli.dev/features/drawing
|
|
drawings:
|
|
persist: false
|
|
# slide transition: https://sli.dev/guide/animations.html#slide-transitions
|
|
transition: slide-up
|
|
# enable MDC Syntax: https://sli.dev/features/mdc
|
|
mdc: true
|
|
---
|
|
|
|
# Homelabs
|
|
|
|
\- Martin og Sindre
|
|
|
|
<div @click="$slidev.nav.next" class="mt-12 py-1" hover:bg="white op-10">
|
|
<carbon:arrow-down />
|
|
</div>
|
|
|
|
<div class="abs-br m-6 text-xl">
|
|
<a href="https://codeberg.org/martials/homelab-presentasjon" target="_blank" class="slidev-icon-btn">
|
|
<carbon:logo-github />
|
|
</a>
|
|
</div>
|
|
|
|
<!--
|
|
The last comment block of each slide will be treated as slide notes. It will be visible and editable in Presenter Mode along with the slide. [Read more in the docs](https://sli.dev/guide/syntax.html#notes)
|
|
-->
|
|
|
|
---
|
|
transition: slide-up
|
|
|
|
layout: image-right
|
|
|
|
image: ./public/homelab-martin-full.jpg
|
|
---
|
|
|
|
# Kort fortalt
|
|
|
|
- 🏠 En server man konfigurerer selv
|
|
- 🧑💻 Kan brukes for personlige tjenester og data
|
|
- 🪣 En sandbox hvor du kan leke "uten fare"
|
|
|
|
<style>
|
|
h1 {
|
|
background-color: #2B90B6;
|
|
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
|
background-size: 100%;
|
|
-webkit-background-clip: text;
|
|
-moz-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
-moz-text-fill-color: transparent;
|
|
}
|
|
</style>
|
|
|
|
<!--
|
|
### En server man konfigurerer selv
|
|
- OS, programvare, hardware
|
|
### Kan brukes for personlige tjenester og data
|
|
- Data trenger ikke forlate stuen
|
|
- Kan føles tryggere enn å stole på at andre selskaper håndterer din data
|
|
-->
|
|
|
|
---
|
|
transition: slide-up
|
|
|
|
layout: two-cols
|
|
---
|
|
|
|
# Hvorfor?
|
|
|
|
- Hoste egne nettsider
|
|
- Sette opp personlige tjenester
|
|
- Eie egen data
|
|
- Selvutvikling
|
|
- Gøy
|
|
|
|
::right::
|
|
|
|

|
|
|
|
<style>
|
|
h1 {
|
|
background-color: #2B90B6;
|
|
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
|
background-size: 100%;
|
|
-webkit-background-clip: text;
|
|
-moz-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
-moz-text-fill-color: transparent;
|
|
}
|
|
</style>
|
|
|
|
<!--
|
|
### Hoste egne nettsider
|
|
Portefølje, personlige nettsider, hobby prosjekter eller annet
|
|
|
|
### Personlige tjenester
|
|
Skylagring, busjetthåndtering, bildegalleri og mye mer
|
|
|
|
### Eie egen data
|
|
Du har selv kontroll på dataene, de blir ikke solgt eller delt med andre, med mindre du selv deler det.
|
|
|
|
### Selvutvikling
|
|
Du kommer til å bruke en haug av forskjellige teknologier som gjør at du vil utvikle deg selv innad IT enda mer!
|
|
|
|
-->
|
|
|
|
---
|
|
transition: slide-up
|
|
|
|
layout: two-cols
|
|
---
|
|
|
|
# Hva kan man sette opp?
|
|
|
|
- **Home assistant** - Smarthussystem
|
|
- **Kitchenowl** - Handleliste
|
|
- **Nextcloud** - Fillagring
|
|
- **Ente photos** - Google images alternativ
|
|
- **Actual Budget** - Budsjettering
|
|
- **Gitea / Forgejo** - Git
|
|
- **Calibre** - eBook server
|
|
- **Jellyfin** - Media server
|
|
- **Navidrome** - Musikk server
|
|
- **Minecraft server** - & en haug av andre spillservere!
|
|
|
|
::right::
|
|
|
|

|
|
|
|
<style>
|
|
h1 {
|
|
background-color: #2B90B6;
|
|
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
|
background-size: 100%;
|
|
-webkit-background-clip: text;
|
|
-moz-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
-moz-text-fill-color: transparent;
|
|
}
|
|
</style>
|
|
|
|
<!--
|
|
Det er mye forskjellig man kan sette opp på en homelab, blant annet:
|
|
- Home assistant for en smarthusløsning som integrerer med mange ulike gadgets, via ulike standarer og protokoller
|
|
- Kitchenowl som en handleliste man kan dele med alle i husstanden
|
|
- Nextcloud for skylagring og mye mer.
|
|
- Ente Photos for lagring og deling av bilder, samt 2FA app
|
|
- Actual Budget for budsjettering som kan kobles til banken din
|
|
- Gitea / Forgejo for å lagre å dele egen kode
|
|
- Calibre for å ha sine e-bøker lagret trygt (:eyes: Amazon)
|
|
- Jellyfin for å lagre en haug av forskjellige medier, eks. filmer og serier
|
|
- Navidrome for å lagre musikken sin på en dedikert tjeneste om man ikke bruker Spotify
|
|
- Spillservere! En haug av de.
|
|
|
|
Det finnes mye mer. Dersom det finnes et behov for en app så finnes det en open-source løsning som kan self-hostes.
|
|
|
|
|
|
Kan være veldig enkelt å sette opp! Ved å bruke docker og spesielt docker compose, kan man bare laste ned / skrive en fil
|
|
som man kjører for å sette opp applikasjonen. De fleste har veldig enkelt oppsett som kan settes opp på noen minutter med docker.
|
|
Dersom man ønsker å gjøre det tilgjengelig over nettet må man også sette opp domene å bruke en DNS provider og reverse proxy for å sende brukerne til rett sted.
|
|
-->
|
|
|
|
---
|
|
transition: slide-up
|
|
|
|
layout: image-right
|
|
|
|
image: /overview-martin.png
|
|
---
|
|
|
|
# Martins oppsett
|
|
|
|
## Servere
|
|
- **Homelab med Ubuntu**
|
|
- **RPI4 med NixOS**
|
|
|
|
## Software
|
|
- **Caddy**
|
|
- **Nextcloud**
|
|
- **Docker**
|
|
- **Tailscale med Headscale**
|
|
- **Kitchenowl**
|
|
- **Gitea**
|
|
- **Actual budget**
|
|
- Med mer
|
|
|
|
<style>
|
|
h1 {
|
|
background-color: #2B90B6;
|
|
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
|
background-size: 100%;
|
|
-webkit-background-clip: text;
|
|
-moz-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
-moz-text-fill-color: transparent;
|
|
}
|
|
</style>
|
|
|
|
<!--
|
|
### Servere
|
|
Mitt oppsett bruker i dag to servere. En Raspberry Pi4 med NixOS, og en HP Homelab med Ubuntu Server.
|
|
Raspberry Pi har nylig blitt konvertert til NixOS og inneholder ikke noe nyttig for øyeblikket.
|
|
|
|
Nå ligger alt på Homelabben som jeg kjøpte på Bergen brukt PC.
|
|
- [HP ProDesk 600](https://bergenbruktpc.no/stasjonaer-pc/hp/hp-prodesk-600-g3-sff-i5-i7-6-gen#&variation=926582)
|
|
- 6. Generasjon i7 CPU
|
|
- 256 GB SSD + 500 GB HDD
|
|
- 16 GB RAM
|
|
- Ubuntu Server 24.04
|
|
|
|
### Software
|
|
- Jeg bruker Cloudflare som DNS provider, hvor domene blir registrert og sender trafikker til ruteren.
|
|
- Her er det registrert hoveddomene samt alle subdomener.
|
|
- Ruteren bruker port forwarding for å sende https trafikken videre til homelab.
|
|
- Homelab bruker Caddy for å ta imot requests og sende de videre til de ulike programmene med reverse proxy
|
|
- Den kan også bare returner ressurser som html eller filer
|
|
- Caddy håndterer automatisk TLS sertifikat uten noen ekstra konfigurering
|
|
- Så godt som alle tjenester på homelab bruker docker for å kjøre, dette gjør det utrolig enkelt å sette opp, og fjerne tjenester.
|
|
- Samt oppdateringer
|
|
- Man får mye gratis, logging, health checks, enkle oppdateringer, enkel testing på andre enheter
|
|
|
|
#### Deployment
|
|
Jeg bruker Gitea for git, hvor all min kode blir lagret. Her kan jeg også sette opp Gitea Actions, som virker nesten identisk til GitHub actions.
|
|
Dette kan enkelt brukes for å deploye tjenester på serveren, ved at Gitea runneren kjører på enheten direkte og kan utføre kommandoer fra kommandolinjen.
|
|
For eksempel å kjøre en docker build kommando for å oppdatere en container som kjører på serveren, med den nye koden i siste commit.
|
|
|
|
#### Sikkerhet
|
|
Både homelab og Raspberry Pi bruker Tailscale, som er en VPN som gjør det enkelt å koble seg på enhetene i tailnettet fra hvor som helst i verden.
|
|
Tailscale kan ikke self-hostes, men det finnes en open-source løsning som heter Headscale som kan det. Og det kan brukes for å koble enheter på tailnettet.
|
|
Disse er konfigurert slik at det er kun mulig å nå de over SSH, dersom man er på samme nettverk, eller koblet til VPN.
|
|
I tillegg må man også ha brukernavn, passord og en 2FA kode.
|
|
|
|
-->
|
|
|
|
---
|
|
transition: slide-up
|
|
---
|
|
|
|
# Sindres oppsett
|
|
|
|
- 🧑💻 **OS**
|
|
<style>
|
|
h1 {
|
|
background-color: #2B90B6;
|
|
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
|
background-size: 100%;
|
|
-webkit-background-clip: text;
|
|
-moz-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
-moz-text-fill-color: transparent;
|
|
}
|
|
</style>
|
|
|
|
---
|
|
transition: slide-up
|
|
|
|
layout: statement
|
|
---
|
|
|
|
# Takk for oss
|
|
## Spørsmål?
|
|
|
|
<style>
|
|
h1 {
|
|
background-color: #2B90B6;
|
|
background-image: linear-gradient(45deg, #4EC5D4 10%, #146b8c 20%);
|
|
background-size: 100%;
|
|
-webkit-background-clip: text;
|
|
-moz-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
-moz-text-fill-color: transparent;
|
|
}
|
|
</style> |