--- tags: - Documentation - Bookstack - Notes --- # Home-Lab Environment # Environment Documentation I have standardized your domain listings into a clean table, removed the empty unassigned IP rows to reduce clutter (while keeping your standard sequential block visible), and extracted the miscellaneous Windows 10 license key into a dedicated, secure metadata section so it doesn't skew your networking tables. # Home-Lab Environment Documentation ## 1. Public Domains & External Servers This table tracks external public-facing domains, their current A-record IP destinations, and hosting providers.
**Domain Name****Target IP Address****Host / Provider****Status / Notes**
`mcfetridge.us`129.213.86.62Oracle ServerActive
`mikemcfetridge.com`75.152.47.1HomeActive
`mmcfetridge.net`216.144.227.142RackNerd ServerActive
`mmcfetridge.xyz`107.175.245.171*N/A*Deprecated / Not used anymore
## 2. Local IP Asset Management (Subnet: `192.168.2.0/24`) This mapping tracks internal static IPs, infrastructure hosts, container stacks, and active client hardware. ### Infrastructure & Server Hosts
**IP Address****Server Name****Applications****Functional Comments**
**192.168.2.1**PVEProxmoxMain Proxmox Virtualization Environment
**192.168.2.2**PVE2ProxmoxSecondary Proxmox Node (Cluster/Failover)
**192.168.2.3**docker-prod-01DockerProduction Docker environment
**192.168.2.4**pangolin*None Listed*Assigned host
**192.168.2.5**Domain LockerDocker MonitoringContainer ecosystem tracking & monitoring
### Network Services & Core Stacks
**IP Address****Server Name****Applications****Functional Comments**
**192.168.2.8**Pi-HoleAd-blocking / DNSNetwork-wide ad blocker
**192.168.2.9**TECHNITIUMDNS-SERVERDNSLocal authoritative DNS Server
**192.168.2.10**ArrStackMedia ManagementAutomation stack
**192.168.2.12**linkwardenlwWeb bookmark and internet link management
**192.168.2.15**docker-deployCI/CD DeployerDedicated environment for deployments
**192.168.2.19**VAULTWARDEN-SERVERPasswordsSelf-hosted Bitwarden backend (Password Server)
### End-User Devices & Client Leases
**IP Address****Device Name****Device Type****Functional Comments**
**192.168.2.248**My iPadTabletPersonal client
**192.168.2.249**My LaptopLaptopPrimary workstation
> 💡 **Note:** IP addresses `192.168.2.6` through `192.168.2.7`, `192.168.2.11`, `192.168.2.13` through `192.168.2.14`, `192.168.2.16` through `192.168.2.18`, and `192.168.2.20` through `192.168.2.30` are currently unassigned and reserved for future static scaling. ## 3. Network Security & Trusted Subnets (CIDR) The following blocks are designated as **Trusted IP CIDRs** within internal firewall and reverse proxy definitions. - `127.0.0.0/8` — Localhost loopback network - `10.0.0.0/8` — Class A Private network space - `172.16.0.0/12` — Class B Private network space (Commonly used by internal Docker bridges) - `192.168.0.0/22` — Covers local scopes from `192.168.0.0` through `192.168.3.255` ## 4. Environment Metadata & Licenses > 🔑 **Windows 10 Pro Generic KMS / Setup Key:** > `W269N-WFGWX-YVC9B-4J6C9-T83GX` # 🌐 Configuring Dynamic DNS (DDNS) with ddclient and Namecheap This guide walks you through installing and configuring `ddclient` on Ubuntu to automatically update your Namecheap domain with your network's public IP address. ## 1. Installation Install the `ddclient` utility from the standard package manager:
Bash
``` sudo apt update && sudo apt install ddclient -y ```
> 💡 **Note:** During the installation, a text-based setup wizard will appear in your terminal. You can safely select **"Other"** when prompted for a provider and cycle through the defaults. We will completely overwrite these wizard settings manually in the next step. ## 2. Configuration Open the configuration file using the `nano` text editor:
Bash
``` sudo nano /etc/ddclient.conf ```
Completely clear any auto-generated text and replace it with the following clean, accurate configuration block for Namecheap:
Ini, TOML
``` # Configuration for Namecheap Dynamic DNS protocol=namecheap server=dynamicdns.park-your-domain.com use=web, web=https://api.ipify.org login=mikemcfetridge.com password='your_namecheap_ddns_password' @ ```
### 📋 Configuration Breakdown: - **`server`**: Points directly to Namecheap's dedicated dynamic DNS handling infrastructure. - **`use=web`**: Tells the client to fetch your external public IP using a web lookup utility (`ipify.org`) rather than checking your local router or network interface directly. - **`login`**: Your root registered domain name. - **`password`**: The unique, long alphanumeric DDNS password/token generated inside your Namecheap domain dashboard (this is *not* your Namecheap account password). - **`@`**: Instructs `ddclient` to update the root domain apex itself. *(If you wanted to update a subdomain like `vpn.mikemcfetridge.com`, you would replace `@` with `vpn`).* Save the file by pressing `CTRL + O`, then hit `Enter`, and exit the editor by pressing `CTRL + X`. ## 3. Managing the Service Enable and start the background daemon process so that your system tracks and updates your IP automatically on reboots:
Bash
``` # Enable the service to start automatically on system boot sudo systemctl enable ddclient # Start the service right now sudo systemctl start ddclient # Check the running operational status of the service sudo systemctl status ddclient ```
## 4. Verification and Debugging To verify that your configuration is error-free and successfully communicating with Namecheap's servers, run a manual forced update simulation with verbose logging enabled:
Bash
``` sudo ddclient -daemon=0 -debug -verbose -noquiet -force ```
### Expected Output Your terminal will print comprehensive initialization flags. Scroll down to the bottom of the output stream and verify that you see a `SUCCESS` confirmation similar to this:
Plaintext
``` opt{daemon} : 0 opt{debug} : 1 ... RECEIVE: RECEIVE: SUCCESS: updating @: good: IP address set to 174.179.116.220 ```
If you see `SUCCESS: updating @: good`, your settings are valid, and `ddclient` is safely maintaining your public IP routing mapping behind the scenes!