[{"content":"Overview Personal documentation for my homelab infrastructure. This documentation contains a consolidated overview of infrastructure, network topology and links to installation scripts.\nHardware GeeekPi DeskPi RackMate T1 Lenovo ThinkCentre M920x, i5-9400T, 16 GB RAM, 256 GB NVMe (lv-426) Lenovo ThinkCentre M920x, i5-8500, 16 GB RAM, 256 GB NVMe (lv-223) Lenovo ThinkCentre M920x, i3-8100, 16 GB RAM, 256 GB NVMe (lv-178) Raspberry Pi 3B + HiFiBerry AMP+ Raspberry Pi 2B Cloud Gateway Ultra USW Flex Mini U7 Lite AP The top ThinkCentre is my WFH-computer and not part of the homelab. Network Gateway/router/firewall: 192.168.1.1\nSegment Hostname IP / Port Function / Type VLAN 1 ha.deef.dk 192.168.1.103:8123 Home Assistant VLAN 1 lv-426.deef.dk 192.168.1.10:8006 Proxmox Initial Node VLAN 1 lv-223.deef.dk 192.168.1.11:8006 Proxmox Node VLAN 1 lv-178.deef.dk 192.168.1.12:8006 Proxmox Node VLAN 1 moode.deef.dk 192.168.1.248:80 Moode Audio VLAN 1 nginx.deef.dk 192.168.1.204:81 Proxy Manager VLAN 1 pi-hole.deef.dk 192.168.1.127:80 Ad Blocking VLAN 1 pi-hole2.deef.dk 192.168.1.130:80 Ad Blocking VLAN 10 - 192.168.10.204 IoT Device VLAN 10 - 192.168.10.104 IoT Device VLAN 10 - 192.168.10.44 IoT Device Pi-hole I\u0026rsquo;ve installed Pi-hole on two devices. By running two instances, I ensure that ad-blocking and local DNS resolution remain active even if one device goes offline or restarts.\nFor the Raspberry Pi, install with following commands:\ngit clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole cd \u0026#34;Pi-hole/automated install/\u0026#34; sudo bash basic-install.sh TEST\nFor the Proxmox node, install with Proxmox community helper script below.\nbash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pihole.sh)\u0026#34; Assign 192.168.1.127 and 192.168.1.130 as the primary and secondary DNS servers on your router.\nAdding the local DNS records to both pi-holes instances. Notice the local DNS records all point to the Nginx Proxy Manager IP-address, which will handle the requests.\nNginx Proxy Manager Install with Proxmox community helper script below.\nbash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/nginxproxymanager.sh)\u0026#34; Setting up the DNS records on Cloudflare.\n;Type Name Content Proxy A deef.dk 192.168.1.204 DNS Only - reverse IP CNAME *deef.dk deef.dk DNS Only Configuring Let\u0026rsquo;s Encrypt SSL Certificate: Add your first Proxy Host. Tip:\nSometimes depending on the service you\u0026rsquo;re proxying, you may need to play around with the settings. For example, Home Assistant requires you to select WebSocket Support. And sometimes the scheme needs to be set to http instead of https.\nSelect the SSL certificate you previously created. You should now be able to access your services without using the IP-addresses. No more site not secure warnings and easy rememberable URLs like ha.deef.dk.\nEverything is set up to run locally. If you do a nslookup on ha.deef.dk, you will only see the local IP-address, not the external IP-address. Even if you\u0026rsquo;re trying to access the service from outside your local network.\nCloudflare acts as a reverse proxy and handles TLS termination. If you don\u0026rsquo;t have a domain, you can use a free service like DuckDNS.\nHome Assistant HA is installed as a VM on Proxmox with this helper script.\nbash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/haos-vm.sh\u0026#34; For Home Assistant to work with reverse proxy, you need to add the following to the configuration.yaml file.\n# configuration.yaml http: use_x_forwarded_for: true trusted_proxies: - 192.168.1.204 # \u0026lt;- Your reverse proxy IP here My Home Assistant dashboard fits perfectly on a older iPad I got for cheap. Click here to see the full HA Dashboard YAMLtype: sections icon: mdi:button-pointer cards: [] badges: [] subview: false show_icon_and_title: true max_columns: 2 sections: - type: grid cards: - square: true type: grid cards: - show_name: true show_icon: true type: button entity: switch.moode_socket_1 show_state: true color: green name: HELL icon: mdi:monitor - show_name: true show_icon: true type: button entity: switch.moode_player_socket_1 show_state: true color: green name: moOde icon: mdi:music columns: 2 grid_options: rows: 4 columns: 12 - type: heading icon: mdi:server-network badges: - type: entity show_state: true show_icon: true entity: sensor.cpu_total_proxmox state_content: state icon: mdi:cpu-64-bit color: white - type: entity show_state: true show_icon: true entity: sensor.ram_total icon: mdi:memory state_content: state color: white - type: entity show_state: true show_icon: true entity: switch.proxmox_socket_1 color: green - type: entity show_state: true show_icon: false entity: sensor.cluster_uptime heading_style: title grid_options: rows: auto columns: full - type: statistics-graph entities: - entity: sensor.192_168_1_10_package_id_0_temperature name: lv-426 color: deep-orange - entity: sensor.192_168_1_11_package_id_0_temperature name: lv-223 color: red - entity: sensor.192_168_1_12_package_id_0_temperature name: lv-178 color: accent days_to_show: 5 period: day chart_type: bar stat_types: - mean hide_legend: false expand_legend: false logarithmic_scale: false energy_date_selection: false - square: false type: grid columns: 3 cards: - type: tile entity: sensor.192_168_1_10_package_id_0_temperature name: lv-426 icon: mdi:thermometer color: deep-orange show_entity_picture: false hide_state: false vertical: false features: - type: trend-graph hours_to_show: 24 detail: false features_position: bottom - type: tile entity: sensor.192_168_1_11_package_id_0_temperature name: lv-223 icon: mdi:thermometer color: red show_entity_picture: false hide_state: false vertical: false features: - type: trend-graph hours_to_show: 24 detail: false features_position: bottom - type: tile entity: sensor.192_168_1_12_package_id_0_temperature name: lv-178 icon: mdi:thermometer color: accent show_entity_picture: false hide_state: false vertical: false features: - type: trend-graph hours_to_show: 24 detail: false features_position: bottom - type: grid cards: - show_current: true show_forecast: true type: weather-forecast entity: weather.forecast_home forecast_type: hourly forecast_slots: 7 round_temperature: true grid_options: columns: 12 rows: 4 secondary_info_attribute: wind_speed - type: heading icon: mdi:flash heading_style: title badges: - type: entity show_state: true show_icon: true entity: sensor.proxmox_total_energy color: purple - type: entity show_state: true show_icon: true entity: sensor.moode_player_total_energy color: green - type: entity show_state: true show_icon: true entity: sensor.moode_total_energy color: primary - type: entity show_state: true show_icon: true entity: sensor.total_power_usage state_content: state name: Total icon: \u0026#34;\u0026#34; - type: statistics-graph entities: - entity: sensor.proxmox_total_energy name: Proxmox Cluster color: purple - entity: sensor.moode_player_total_energy name: moOde Player color: green - entity: sensor.moode_total_energy name: HELL color: cyan days_to_show: 5 period: day chart_type: bar stat_types: - change hide_legend: false expand_legend: false logarithmic_scale: false energy_date_selection: false - square: false type: grid columns: 3 cards: - type: tile entity: sensor.proxmox_power name: Proxmox icon: mdi:thermometer color: purple show_entity_picture: false hide_state: false vertical: false features: - type: trend-graph hours_to_show: 24 detail: false features_position: bottom - type: tile entity: sensor.moode_player_power name: moOde icon: mdi:thermometer color: green show_entity_picture: false hide_state: false vertical: false features: - type: trend-graph hours_to_show: 24 detail: false features_position: bottom - type: tile entity: sensor.moode_power name: HELL icon: mdi:thermometer color: cyan show_entity_picture: false hide_state: false vertical: false features: - type: trend-graph hours_to_show: 24 detail: false features_position: bottom dense_section_placement: false footer: {} Resources Proxmox VE Home Assistant HA Proxmox Helper Script Nginx Proxy Manager NPM Proxmox Helper Script Pi-hole Pi-hole Proxmox Helper Script Conclusion This post got a bit long, but having separated posts about my homelab just didn\u0026rsquo;t make sense, so I decided to put everything in one post. I don\u0026rsquo;t always write into detail, but I hope you find at least some of it useful.\n","permalink":"https://deef.dev/posts/homelab/","summary":"\u003ch2 id=\"overview\"\u003eOverview\u003c/h2\u003e\n\u003cp\u003ePersonal documentation for my homelab infrastructure. This documentation contains a consolidated overview of infrastructure, network topology and links to installation scripts.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"hardware\"\u003eHardware\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003eGeeekPi DeskPi RackMate T1\u003c/li\u003e\n\u003cli\u003eLenovo ThinkCentre M920x, i5-9400T, 16 GB RAM, 256 GB NVMe (lv-426)\u003c/li\u003e\n\u003cli\u003eLenovo ThinkCentre M920x, i5-8500, 16 GB RAM, 256 GB NVMe (lv-223)\u003c/li\u003e\n\u003cli\u003eLenovo ThinkCentre M920x, i3-8100, 16 GB RAM, 256 GB NVMe (lv-178)\u003c/li\u003e\n\u003cli\u003eRaspberry Pi 3B + HiFiBerry AMP+\u003c/li\u003e\n\u003cli\u003eRaspberry Pi 2B\u003c/li\u003e\n\u003cli\u003eCloud Gateway Ultra\u003c/li\u003e\n\u003cli\u003eUSW Flex Mini\u003c/li\u003e\n\u003cli\u003eU7 Lite AP\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"/images/my-homelab.jpg\" title=\"My Homelab\"\u003e\u003cimg alt=\"My Homelab\" loading=\"lazy\" src=\"/images/my-homelab.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e","title":"Homelabbing"},{"content":"This is a placeholder for the about me page. I will fill this in with more details about myself, my work, and my interests soon.\nStay tuned for updates!\nbody { background: red; } ","permalink":"https://deef.dev/about/","summary":"\u003cp\u003eThis is a placeholder for the about me page. I will fill this in with more details about myself, my work, and my interests soon.\u003c/p\u003e\n\u003cp\u003eStay tuned for updates!\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-css\" data-lang=\"css\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ebackground\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ered\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"About"},{"content":"Introduction This is my first post. Website is made with Hugo and the theme is PaperMod.\n","permalink":"https://deef.dev/posts/my-first-post/","summary":"\u003ch2 id=\"introduction\"\u003eIntroduction\u003c/h2\u003e\n\u003cp\u003eThis is my first post. Website is made with \u003ca href=\"https://gohugo.io/\"\u003eHugo\u003c/a\u003e and the theme is \u003ca href=\"https://github.com/adityatelange/hugo-PaperMod\"\u003ePaperMod\u003c/a\u003e.\u003c/p\u003e","title":"My First Post"}]