{"id":329,"date":"2025-09-01T19:20:46","date_gmt":"2025-09-01T23:20:46","guid":{"rendered":"https:\/\/blog.alawrence.net\/?p=329"},"modified":"2025-09-01T19:20:48","modified_gmt":"2025-09-01T23:20:48","slug":"home-lab-growing","status":"publish","type":"post","link":"https:\/\/blog.alawrence.net\/?p=329","title":{"rendered":"Home Lab Growing"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">It&#8217;s been two moves, and I&#8217;m looking at another move before Christmas, since my last post. The topic of this post is going back to my roots a bit. I have always enjoyed a home lab, and having bare metal to run on is my preference. So, prior to my move this fall, working with ChatGPT and watching a ton of YouTube videos on home lab&#8217;ing; I (we, can we say we?) came up with the idea of instead of 400W massive Dell r7xx, why not go with micro form factor machines. They sip power (35W), and take up far less space, and  are so much quieter. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Off to eBay I went and found an off lease 20 lot of Dell Micro 7040&#8217;s with no hard drive or ram. They wanted 500 bucks, and I offered 300, and won the auction, so just under 400 bucks taxes and shipping, a massive box arrived with all 20 of them. Plus some power supplies, the next day, another box of just power supplies showed up. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"375\" src=\"https:\/\/blog.alawrence.net\/wp-content\/uploads\/2025\/09\/s-l500.jpg\" alt=\"\" class=\"wp-image-330\" srcset=\"https:\/\/blog.alawrence.net\/wp-content\/uploads\/2025\/09\/s-l500.jpg 500w, https:\/\/blog.alawrence.net\/wp-content\/uploads\/2025\/09\/s-l500-300x225.jpg 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">I needed some parts to be able to test them. So, I ordered a 16 Gig DDR SODIMM from Memory Express for 50 dollars(<a href=\"https:\/\/www.memoryexpress.com\/Products\/MX00116745\">https:\/\/www.memoryexpress.com\/Products\/MX00116745<\/a>), and a 120Gig Patriot Blue SSD on amazon, it was 15 bucks. Oh, and a 128 gig usb-3 thumb drive to have a live Mint install on. This install of parts became the &#8220;Gold Standard&#8221;. After installing Mint on the SSD, I realized, I couldn&#8217;t pull apt updates or add anything that didn&#8217;t come in the base install of Linux, because these machines don&#8217;t include wifi or bluetooth, which in my dev environment, would be totally acceptable, but to get data on and off the machines, plus pull updates, I would need internet access. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There were a few options, grab a monitor, keyboard and mouse, and go downstairs to beside the model and plug directly in, but that would be too much effort, I realize I would only need to do that process twice, once at the start, and once at the end to pull the test files off (more on that later). So, amazon again for the win. I ordered a TP-link AC-1300 wifi USB adapter for 19 dollars, and arrived the next day. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This Labour Day weekend, after the final grass cutting of the year (I hope), I started testing them. I am using a script developed by ChatGPT and modified by me. You need to install a few nonstandard packages for the script to run, mainly &#8220;stress-ng&#8221;. Here is the code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env bash\n# Simple hardware sanity check for Dell OptiPlex 7040 Micro\n# Runs quick probes + short stress test and logs results.\n# other start up commands to install software, cut and paste into terminal\n# sudo apt update\n# sudo apt install -y stress-ng lm-sensors neofetch smartmontools pciutils usbutils\n# optional: iperf3 if you want a LAN throughput check\n# sudo apt install -y iperf3\n\n\n#!\/usr\/bin\/env bash\nset -u  # error on unset vars\n\n# --- functions ---\nlog() { echo -e \"$@\" | tee -a \"$LOG\"; }\nhr()  { log \"\\n================================================================\\n\"; }\n\n# --- timestamp + service tag for logfile ---\nTS=\"$(date +'%Y%m%d-%H%M%S')\"\nTAG=\"$(sudo dmidecode -s system-serial-number 2>\/dev\/null || hostname)\"\nTAG=\"${TAG\/\/ \/_}\"   # replace spaces with underscores\nLOG=\"labcheck-${TAG}-${TS}.log\"\n\n# --- header section ---\nlog \"Starting LABCHECK at $(date)\"\nlog \"Host: $(hostname)  User: $USER  Kernel: $(uname -r)\"\nlog \"Service Tag: $TAG\"\nhr\n\n\n\n# --- Basic ID \/ summary\nif command -v neofetch >\/dev\/null 2>&amp;1; then\n  neofetch --off | tee -a \"$LOG\"\nelse\n  log \"neofetch not found; skipping.\"\nfi\nhr\n\n# --- CPU \/ RAM quick look\nlog \"CPU INFO:\"\nlscpu | grep -E 'Model name|CPU\\(s\\)|Thread|MHz|Vendor' | tee -a \"$LOG\"\nlog \"\\nMEMORY:\"\nfree -h | tee -a \"$LOG\"\nhr\n\n# --- Storage (controllers + drives)\nlog \"STORAGE (controllers):\"\nlspci | grep -Ei 'sata|nvme|storage' | tee -a \"$LOG\"\n\nlog \"\\nBLOCK DEVICES:\"\nlsblk -o NAME,TYPE,SIZE,MODEL,TRAN | tee -a \"$LOG\"\n\n\n# SMART (needs sudo)\nfor dev in \/dev\/sd? \/dev\/nvme?n?; do\n  &#91; -e \"$dev\" ] || continue\n  log \"\\nSMART for $dev:\"\n  sudo smartctl -H \"$dev\" 2>\/dev\/null | tee -a \"$LOG\"\ndone\nhr\n\n# --- Network\nlog \"NETWORK CONTROLLERS:\"\nlspci | grep -Ei 'ethernet|network' | tee -a \"$LOG\"\n\n# Try to identify Intel NIC and link speed\nIFACE=\"$(ip -o link show | awk -F': ' '{print $2}' | grep -E '^(e|en)' | head -n1 || true)\"\nif &#91; -n \"${IFACE:-}\" ]; then\n  log \"\\nPRIMARY IFACE: $IFACE\"\n  ip addr show \"$IFACE\" | tee -a \"$LOG\"\n  if command -v ethtool >\/dev\/null 2>&amp;1; then\n    log \"\\nETHTOOL:\"\n    sudo ethtool \"$IFACE\" 2>\/dev\/null | tee -a \"$LOG\"\n  else\n    log \"Install ethtool for link speed:  sudo apt install -y ethtool\"\n  fi\nelse\n  log \"No ethernet interface detected by ip link.\"\nfi\nhr\n\n# --- USB sanity (ports present \/ enumerate)\nlog \"USB DEVICES:\"\nlsusb | tee -a \"$LOG\"\nhr\n\n# --- Sensors \/ temps\nlog \"SENSORS (temps\/voltages):\"\nif sensors >\/dev\/null 2>&amp;1; then\n  sensors | tee -a \"$LOG\"\nelse\n  log \"Run sensors-detect (sudo) once if needed, then re-run labcheck.\"\nfi\nhr\n\n# --- Quick stress test (CPU+RAM) ~ 2 minutes\nlog \"STRESS TEST (CPU+RAM) starting (120s)...\"\nif command -v stress-ng >\/dev\/null 2>&amp;1; then\n  # Use 4 CPU workers (i5-6500T has 4 cores), 1G VM load\n  stress-ng --cpu 4 --vm 2 --vm-bytes 1G --timeout 120s --metrics-brief 2>&amp;1 | tee -a \"$LOG\"\n  STRESS_RC=${PIPESTATUS&#91;0]}\nelse\n  log \"stress-ng not installed; skipping.\"\n  STRESS_RC=0\nfi\nhr\n\n# --- Quick pass\/fail heuristics\nPASS=1\n\n# Check RAM >= 15G if you\u2019re using a 16G stick (adjust if you test other sizes)\nMEM_GB=$(free -g | awk '\/Mem:\/ {print $2}')\nif &#91; -n \"${MEM_GB:-}\" ] &amp;&amp; &#91; \"$MEM_GB\" -lt 15 ]; then\n  log \"WARN: Detected &lt;15G RAM (reported ${MEM_GB}G)\"\n  PASS=0\nfi\n\n# Check NIC looks like Intel\nif lspci | grep -qi 'Intel.*Ethernet'; then\n  :\nelse\n  log \"WARN: No Intel Ethernet adapter detected in lspci output\"\n  PASS=0\nfi\n\n# Check at least one block device found\nif lsblk -dn -o NAME | grep -q .; then\n  :\nelse\n  log \"WARN: No block devices found by lsblk\"\n  PASS=0\nfi\n\n# Stress return code\nif &#91; \"${STRESS_RC:-0}\" -ne 0 ]; then\n  log \"WARN: stress-ng reported a non-zero exit status (${STRESS_RC})\"\n  PASS=0\nfi\n\n# --- Summary\nif &#91; \"$PASS\" -eq 1 ]; then\n  log \"\\nRESULT: ? PASS \u2014 hardware looks healthy.\"\nelse\n  log \"\\nRESULT: ??  CHECK \u2014 review warnings above in $LOG.\"\nfi\n\nlog \"\\nLog saved to: $LOG\"\necho<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once you have the file, and the utilities installed, you need to &lt;code> sudo chmod +x filename.sh &lt;\/code> to make it executable. Then it dumps to a file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Starting LABCHECK at Mon Sep  1 03:27:38 PM EDT 2025<br>Host: test-OptiPlex-7040  User: test  Kernel: 6.8.0-79-generic<br>Service Tag: HN63CH2<br><br>================================================================<br><br>\u001b[?25l\u001b[?7l\u001b[0m\u001b[1m\u001b[32m\u001b[1mtest\u001b[0m@\u001b[32m\u001b[1mtest-OptiPlex-7040\u001b[0m <br>\u001b[0m-----------------------\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mOS\u001b[0m\u001b[0m:\u001b[0m Linux Mint 22.1 x86_64\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mHost\u001b[0m\u001b[0m:\u001b[0m OptiPlex 7040\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mKernel\u001b[0m\u001b[0m:\u001b[0m 6.8.0-79-generic\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mUptime\u001b[0m\u001b[0m:\u001b[0m 52 mins\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mPackages\u001b[0m\u001b[0m:\u001b[0m 1854 (dpkg)\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mShell\u001b[0m\u001b[0m:\u001b[0m bash 5.2.21\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mResolution\u001b[0m\u001b[0m:\u001b[0m 3440x1440\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mDE\u001b[0m\u001b[0m:\u001b[0m Xfce 4.18\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mWM\u001b[0m\u001b[0m:\u001b[0m Xfwm4\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mWM Theme\u001b[0m\u001b[0m:\u001b[0m Mint-Y-Aqua\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mTheme\u001b[0m\u001b[0m:\u001b[0m Mint-L-Dark-Aqua [GTK2\/3]\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mIcons\u001b[0m\u001b[0m:\u001b[0m Mint-Y-Sand [GTK2\/3]\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mTerminal\u001b[0m\u001b[0m:\u001b[0m xfce4-terminal\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mTerminal Font\u001b[0m\u001b[0m:\u001b[0m Monospace 12\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mCPU\u001b[0m\u001b[0m:\u001b[0m Intel i5-6500T (4) @ 3.100GHz\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mGPU\u001b[0m\u001b[0m:\u001b[0m Intel HD Graphics 530\u001b[0m <br>\u001b[0m\u001b[32m\u001b[1mMemory\u001b[0m\u001b[0m:\u001b[0m 1415MiB \/ 15877MiB\u001b[0m <br><br>\u001b[C\u001b[30m\u001b[40m   \u001b[31m\u001b[41m   \u001b[32m\u001b[42m   \u001b[33m\u001b[43m   \u001b[34m\u001b[44m   \u001b[35m\u001b[45m   \u001b[36m\u001b[46m   \u001b[37m\u001b[47m   \u001b[m<br>\u001b[C\u001b[38;5;8m\u001b[48;5;8m   \u001b[38;5;9m\u001b[48;5;9m   \u001b[38;5;10m\u001b[48;5;10m   \u001b[38;5;11m\u001b[48;5;11m   \u001b[38;5;12m\u001b[48;5;12m   \u001b[38;5;13m\u001b[48;5;13m   \u001b[38;5;14m\u001b[48;5;14m   \u001b[38;5;15m\u001b[48;5;15m   \u001b[m<br><br><br>\u001b[?25h\u001b[?7h<br>================================================================<br><br>CPU INFO:<br>CPU(s):                               4<br>On-line CPU(s) list:                  0-3<br>Vendor ID:                            GenuineIntel<br>Model name:                           Intel(R) Core(TM) i5-6500T CPU @ 2.50GHz<br>Thread(s) per core:                   1<br>CPU(s) scaling MHz:                   84%<br>CPU max MHz:                          3100.0000<br>CPU min MHz:                          800.0000<br>NUMA node0 CPU(s):                    0-3<br><br>MEMORY:<br>               total        used        free      shared  buff\/cache   available<br>Mem:            15Gi       1.6Gi        13Gi       410Mi       1.4Gi        13Gi<br>Swap:          2.0Gi       1.0Mi       2.0Gi<br><br>================================================================<br><br>STORAGE (controllers):<br>00:17.0 RAID bus controller: Intel Corporation SATA Controller [RAID mode] (rev 31)<br><br>BLOCK DEVICES:<br>NAME   TYPE   SIZE MODEL                     TRAN<br>sda    disk 111.8G Patriot Burst Elite 120GB sata<br>??sda1 part     1M                           <br>??sda2 part   513M                           <br>??sda3 part 111.3G                           <br><br>SMART for \/dev\/sda:<br>smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.8.0-79-generic] (local build)<br>Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org<br><br>=== START OF READ SMART DATA SECTION ===<br>SMART overall-health self-assessment test result: PASSED<br><br><br>================================================================<br><br>NETWORK CONTROLLERS:<br>00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)<br><br>PRIMARY IFACE: enp0s31f6<br>2: enp0s31f6: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000<br>    link\/ether 48:4d:7e:e2:e8:f8 brd ff:ff:ff:ff:ff:ff<br><br>ETHTOOL:<br>Settings for enp0s31f6:<br>\tSupported ports: [ TP ]<br>\tSupported link modes:   10baseT\/Half 10baseT\/Full<br>\t                        100baseT\/Half 100baseT\/Full<br>\t                        1000baseT\/Full<br>\tSupported pause frame use: Symmetric Receive-only<br>\tSupports auto-negotiation: Yes<br>\tSupported FEC modes: Not reported<br>\tAdvertised link modes:  10baseT\/Half 10baseT\/Full<br>\t                        100baseT\/Half 100baseT\/Full<br>\t                        1000baseT\/Full<br>\tAdvertised pause frame use: Symmetric Receive-only<br>\tAdvertised auto-negotiation: Yes<br>\tAdvertised FEC modes: Not reported<br>\tSpeed: Unknown!<br>\tDuplex: Unknown! (255)<br>\tAuto-negotiation: on<br>\tPort: Twisted Pair<br>\tPHYAD: 2<br>\tTransceiver: internal<br>\tMDI-X: Unknown (auto)<br>\tSupports Wake-on: pumbg<br>\tWake-on: g<br>        Current message level: 0x00000007 (7)<br>                               drv probe link<br>\tLink detected: no<br><br>================================================================<br><br>USB DEVICES:<br>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<br>Bus 001 Device 002: ID 062a:7269 MosArt Semiconductor Corp. Full-Speed Mouse<br>Bus 001 Device 003: ID 2357:0138 TP-Link 802.11ac NIC<br>Bus 001 Device 004: ID 04f2:2159 Chicony Electronics Co., Ltd PERIBOARD-535 [Perixx Ergo Keyboard]<br>Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub<br><br>================================================================<br><br>SENSORS (temps\/voltages):<br>coretemp-isa-0000<br>Adapter: ISA adapter<br>Package id 0:  +41.0\u00b0C  (high = +84.0\u00b0C, crit = +100.0\u00b0C)<br>Core 0:        +42.0\u00b0C  (high = +84.0\u00b0C, crit = +100.0\u00b0C)<br>Core 1:        +40.0\u00b0C  (high = +84.0\u00b0C, crit = +100.0\u00b0C)<br>Core 2:        +42.0\u00b0C  (high = +84.0\u00b0C, crit = +100.0\u00b0C)<br>Core 3:        +41.0\u00b0C  (high = +84.0\u00b0C, crit = +100.0\u00b0C)<br><br>acpitz-acpi-0<br>Adapter: ACPI interface<br>temp1:        +27.8\u00b0C  <br>temp2:        +29.8\u00b0C  <br><br>pch_skylake-virtual-0<br>Adapter: Virtual device<br>temp1:        +57.0\u00b0C  <br><br><br>================================================================<br><br>STRESS TEST (CPU+RAM) starting (120s)...<br>stress-ng: info:  [5125] setting to a 2 mins, 0 secs run per stressor<br>stress-ng: info:  [5125] dispatching hogs: 4 cpu, 2 vm<br>stress-ng: info:  [5125] note: \/proc\/sys\/kernel\/sched_autogroup_enabled is 1 and this can impact scheduling throughput for processes not attached to a tty. Setting this to 0 may improve performance metrics<br>stress-ng: info:  [5125] note: 4 cpus have scaling governors set to powersave and this can impact on performance; setting \/sys\/devices\/system\/cpu\/cpu*\/cpufreq\/scaling_governor to 'performance' may improve performance<br>stress-ng: metrc: [5125] stressor       bogo ops real time  usr time  sys time   bogo ops\/s     bogo ops\/s<br>stress-ng: metrc: [5125]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)<br>stress-ng: metrc: [5125] cpu              379669    120.00    319.39      0.09      3163.88        1188.40<br>stress-ng: metrc: [5125] vm             10776523    120.04    129.18     29.65     89773.52       67850.36<br>stress-ng: info:  [5125] skipped: 0<br>stress-ng: info:  [5125] passed: 6: cpu (4) vm (2)<br>stress-ng: info:  [5125] failed: 0<br>stress-ng: info:  [5125] metrics untrustworthy: 0<br>stress-ng: info:  [5125] successful run completed in 2 mins, 0.05 secs<br><br>================================================================<br><br><br>RESULT: ? PASS \u2014 hardware looks healthy.<br><br>Log saved to: labcheck-HN63CH2-20250901-152738.log<br><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now it will test each machine, and dump it to a log file, and the file name will have the Dell Service Tag in it, which, each machine has the Service Tag on the side on the Dell sticker, so there is no doubt which machine is which. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some of my struggles with this project:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> BIOS\/ UEFI access never happened. Even after resetting the NVRAM and pulling the battery, no change. It did remove the netboot on start up. <\/li>\n\n\n\n<li>The hard drive sleds are old and brittle, so I broke one, that&#8217;s 8 bucks to replace on eBay. <\/li>\n\n\n\n<li>Getting the script to work, I&#8217;m not an expert on BASH, and ChatGPT can only get you so far, but in the end, I have a working script that tests the items I need\/ want to test. <\/li>\n\n\n\n<li>The time to swap ram\/ HD and run the script, it&#8217;s going to take a bit of time to test all 20 machines. <\/li>\n\n\n\n<li>Kitting them out for my Prod\/ Dev Environment, that is going to cost money. Ram and HD&#8217;s aren&#8217;t cheap. <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Overall, fun project that will keep me busy for a few weeks testing the computers. I have already given a few away to some of the IT guys are the office. I really don&#8217;t need 20 micro&#8217;s. Hopefully they all pass the testing, and I&#8217;ll have a nice collection of bare metal devices to use how ever I see fit. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The ideas right now are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Proxmox cluster<\/li>\n\n\n\n<li>SDR node &#8211; NOAA downlink processor\/ weather station data clearing machine<\/li>\n\n\n\n<li>Pi-hole style firewall appliance <\/li>\n\n\n\n<li>Docker \/ Containers \/ Kubernetes \/ Clustered computing <\/li>\n\n\n\n<li>Running VM&#8217;s to support or augment the ideas above.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">So, that&#8217;s where we are, one gold standard install of Mint, two computers tested, and 18 more to go. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Have a great remainder of your long weekend folk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Drew<br>sysadmin@alawrence.net <\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been two moves, and I&#8217;m looking at another move before Christmas, since my last post. The topic of this post is going back to my roots a bit. I have always enjoyed a home lab, and having bare metal to run on is my preference. So, prior to my move this fall, working with&#8230; <\/p>\n<div class=\"read-more navbutton\"><a href=\"https:\/\/blog.alawrence.net\/?p=329\">Read More<i class=\"fa fa-angle-double-right\"><\/i><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"yes","rop_publish_now_accounts":[],"rop_publish_now_history":[],"rop_publish_now_status":"pending","footnotes":""},"categories":[35],"tags":[305,310,308,281,304,41,29,306,44,307,303,309],"class_list":["post-329","post","type-post","status-publish","format-standard","hentry","category-computers","tag-305","tag-bash","tag-chatgpt","tag-computers","tag-dell","tag-ebay","tag-geeks","tag-homelab","tag-installing","tag-micro-computers","tag-mint","tag-scripting"],"_links":{"self":[{"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=\/wp\/v2\/posts\/329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=329"}],"version-history":[{"count":2,"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=\/wp\/v2\/posts\/329\/revisions"}],"predecessor-version":[{"id":332,"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=\/wp\/v2\/posts\/329\/revisions\/332"}],"wp:attachment":[{"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alawrence.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}