2025-09-18 15:24:23 -03:00
2025-09-17 15:46:18 -03:00
2025-09-17 15:46:18 -03:00
2025-09-17 15:46:18 -03:00
2025-09-17 15:46:18 -03:00
2025-09-17 15:46:18 -03:00
2025-09-17 18:01:02 -03:00
2025-09-17 15:46:18 -03:00
2025-09-17 18:01:02 -03:00
2025-09-18 15:24:23 -03:00
2025-09-17 15:46:18 -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.

Also, the repository name is a reference to my local TLD which is .haven :)

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)

Miscellaneous namespaces

  • lab (A playground/sandbox namespace)
    • nfs-pod (for testing and accessing NFS mounts through NFS)
  • 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%