commit 14f04f569c8b062c6bc22a7f94aa4d5d011b1445 Author: mrsu Date: Fri Jun 28 13:29:00 2024 +0100 initial commit diff --git a/plan.d2 b/plan.d2 new file mode 100644 index 0000000..f98e659 --- /dev/null +++ b/plan.d2 @@ -0,0 +1,218 @@ +vars: { + d2-config: { + layout-engine: elk + theme-id: 300 + } +} + +direction: down +nebula <-> local: local storage root { + style: { + stroke: red + stroke-width: 8 + } + } +nebula: base machine (nixos nebula): { + media: media (nfs shares) + mnt: { + label: mnt (device mounts) + zspeed <- _._.zspeed: zspeed device mount { + style: { + stroke: orange + stroke-width: 4 + stroke-dash: 3 + } + } + zmedia <- _._.zmedia: zmedia device mount { + style: { + stroke: orange + stroke-width: 4 + stroke-dash: 3 + } + } + } + vms <- mnt.zspeed.vms: vm system storage { + style: { + stroke: lime + stroke-width: 4 + stroke-dash: 3 + } + } + vms: { + btc-node <- _._.btc-node: btc-core device mount { + style: { + stroke: orange + stroke-width: 4 + stroke-dash: 3 + } + } + btc-node: { + bitcoin-core + electrum + "mempool.space" + lnd + rtl + btcpay-server + } + workhorse: { + osm-db-import + bitcoin-db-import + } + } + containers: { + docker <- _.mnt.zspeed.docker: docker system storage { + style: { + stroke: lime + stroke-width: 4 + stroke-dash: 3 + } + } + docker: { + arr-stack <- _._.media.downloads: arr-stack data storage { + style: { + stroke: blue + stroke-width: 4 + stroke-dash: 3 + } + } + postgres <- _._.mnt.zspeed.db: postgres data storage { + style: { + stroke: blue + stroke-width: 4 + stroke-dash: 3 + } + } + photoprism <- _._.media.photos: photoprism data storage { + style: { + stroke: blue + stroke-width: 4 + stroke-dash: 3 + } + } + jellyfin <- _._.media.media: jellyfin data storage { + style: { + stroke: blue + stroke-width: 4 + stroke-dash: 3 + } + } + searxng + syncthing-server <- _._.media.personal: syncthing data storage { + style: { + stroke: blue + stroke-width: 4 + stroke-dash: 3 + } + } + youtubedl-material + "..." + } + lxc <- _.mnt.zspeed.lxc: lxc system storage { + style: { + stroke: lime + stroke-width: 4 + stroke-dash: 3 + } + } + lxc: { + fileserver -> _._.media: fileserver network share { + style: { + stroke: red + stroke-width: 4 + stroke-dash: 3 + } + } + fileserver <- _._.mnt.zmedia: fileserver media mount + vpn (tailscale) + } + } +} + +## storage +local: 1x500GB btrfs (local) { + local: { + shape: cylinder + width: 130 + local: |`md + - nixos + `| + } +} + +btc-node: 1x1TB ext4 (btc-node) { + btc-node: { + shape: cylinder + width: 130 + btc-node: |`md + - bitcoin-core + - electrum + `| + } +} + +zarchive: 3x4TB zpool (zarchive) { + backup: { + shape: cylinder + width: 130 + backup: |`md + - restic-backup + `| + } + + zfs-snap: { + shape: cylinder + width: 130 + zfs-snap: |`md + - zfs snapshots + `| + } +} + +zspeed: 2x2TB zpool (zspeed): { + db: { + shape: cylinder + width: 200 + db: |`md + - postgres + `| + } + + containers: { + shape: cylinder + width: 200 + containers: |`md + - docker + - lxc + `| + } + + vms: { + shape: cylinder + width: 130 + vms: |`md + - btc-node + - workhorse + `| + } +} + +zmedia: 1x4TB zpool (zmedia): { + media: { + shape: cylinder + media: |`md + - media + * tv + * music + * movies + - pictures + - downloads + `| + } + + personal: { + shape: cylinder + personal: |`md + - sync + `| + } +} diff --git a/plan.svg b/plan.svg new file mode 100644 index 0000000..f4b5795 --- /dev/null +++ b/plan.svg @@ -0,0 +1,1000 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +BASE MACHINE (NIXOS NEBULA):1X500GB BTRFS (LOCAL)2X2TB ZPOOL (ZSPEED):1X4TB ZPOOL (ZMEDIA):1X1TB EXT4 (BTC-NODE)3X4TB ZPOOL (ZARCHIVE)MEDIA (NFS SHARES)MNT (DEVICE MOUNTS)VMSCONTAINERSLOCALBTC-NODEBACKUPZFS-SNAPDBCONTAINERSVMSMEDIAPERSONALZSPEEDZMEDIABTC-NODEWORKHORSEDOCKERDOWNLOADSPHOTOSMEDIAPERSONALLXC
    +
  • NIXOS
  • +
+
    +
  • BITCOIN-CORE
  • +
  • ELECTRUM
  • +
+
    +
  • RESTIC-BACKUP
  • +
+
    +
  • ZFS SNAPSHOTS
  • +
+
    +
  • POSTGRES
  • +
+
    +
  • DOCKER
  • +
  • LXC
  • +
+
    +
  • BTC-NODE
  • +
  • WORKHORSE
  • +
+
    +
  • MEDIA +
      +
    • TV
    • +
    • MUSIC
    • +
    • MOVIES
    • +
    +
  • +
  • PICTURES
  • +
  • DOWNLOADS
  • +
+
    +
  • SYNC
  • +
+
VMSBITCOIN-COREELECTRUMMEMPOOL.SPACELNDRTLBTCPAY-SERVEROSM-DB-IMPORTBITCOIN-DB-IMPORTDOCKERARR-STACKPOSTGRESDBPHOTOPRISMJELLYFINSEARXNGSYNCTHING-SERVERYOUTUBEDL-MATERIAL...LXCFILESERVERVPN (TAILSCALE) LOCAL STORAGE ROOT ZSPEED DEVICE MOUNTZMEDIA DEVICE MOUNT VM SYSTEM STORAGEBTC-CORE DEVICE MOUNTDOCKER SYSTEM STORAGE ARR-STACK DATA STORAGEPOSTGRES DATA STORAGEPHOTOPRISM DATA STORAGEJELLYFIN DATA STORAGESYNCTHING DATA STORAGELXC SYSTEM STORAGE FILESERVER NETWORK SHARE FILESERVER MEDIA MOUNT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +