ping -c 3 100.100.0.1 # Ping another node on the tailnet
```
You should see a `100.100.x.x` IP assigned.
---
## Nebra CM3 Gateway (ARM/Raspberry Pi)
Same as Linux above. The install script auto-detects ARM.
```bash
# Install
curl -fsSL https://tailscale.com/install.sh | sh
# Join — use the reusable nebra preauthkey
tailscale up \
--login-server=https://vpn.idahomesh.com \
--authkey=<NEBRA_PREAUTHKEY> \
--hostname=<GATEWAY_NAME>
```
**Naming convention for Nebra gateways:**
| Gateway | Hostname |
|---------|----------|
| Burley Butte | `burley-butte` |
| Picabo | `picabo` |
| AIDA-NEBRA | `aida-nebra` |
### Enable Tailscale on boot
Tailscale installs as a systemd service and starts on boot automatically. Confirm:
```bash
systemctl is-enabled tailscaled
# Should output: enabled
```
---
## Windows
### Install
Download and install Tailscale from: https://tailscale.com/download/windows
### Join
Open **PowerShell as Administrator:**
```powershell
tailscale up --login-server=https://vpn.idahomesh.com `
--authkey=<YOUR_PREAUTHKEY> `
--hostname=<DEVICE_NAME>
```
### Verify
```powershell
tailscale status
tailscale ip -4
```
---
## macOS
### Install
Download and install Tailscale from: https://tailscale.com/download/mac
Or via Homebrew:
```bash
brew install tailscale
```
### Join
```bash
tailscale up \
--login-server=https://vpn.idahomesh.com \
--authkey=<YOUR_PREAUTHKEY> \
--hostname=<DEVICE_NAME>
```
### Verify
```bash
tailscale status
tailscale ip -4
```
---
## Android
1. Install Tailscale from **F-Droid** (recommended — supports custom servers) or Google Play
2. Open Tailscale → tap the three-dot menu → **Use custom coordination server**
3. Enter: `https://vpn.idahomesh.com`
4. Authenticate (it will open a browser if no authkey is used)
> **Note:** The Google Play version may not support custom coordination servers. Use the F-Droid build if the option is missing.
---
## iOS
1. Install Tailscale from the App Store
2. Open Tailscale → Settings → **Use Alternate Server**
3. Enter: `https://vpn.idahomesh.com`
4. Authenticate via browser
> **Note:** iOS support for custom Headscale servers can be limited. If the option is unavailable, use the CLI on another device and share connectivity via subnet routing.
---
## Verification Checklist
Run from the newly joined device:
```bash
echo "=== IdahoMesh VPN Check ==="
echo "Hostname: $(hostname)"
echo "Tailscale IP: $(tailscale ip -4 2>/dev/null || echo 'N/A')"
echo "Status: $(tailscale status --self 2>/dev/null | head -1 || echo 'NOT CONNECTED')"