Every time a Raspberry Pi reboots, your router's DHCP server may hand it a new IP address. For a hobby project, this is harmless. For a server hosting your donation form, your file share, or your facility monitoring dashboard, it is a liability. A changing address breaks bookmarks, kills SSH scripts, and confuses volunteers who were told yesterday to visit 192.168.1.42. Static IP addresses are the bedrock of stable infrastructure, and they cost nothing to configure.
Why Dynamic Addresses Fail Nonprofits
Volunteer teams are often distributed: one person maintains the website from home, another checks sensor dashboards from the garden, a third reboots the server from the office. When the server's IP shifts, every playbook, bookmark, and automated backup script breaks simultaneously. The volunteer who set it up may not be available to rediscover the new address. A planned afternoon of updates turns into a networking scavenger hunt.
Static IPs eliminate that fragility. They let you write firewall rules that persist across reboots. They let you configure port forwarding on your router once, not weekly. They let you document the network topology on paper and trust it will still be accurate six months later.
Two Reliable Methods
Modern Raspberry Pi OS (Bookworm and newer) uses NetworkManager instead of the old dhcpcd system. The cleanest configuration is through the nmcli command-line tool or the nmtui text-menu interface.
Method 1: nmcli (Recommended for Repeatability)
Identify your connection name:
nmcli connection show
Look for your active interface, typically Wired connection 1 or wlan0. Modify it to use a static IP:
The address 192.168.1.50/24 uses CIDR notation (a shorthand for IP ranges — 192.168.1.0/24 covers all 256 addresses from .0 to .255) to specify both the IP and the subnet mask.
sudo nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses 192.168.1.50/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "1.1.1.1,1.0.0.1"
Reactivate the connection:
sudo nmcli connection down "Wired connection 1"
sudo nmcli connection up "Wired connection 1"
Verify:
ip addr show
You should see your chosen address assigned to the interface.
Method 2: nmtui (User-Friendly for Beginners)
For volunteers who prefer menus over commands:
sudo nmtui
Navigate to Edit a connection, select your interface, and change IPv4 CONFIGURATION from <Automatic> to <Manual>. Enter:
- Addresses:
192.168.1.50/24 - Gateway:
192.168.1.1 - DNS servers:
1.1.1.1, 1.0.0.1
Quit and restart the interface. The change persists across reboots.
Choosing the Right Address
Pick an address outside your router's DHCP lease pool. Most home and small-office routers assign addresses starting at .100 or .2. A safe static zone is .50 through .99 or .200 through .254. Consult your router's admin panel to confirm the pool range.
Reserve the chosen address on your router as well. Log into the router, find the DHCP reservations or static lease table, and map the Pi's MAC address (a unique hardware identifier assigned to every network interface) to the IP you selected. This prevents the router from accidentally assigning that address to a visiting laptop.
Documenting the Network
Print a simple network map and tape it inside the server cabinet. Include:
| Device | Static IP | MAC Address | Purpose |
|---|---|---|---|
| Web Server Pi | 192.168.1.50 | xx:xx:xx:xx:xx:xx |
Website + Forum |
| Monitoring Pi | 192.168.1.51 | xx:xx:xx:xx:xx:xx |
Grafana + Sensors |
| Git Server Pi | 192.168.1.52 | xx:xx:xx:xx:xx:xx |
Code + Docs |
| Router | 192.168.1.1 | — | Gateway + DNS |
Update the MAC addresses with the output of ip link show on each Pi. This single sheet of paper outlasts every volunteer rotation and every forgotten password.
IPv6 Considerations
If your ISP provides IPv6 addresses, consider disabling IPv6 on internal-only servers to simplify firewalling, or assign static IPv6 addresses using the same nmcli syntax with ipv6.method manual. For most small nonprofits, IPv4 static addressing is sufficient and easier to troubleshoot.
Training the Next Administrator
When onboarding a new technical volunteer, assign them one task: add a new static IP to a test Pi using nmtui, then break it and fix it. The trial-and-error burns the procedure into memory better than reading documentation. After they succeed, have them update the printed network map with their own handwriting. Ownership of the documentation creates ownership of the system.
Why This Matters for Nonprofits
Reliability is respect. A community member who tries to register for a program and finds the website unreachable because the server's IP changed overnight does not blame the router—they blame your organization. Static addressing is a ten-minute investment that prevents weeks of accumulated confusion. It is the difference between infrastructure that volunteers trust and infrastructure they quietly stop using because "it never works when I try." Stability is a service in itself.