# Prototype: Cloud Builder Spreadsheet

**URL:** <https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689>\
**Category:** Hardware\
**Created:** [November 20, 2023, 3:13am UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689 "2023-11-20T03:13:01Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![pcuci](https://forum.45homelab.com/letter_avatar_proxy/v4/letter/p/b2d939/32.png) [@pcuci](https://forum.45homelab.com/u/pcuci)\
**Post date:** [November 20, 2023, 3:13am UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/1 "2023-11-20T03:13:01Z")

</div>

Hi gang,

Before I go too deep down this rabbit hole, I wanted your feedback on a pcpartpicker-like compatibility-checker builder google spreadsheet I’m putting together, that anyone here can use/modify.

Wondering how you organize your purchasing/procurement and maybe inventory(?) using spreadsheets, if at all; as I’m starting to lose track of things in my 5 node home cluster.

> **[Home-Hosted Cloud Builder](https://docs.google.com/spreadsheets/d/1eLyMbh0iuax6rOilh444H7ivbZ1AmLGtAqWhrUZA-yA/edit#gid=1454421667)**
>
> Intro
> 
> How to Build Your Own Self-Hosted Personal Cloud
> The purpose of this creative work is to help you procure the hardware components needed to build your own personal cloud, and self-host everything at home
> Projects We...

Idea is to select a CPU like so:

 ![image](https://forum.45homelab.com/uploads/default/original/1X/a3d58d9b06f3f82077831b2e9e73e5dc70f8afda.png)

Which will then filter out all the incompatible motherboards from the motherboards cell (a data validation drop-down tick appears to select compatible motherboards):

![image](https://forum.45homelab.com/uploads/default/original/1X/3e24ab7cbde2fc24b78b3876d43be2452a4caba6.png)

Whereas before, it listed all available ones:  
 ![image](https://forum.45homelab.com/uploads/default/original/1X/2323e173e3261cb503fbdecd020ddd0b2294ddf0.png)

That’s the idea I would appreciate your feedback on, especially if you went through a similar process recently and had to work out all the details in your head(?)

What compatibility criteria did you care most about, and why?

Warning: this prototype doesn’t really work yet, but feel free to contribute or fork as you wish. Obviously it won’t scale infinitely—and neither will my home cloud!

The magic is achieved by Apps Script: go to Extensions \> Apps Script and you should be able to change/modify the code. This is the first time I write .gs, so all bugs are ChatGPT’s fault 😃

PS: Since data entry can become a huge time-sync, I also relied on ChatGPT to do most of the work, so I just copy-pasted in the results, and it gets about 90% of the details right. You can see how I filled up the CPUs sheet here: [https://chat.openai.com/share/a9d887dd-1c2d-4162-aa8e-ff68e4c75649](https://chat.openai.com/share/a9d887dd-1c2d-4162-aa8e-ff68e4c75649)

@Glitch3dPenguin - can I use cooler list to prefill my coolers sheet? 🕶

> **[Rackmount Server Fans (for HL15, Proliant, Poweredge, etc)](https://docs.google.com/spreadsheets/d/14r9OLmzgMhxON7IVLTbaHZIbbLsqMZ4Z8l_BX-a57R4/edit#gid=0)**
>
> 120x120mm
> 
> Brand,Model,Size (mm),RPM,CFM,dBA,Static Pressure (mm H₂O),RGB,Price (each, USD),Pins,Links,Notes
> Arctic,p12 Max ,120x120x25,3300,81.04,37.50,4.35,NO,$9.99,4,Info • Purchase,Best cost to performance 120mm fan f...

---

<div class="post-metadata">

**Author:** ![Glitch3dPenguin](https://forum.45homelab.com/user_avatar/forum.45homelab.com/glitch3dpenguin/32/2393_2.png) [@Glitch3dPenguin](https://forum.45homelab.com/u/Glitch3dPenguin)\
**Post date:** [November 20, 2023, 5:24am UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/2 "2023-11-20T05:24:53Z")

</div>

Thanks for asking. My sheet are just fans but now I want to also make a CPU cooler list lol.

---

<div class="post-metadata">

**Author:** ![DigitalGarden](https://forum.45homelab.com/user_avatar/forum.45homelab.com/digitalgarden/32/1785_2.png) [@DigitalGarden](https://forum.45homelab.com/u/DigitalGarden)\
**Post date:** [November 20, 2023, 6:40am UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/3 "2023-11-20T06:40:38Z")

</div>

Not a critical point of your post, but in my experience CPU Mark scores change over time as new CPUs are added. I don’t know the details (do new data points revise the score? does testing methodology change?) But, those changes can be significant over years. Every time you add a new CPU, you should re-check/update the scores for all the others too for proper relative comparisons.

You might explicitly list the mobo chipset and socket rather than inferring it from the CPU and mobo name, or maybe there’s a separate mobo details sheet.

Y assume you have info about PSU, PCIe slots and networking. OS and other software? IP and IPMI addresses?

---

<div class="post-metadata">

**Author:** ![SpringerSpaniel](https://forum.45homelab.com/letter_avatar_proxy/v4/letter/s/db5fbb/32.png) [@SpringerSpaniel](https://forum.45homelab.com/u/SpringerSpaniel)\
**Post date:** [November 20, 2023, 10:54pm UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/4 "2023-11-20T22:54:40Z")

</div>

I tend to put everything into NetBox.

> **[GitHub - netbox-community/netbox: The premier source of truth powering...](https://github.com/netbox-community/netbox)**
>
> The premier source of truth powering network automation. Open source under Apache 2. Public demo: https://demo.netbox.dev - GitHub - netbox-community/netbox: The premier source of truth powering ne...

---

<div class="post-metadata">

**Author:** ![SpringerSpaniel](https://forum.45homelab.com/letter_avatar_proxy/v4/letter/s/db5fbb/32.png) [@SpringerSpaniel](https://forum.45homelab.com/u/SpringerSpaniel)\
**Post date:** [November 20, 2023, 10:59pm UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/5 "2023-11-20T22:59:03Z")

</div>

> [@DigitalGarden](#):
>
> in my experience CPU Mark scores change over time as new CPUs are added.

Also, the performance you can get on a CPU today will not necessarily be the same performance in 12-24 months’ time with microcode updates. Things can theoretically get faster, but they more typically get slower as the CPU manufacturers end up mitigating vulnerabilities along the way.

---

<div class="post-metadata">

**Author:** ![Glitch3dPenguin](https://forum.45homelab.com/user_avatar/forum.45homelab.com/glitch3dpenguin/32/2393_2.png) [@Glitch3dPenguin](https://forum.45homelab.com/u/Glitch3dPenguin)\
**Post date:** [November 21, 2023, 4:28am UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/6 "2023-11-21T04:28:03Z")

</div>

I want to use this at work now, but I need a team member just to handle all the data entry, lol.

---

<div class="post-metadata">

**Author:** ![pcuci](https://forum.45homelab.com/letter_avatar_proxy/v4/letter/p/b2d939/32.png) [@pcuci](https://forum.45homelab.com/u/pcuci)\
**Post date:** [November 28, 2023, 2:15pm UTC](https://forum.45homelab.com/t/prototype-cloud-builder-spreadsheet/689/7 "2023-11-28T14:15:13Z")

</div>

[500 lines of code later…]

> [@Glitch3dPenguin](#):
>
> My sheet are just fans

Hi @Glitch3dPenguin - I remixed your fans list into: [Cloud Builder - Google Sheets](https://docs.google.com/spreadsheets/d/1eLyMbh0iuax6rOilh444H7ivbZ1AmLGtAqWhrUZA-yA/edit#gid=1131537313) (just know that if you change your columns, it’ll break my imports 🤪)

Just for fun, I’m using [your home lab](https://forum.45homelab.com/t/deployed-my-hl15/751) to test this compatibility-checker prototype spreadsheet; which still needs some work to move out of ‘alpha’ 😃

 ![image](https://forum.45homelab.com/uploads/default/original/1X/2d9e69eacbcacfe1225b0120ede8f00b54324008.png)

Your cluster turns out to be too big for my current prototype, and Google Spreadsheets Apps Scripts is too slow—I hit the 30 seconds processing time limit

![image](https://forum.45homelab.com/uploads/default/original/1X/fe3b9fb5bc10b1372465d9e004c322dbfc81b0db.png)

If anyone has ideas what I could optimize, and how, here’s the code (the interesting bits being): [Code.js · main · deposition.cloud / Infrastructure / Compute / Metal · GitLab](https://gitlab.com/deposition.cloud/infra/compute/metal/-/blob/main/Code.js?ref_type=heads#L258-294)

What’s happening is we inflate objects (could be a “Build” or a “Cluster”) with details from related subcomponent sheets (say, “Memory”, “CPU”, or “Motherboard”) if those exist, then we run these compatibility check functions to determine the drop down lists for each sub-component type, i.e.: only list compatible options given all other already selected sub-components.

Speaking of which…

What compatibility checks does everyone here do, that I should definitely not overlook?

Technically, I’m trying to de-risk purchasing incompatible components, whilst planning upgradable paths for this project: [HL15 for intensive compute + memory](https://forum.45homelab.com/t/hl15-for-intensive-compute-memory/228)

> [@SpringerSpaniel](#):
>
> I tend to put everything into [NetBox](https://netbox.dev/)

Great idea to feed the equipment, once purchased, into a DCIM!
