mirror of https://github.com/captn3m0/talks.git
4.5 KiB
4.5 KiB
inlineSVG |
---|
true |
The Home Server Talk
- nemo
about me
agenda
- the hardware
- the software
- the alternatives
- the CTA
motivation?
- owning your data
- de-googling
- backing up your data locally
- learning/experimenting with tech
- playing mario
time?
<5 hr a month
Raspberry Pi 3
- 📝 1GB RAM
- 🌐 Wireless/BLE/Ethernet
- ⛓️ 4 USB ports
- 🎵 Audio/HDMI/Composite VGA
- ⚡ 2.5A
- 💸 ~3k INR
- 📷, GPIO
A VM on the ☁️
- Scaleway: 4ARMv8/2GB/50GB - 300 INR
- AWS Lightsail: 1vCPU/512MB/20GB - 250 INR
- Digital Ocean: 1vCPU/1GB/25GB - 350 INR
Beware of Persistent Storage cost
Other Alternatives
- Intel NUCs
- Hetzner Server Auctions (20-50USD/mo).
- NAS/Network device.
- Gamer?
r/pcmasterrace/wiki
system76 Meerak
my build
- TODO
software
- docker
- kubernetes
- ansible/puppet/chef
- tool-of-your-choice
software
- docker *
- kubernetes
- ansible/puppet/chef
- helm?
containers?
- secure
- declarative configuration
- orchestration is 100x easier
what I run
Monitoring
- Prometheus
- Grafana
- speedtest-exporter
- ACT Exporter
- CAdvisor
Media
- Airsonic (🎵)
- Jellyfin (🎥)
- Kodi (📺)
- Audioserve (🎙️ 📖)
Content
- NextCloud ☁️ ✅
- Miniflux (🗞️
RSS
) - Timemachine (💻 ⏮)
- wiki.js
- Radicale 📅 🗂️
- RSS Bridge
- Resilio 🔄
- Gitea
networking
- Public+Static IP Address
- Floating/Elastic IP
really into networking?
really into networking?
really want a cluster?
configuration
- terraform + docker
- kubernetes + helm
- ansible + galaxy
- docker-compose
terraform
module "requestbin" {
name = "requestbin"
source = "./modules/container"
image = "jankysolutions/requestbin:latest"
web {
expose = true
port = "8000"
host = "requestbin.bb8.fun"
}
networks = "${list(module.docker.traefik-network-id)}"
}
docker
"Labels": {
"traefik.docker.network": "traefik",
"traefik.enable": "true",
"traefik.frontend.headers.STSSeconds": "2592000",
"traefik.frontend.headers.browserXSSFilter": "true",
"traefik.frontend.rule": "Host:requestbin.bb8.fun",
"traefik.port": "8000",
"traefik.protocol": "http"
}
docker run --tags ... --network traefik jankysolutions/requestbin:latest
OTA Updates
provider "docker" {
host = "tcp://docker.vpn.bb8.fun:2376"
cert_path = "./secrets/tatooine"
version = "~> 2.0.0"
}
Docker API
- Manage networks,
- Containers,
- Configuration
All over a API, but only for one host.
docker swarm, but