mirror of
https://codeberg.org/martials/homelab-presentasjon.git
synced 2025-06-28 06:08:49 +00:00
Compare commits
4 Commits
9b68c1c4e0
...
main
Author | SHA1 | Date | |
---|---|---|---|
13c73a46dc
|
|||
44b5e94360
|
|||
09a8c581f1
|
|||
cca33487b6
|
@ -1,37 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { ref } from 'vue'
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
count: {
|
|
||||||
default: 0,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const counter = ref(props.count)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div flex="~" w="min" border="~ main rounded-md">
|
|
||||||
<button
|
|
||||||
border="r main"
|
|
||||||
p="2"
|
|
||||||
font="mono"
|
|
||||||
outline="!none"
|
|
||||||
hover:bg="gray-400 opacity-20"
|
|
||||||
@click="counter -= 1"
|
|
||||||
>
|
|
||||||
-
|
|
||||||
</button>
|
|
||||||
<span m="auto" p="2">{{ counter }}</span>
|
|
||||||
<button
|
|
||||||
border="l main"
|
|
||||||
p="2"
|
|
||||||
font="mono"
|
|
||||||
outline="!none"
|
|
||||||
hover:bg="gray-400 opacity-20"
|
|
||||||
@click="counter += 1"
|
|
||||||
>
|
|
||||||
+
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
@ -5,6 +5,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "slidev build",
|
"build": "slidev build",
|
||||||
"dev": "slidev --open",
|
"dev": "slidev --open",
|
||||||
|
"remote": "slidev --remote",
|
||||||
"export": "slidev export"
|
"export": "slidev export"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
# Imported Slides
|
|
||||||
|
|
||||||
You can split your slides.md into multiple files and organize them as you want using the `src` attribute.
|
|
||||||
|
|
||||||
#### `slides.md`
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
# Page 1
|
|
||||||
|
|
||||||
Page 2 from main entry.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## src: ./subpage.md
|
|
||||||
```
|
|
||||||
|
|
||||||
<br>
|
|
||||||
|
|
||||||
#### `subpage.md`
|
|
||||||
|
|
||||||
```markdown
|
|
||||||
# Page 2
|
|
||||||
|
|
||||||
Page 2 from another file.
|
|
||||||
```
|
|
||||||
|
|
||||||
[Learn more](https://sli.dev/guide/syntax.html#importing-slides)
|
|
BIN
public/capgemini.jpg
Normal file
BIN
public/capgemini.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
38
slides.md
38
slides.md
@ -1,16 +1,14 @@
|
|||||||
---
|
---
|
||||||
# You can also start simply with 'default'
|
# You can also start simply with 'default'
|
||||||
theme: seriph
|
theme: seriph
|
||||||
# random image from a curated Unsplash collection by Anthony
|
background: capgemini.jpg
|
||||||
# like them? see https://unsplash.com/collections/94734566/slidev
|
|
||||||
background: https://cover.sli.dev
|
|
||||||
# some information about your slides (markdown enabled)
|
# some information about your slides (markdown enabled)
|
||||||
title: Homelab presentasjon
|
title: Homelab presentasjon
|
||||||
info: |
|
info: |
|
||||||
## Homelab presentasjon
|
## Homelab presentasjon
|
||||||
Av Martin og Sindre
|
Av Martin og Sindre
|
||||||
# apply unocss classes to the current slide
|
# apply unocss classes to the current slide
|
||||||
class: text-center
|
#class: text-center
|
||||||
# https://sli.dev/features/drawing
|
# https://sli.dev/features/drawing
|
||||||
drawings:
|
drawings:
|
||||||
persist: false
|
persist: false
|
||||||
@ -30,7 +28,7 @@ mdc: true
|
|||||||
|
|
||||||
<div class="abs-br m-6 text-xl">
|
<div class="abs-br m-6 text-xl">
|
||||||
<a href="https://codeberg.org/martials/homelab-presentasjon" target="_blank" class="slidev-icon-btn">
|
<a href="https://codeberg.org/martials/homelab-presentasjon" target="_blank" class="slidev-icon-btn">
|
||||||
<carbon:logo-github />
|
<carbon:branch />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -65,6 +63,8 @@ h1 {
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
<u>Sindre</u>
|
||||||
|
|
||||||
### En server man konfigurerer selv
|
### En server man konfigurerer selv
|
||||||
- OS, programvare, hardware
|
- OS, programvare, hardware
|
||||||
### Kan brukes for personlige tjenester og data
|
### Kan brukes for personlige tjenester og data
|
||||||
@ -103,6 +103,8 @@ h1 {
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
<u>Sindre</u>
|
||||||
|
|
||||||
### Hoste egne nettsider
|
### Hoste egne nettsider
|
||||||
Portefølje, personlige nettsider, hobby prosjekter eller annet
|
Portefølje, personlige nettsider, hobby prosjekter eller annet
|
||||||
|
|
||||||
@ -153,17 +155,21 @@ h1 {
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
<u>Martin</u>
|
||||||
|
|
||||||
Det er mye forskjellig man kan sette opp på en homelab, blant annet:
|
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
|
- Home assistant for en smarthusløsning som integrerer med mange ulike gadgets, via ulike standarer og protokoller.
|
||||||
|
For eksempel for styring av lys og varme.
|
||||||
- Kitchenowl som en handleliste man kan dele med alle i husstanden
|
- Kitchenowl som en handleliste man kan dele med alle i husstanden
|
||||||
- Nextcloud for skylagring og mye mer.
|
- Nextcloud for skylagring og mye mer. Kan brukes som et alternativ til Sharepoint og Microsoft 365 pakken.
|
||||||
|
Da det kan utvides med all slags funksjonalitet, word og powerpoint alternativ og teams alternativ.
|
||||||
- Ente Photos for lagring og deling av bilder, samt 2FA app
|
- Ente Photos for lagring og deling av bilder, samt 2FA app
|
||||||
- Actual Budget for budsjettering som kan kobles til banken din
|
- Actual Budget for budsjettering som kan kobles til banken din
|
||||||
- Gitea / Forgejo for å lagre å dele egen kode
|
- Gitea / ForgeJo for å lagre å dele egen kode, samt CI/CD pipelines for deployment.
|
||||||
- Calibre for å ha sine e-bøker lagret trygt (:eyes: Amazon)
|
- Calibre for å ha sine e-bøker lagret trygt (Amazon 👀)
|
||||||
- Jellyfin for å lagre en haug av forskjellige medier, eks. filmer og serier
|
- 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
|
- Navidrome for å lagre musikken sin på en dedikert tjeneste om man ikke bruker Spotify
|
||||||
- Spillservere! En haug av de.
|
- Spillservere for Minecraft, Factorio og en haug andre
|
||||||
|
|
||||||
Det finnes mye mer. Dersom det finnes et behov for en app så finnes det en open-source løsning som kan self-hostes.
|
Det finnes mye mer. Dersom det finnes et behov for en app så finnes det en open-source løsning som kan self-hostes.
|
||||||
|
|
||||||
@ -210,9 +216,12 @@ h1 {
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
<u>Martin</u>
|
||||||
|
|
||||||
### Servere
|
### Servere
|
||||||
Mitt oppsett bruker i dag to servere. En Raspberry Pi4 med NixOS, og en HP Homelab med Ubuntu Server.
|
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.
|
Raspberry Pi har nylig blitt konvertert til NixOS og inneholder ikke noe nyttig for øyeblikket.
|
||||||
|
Planen er å migrere Homelab til NixOS også etter hvert, men først skal jeg sette opp og teste Raspberry pi med det.
|
||||||
|
|
||||||
Nå ligger alt på Homelabben som jeg kjøpte på Bergen brukt PC.
|
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)
|
- [HP ProDesk 600](https://bergenbruktpc.no/stasjonaer-pc/hp/hp-prodesk-600-g3-sff-i5-i7-6-gen#&variation=926582)
|
||||||
@ -223,14 +232,15 @@ Nå ligger alt på Homelabben som jeg kjøpte på Bergen brukt PC.
|
|||||||
|
|
||||||
### Software
|
### Software
|
||||||
- Jeg bruker Cloudflare som DNS provider, hvor domene blir registrert og sender trafikker til ruteren.
|
- Jeg bruker Cloudflare som DNS provider, hvor domene blir registrert og sender trafikker til ruteren.
|
||||||
- Her er det registrert hoveddomene samt alle subdomener.
|
- Her er det registrert hoveddomene samt en wildcard for subdomener.
|
||||||
|
- I tillegg er det diverse records for epost og verifiseringer.
|
||||||
- Ruteren bruker port forwarding for å sende https trafikken videre til homelab.
|
- 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
|
- 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
|
- Den kan også bare returner ressurser som html eller filer
|
||||||
- Caddy håndterer automatisk TLS sertifikat uten noen ekstra konfigurering
|
- 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.
|
- 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
|
- Samt oppdateringer
|
||||||
- Man får mye gratis, logging, health checks, enkle oppdateringer, enkel testing på andre enheter
|
- Man får mye gratis, samlet logging, health checks, enkle oppdateringer, enkel testing på andre enheter
|
||||||
|
|
||||||
#### Deployment
|
#### 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.
|
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.
|
||||||
@ -286,6 +296,10 @@ h1 {
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<u>Sindre</u>
|
||||||
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
transition: slide-up
|
transition: slide-up
|
||||||
|
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
/* eslint-disable no-console */
|
|
||||||
|
|
||||||
// #region snippet
|
|
||||||
// Inside ./snippets/external.ts
|
|
||||||
export function emptyArray<T>(length: number) {
|
|
||||||
return Array.from<T>({ length })
|
|
||||||
}
|
|
||||||
// #endregion snippet
|
|
||||||
|
|
||||||
export function sayHello() {
|
|
||||||
console.log('Hello from snippets/external.ts')
|
|
||||||
}
|
|
Reference in New Issue
Block a user