2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00
2025-09-17 15:23:54 -03:00

Haven

A forever-work-in-progress self-hosted server setup

Based on a multi-node k3s cluster running on VMs and bare metal hardware.

The overall application configs are stored in a NFS share inside of a SSD that was purposed specifically for this. For that I'm using nfs-subdir-external-provisioner as a dynamic storage provisioner with specified paths on each PVC. Some other data is stored on a NAS server with a NFS share as well.

The cluster is running on k3s with nginx as the ingress controller. For load balancing I'm using MetalLB in layer 2 mode. I'm also using cert-manager for local CA and certificates (as Vaultwarden requires it).

For more information on setup, check out SETUP.md.

Namespaces

  • default
    • ArchiveBox
    • Homarr
    • Homepage
    • It-tools
    • Notepad
    • Searxng
    • Uptimekuma
    • Vaultwarden
  • dns
    • AdGuardHome
    • AdGuardHome-2 (2nd instance)
    • AdGuard-Sync
  • infra
    • Haven Notify (my own internal service)
    • Beszel
    • Beszel Agent (running as DaemonSet)
    • Code Config (vscode for internal config editing)
    • WireGuard Easy
  • dev
    • Gitea Runner (x64)
    • Gitea Runner (arm64)
  • lab
    • Nothing yet, just a playground/sandbox namespace
  • metallb-system
    • MetalLB components
  • cert-manager
    • Cert-Manager components

Todo:

  • Move archivebox data to its own PVC on NAS
  • Move uptimekuma to infra namespace
  • Add links to each application docs
  • Add links to server scripts
Description
Languages
Markdown 100%