Skip to content

Commit 46b1879

Browse files
docs: standardize example IPs to RFC 5737 documentation ranges
Replace all 10.0.0.x private IPs with RFC 5737 documentation IPs (192.0.2.x, 198.51.100.x) across 30 files. Also update env var reference page to link to unified secrets management docs. RFC 5737 IPs are reserved for documentation and will never conflict with real infrastructure, making examples safe to copy-paste.
1 parent 2a804fb commit 46b1879

30 files changed

Lines changed: 84 additions & 84 deletions

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ services:
6060
- DNSWEAVER_INTERNAL_DNS_TOKEN_FILE=/run/secrets/technitium_token
6161
- DNSWEAVER_INTERNAL_DNS_ZONE=home.example.com
6262
- DNSWEAVER_INTERNAL_DNS_RECORD_TYPE=A
63-
- DNSWEAVER_INTERNAL_DNS_TARGET=10.0.0.100
63+
- DNSWEAVER_INTERNAL_DNS_TARGET=192.0.2.100
6464
- DNSWEAVER_INTERNAL_DNS_DOMAINS=*.home.example.com
6565
volumes:
6666
- /var/run/docker.sock:/var/run/docker.sock:ro
@@ -90,7 +90,7 @@ flowchart LR
9090
2. dnsweaver extracts the hostname and matches it against configured provider domain patterns
9191
9292
3. The matching provider creates the DNS record:
93-
- **A record**: `myapp.home.example.com → 10.0.0.100`
93+
- **A record**: `myapp.home.example.com → 192.0.2.100`
9494
- **CNAME**: `myapp.example.com → proxy.example.com`
9595

9696
4. When the container stops (or the Kubernetes resource is deleted), the DNS record is automatically cleaned up
@@ -130,7 +130,7 @@ metadata:
130130
name: my-app
131131
annotations:
132132
dnsweaver.dev/record-type: "A"
133-
dnsweaver.dev/target: "10.0.0.100"
133+
dnsweaver.dev/target: "192.0.2.100"
134134
spec:
135135
rules:
136136
- host: app.example.com
@@ -149,7 +149,7 @@ environment:
149149
# Internal: Technitium → private IP
150150
- DNSWEAVER_INTERNAL_TYPE=technitium
151151
- DNSWEAVER_INTERNAL_RECORD_TYPE=A
152-
- DNSWEAVER_INTERNAL_TARGET=10.0.0.100
152+
- DNSWEAVER_INTERNAL_TARGET=192.0.2.100
153153
- DNSWEAVER_INTERNAL_DOMAINS=*.example.com
154154
155155
# External: Cloudflare → tunnel CNAME
@@ -160,7 +160,7 @@ environment:
160160
```
161161

162162
With this configuration, when `app.example.com` starts:
163-
- Internal DNS → `A` record → `10.0.0.100`
163+
- Internal DNS → `A` record → `192.0.2.100`
164164
- External DNS → `CNAME` record → `tunnel.example.com`
165165

166166
## Contributing

docs/config.example.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ providers:
110110
- "*.internal.example.com"
111111
- "*.home.example.com"
112112
record_type: A # A, AAAA, or CNAME
113-
target: 10.0.0.100 # Where to point DNS records (your load balancer/gateway IP)
113+
target: 192.0.2.100 # Where to point DNS records (your load balancer/gateway IP)
114114
ttl: 300 # TTL in seconds
115115
mode: managed # managed, authoritative, or additive
116116
config:
@@ -152,7 +152,7 @@ providers:
152152
domains:
153153
- "*.custom.example.com"
154154
record_type: A
155-
target: 10.0.0.50
155+
target: 192.0.2.50
156156
config:
157157
url: https://webhook.example.com/dns
158158
auth_header: X-API-Key
@@ -167,7 +167,7 @@ providers:
167167
# domains:
168168
# - "*.rfc.example.com"
169169
# record_type: A
170-
# target: 10.0.0.100
170+
# target: 192.0.2.100
171171
# ttl: 300
172172
# config:
173173
# server: ns1.example.com:53
@@ -195,7 +195,7 @@ providers:
195195
# domains_regex:
196196
# - "^app-[0-9]+\\.example\\.com$"
197197
# record_type: A
198-
# target: 10.0.0.100
198+
# target: 192.0.2.100
199199
# config:
200200
# url: http://dns:5380
201201
# token: ${TECHNITIUM_TOKEN}

docs/configuration/domains.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ When a hostname matches multiple providers, dnsweaver creates records in **all**
4949
```bash
5050
DNSWEAVER_INSTANCES=internal-dns,public-dns
5151

52-
# Internal DNS: *.example.com → 10.0.0.100 (private IP)
52+
# Internal DNS: *.example.com → 192.0.2.100 (private IP)
5353
DNSWEAVER_INTERNAL_DNS_DOMAINS=*.example.com
54-
DNSWEAVER_INTERNAL_DNS_TARGET=10.0.0.100
54+
DNSWEAVER_INTERNAL_DNS_TARGET=192.0.2.100
5555

5656
# Public DNS: *.example.com → public.example.com (public CNAME)
5757
DNSWEAVER_PUBLIC_DNS_DOMAINS=*.example.com
@@ -60,7 +60,7 @@ DNSWEAVER_PUBLIC_DNS_TARGET=public.example.com
6060

6161
With this configuration, `app.example.com` creates records in **both** providers:
6262

63-
- Internal DNS: `app.example.com → A → 10.0.0.100`
63+
- Internal DNS: `app.example.com → A → 192.0.2.100`
6464
- Public DNS: `app.example.com → CNAME → public.example.com`
6565

6666
### Non-Overlapping Patterns

docs/configuration/environment.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Environment Variables Reference
22

3-
All configuration is via environment variables with the `DNSWEAVER_` prefix. Variables support the `_FILE` suffix for Docker secrets.
3+
All configuration is via environment variables with the `DNSWEAVER_` prefix. Variables support the `_FILE` suffix for [secrets management](secrets.md) (Docker secrets, Kubernetes Secrets, or any file-based injection).
44

55
## Configuration File
66

docs/configuration/modes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Each provider instance can operate in one of three modes, controlling how aggres
3737
When `ownership_tracking: true` (default), dnsweaver creates a TXT record alongside each DNS record to track ownership:
3838

3939
```
40-
app.home.example.com A 10.0.0.100
40+
app.home.example.com A 192.0.2.100
4141
_dnsweaver.app.home.example.com TXT "dnsweaver-id=abc123"
4242
```
4343

docs/configuration/multi-instance.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ environment:
4646
- DNSWEAVER_INTERNAL_TOKEN_FILE=/run/secrets/technitium_token
4747
- DNSWEAVER_INTERNAL_ZONE=home.example.com
4848
- DNSWEAVER_INTERNAL_RECORD_TYPE=A
49-
- DNSWEAVER_INTERNAL_TARGET=10.0.0.100
49+
- DNSWEAVER_INTERNAL_TARGET=192.0.2.100
5050
- DNSWEAVER_INTERNAL_DOMAINS=*.home.example.com
5151

5252
# External: Cloudflare for *.example.com → CNAME to proxy
@@ -60,7 +60,7 @@ environment:
6060
```
6161
6262
A service with hostname `app.home.example.com` creates:
63-
- A record in Technitium → `10.0.0.100`
63+
- A record in Technitium → `192.0.2.100`
6464
- No record in Cloudflare (excluded by `EXCLUDE_DOMAINS`)
6565

6666
A service with hostname `app.example.com` creates:
@@ -80,7 +80,7 @@ environment:
8080
- DNSWEAVER_ZONE_A_TOKEN_FILE=/run/secrets/tech_token
8181
- DNSWEAVER_ZONE_A_ZONE=alpha.example.com
8282
- DNSWEAVER_ZONE_A_RECORD_TYPE=A
83-
- DNSWEAVER_ZONE_A_TARGET=10.0.1.100
83+
- DNSWEAVER_ZONE_A_TARGET=198.51.100.100
8484
- DNSWEAVER_ZONE_A_DOMAINS=*.alpha.example.com
8585
8686
- DNSWEAVER_ZONE_B_TYPE=technitium

docs/contributing/adding-provider.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ func TestClient_CreateRecord(t *testing.T) {
312312
defer server.Close()
313313

314314
client := NewClient(server.URL, "test-token")
315-
err := client.CreateRecord(context.Background(), "test.example.com", "A", "10.0.0.1")
315+
err := client.CreateRecord(context.Background(), "test.example.com", "A", "192.0.2.1")
316316
if err != nil {
317317
t.Fatalf("unexpected error: %v", err)
318318
}
@@ -389,7 +389,7 @@ Your provider should support these record types as applicable:
389389

390390
| Record Type | Purpose | Target Validation |
391391
|------------|---------|-------------------|
392-
| `A` | IPv4 address record | Valid IPv4 address (e.g., `10.0.0.100`) |
392+
| `A` | IPv4 address record | Valid IPv4 address (e.g., `192.0.2.100`) |
393393
| `AAAA` | IPv6 address record | Valid IPv6 address (e.g., `2001:db8::1` or `fd00::1`) |
394394
| `CNAME` | Canonical name (alias) | Valid hostname (e.g., `target.example.com`) |
395395
| `TXT` | Text record (used for ownership) | String value |

docs/contributing/development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ services:
123123
- DNSWEAVER_TEST_TYPE=webhook
124124
- DNSWEAVER_TEST_URL=http://webhook-receiver:8080
125125
- DNSWEAVER_TEST_RECORD_TYPE=A
126-
- DNSWEAVER_TEST_TARGET=10.0.0.1
126+
- DNSWEAVER_TEST_TARGET=192.0.2.1
127127
- DNSWEAVER_TEST_DOMAINS=*.test.local
128128
volumes:
129129
- /var/run/docker.sock:/var/run/docker.sock:ro

docs/deployment/docker-compose.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ services:
1717
- DNSWEAVER_INTERNAL_TOKEN_FILE=/run/secrets/dns_token
1818
- DNSWEAVER_INTERNAL_ZONE=home.example.com
1919
- DNSWEAVER_INTERNAL_RECORD_TYPE=A
20-
- DNSWEAVER_INTERNAL_TARGET=10.0.0.100
20+
- DNSWEAVER_INTERNAL_TARGET=192.0.2.100
2121
- DNSWEAVER_INTERNAL_DOMAINS=*.home.example.com
2222
volumes:
2323
- /var/run/docker.sock:/var/run/docker.sock:ro
@@ -61,7 +61,7 @@ services:
6161
- DNSWEAVER_INTERNAL_TOKEN_FILE=/run/secrets/dns_token
6262
- DNSWEAVER_INTERNAL_ZONE=home.example.com
6363
- DNSWEAVER_INTERNAL_RECORD_TYPE=A
64-
- DNSWEAVER_INTERNAL_TARGET=10.0.0.100
64+
- DNSWEAVER_INTERNAL_TARGET=192.0.2.100
6565
- DNSWEAVER_INTERNAL_DOMAINS=*.home.example.com
6666
depends_on:
6767
- socket-proxy
@@ -103,7 +103,7 @@ services:
103103
- DNSWEAVER_INTERNAL_TOKEN_FILE=/run/secrets/technitium_token
104104
- DNSWEAVER_INTERNAL_ZONE=home.example.com
105105
- DNSWEAVER_INTERNAL_RECORD_TYPE=A
106-
- DNSWEAVER_INTERNAL_TARGET=10.0.0.100
106+
- DNSWEAVER_INTERNAL_TARGET=192.0.2.100
107107
- DNSWEAVER_INTERNAL_DOMAINS=*.home.example.com,*.example.com
108108

109109
# External DNS (Cloudflare)
@@ -157,7 +157,7 @@ services:
157157
- DNSWEAVER_INTERNAL_TOKEN_FILE=/run/secrets/dns_token
158158
- DNSWEAVER_INTERNAL_ZONE=home.example.com
159159
- DNSWEAVER_INTERNAL_RECORD_TYPE=A
160-
- DNSWEAVER_INTERNAL_TARGET=10.0.0.100 # Traefik's IP
160+
- DNSWEAVER_INTERNAL_TARGET=192.0.2.100 # Traefik's IP
161161
- DNSWEAVER_INTERNAL_DOMAINS=*.home.example.com
162162
volumes:
163163
- /var/run/docker.sock:/var/run/docker.sock:ro
@@ -168,7 +168,7 @@ services:
168168
image: traefik/whoami
169169
labels:
170170
- "traefik.http.routers.whoami.rule=Host(`whoami.home.example.com`)"
171-
# dnsweaver will create: whoami.home.example.com → 10.0.0.100
171+
# dnsweaver will create: whoami.home.example.com → 192.0.2.100
172172

173173
secrets:
174174
dns_token:

docs/deployment/dual-stack.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ dnsweaver treats each provider instance independently. To create both A and AAAA
99
```mermaid
1010
flowchart LR
1111
subgraph dnsweaver
12-
V4[dns-v4 instance<br/>Record: A<br/>Target: 10.0.0.100]
12+
V4[dns-v4 instance<br/>Record: A<br/>Target: 192.0.2.100]
1313
V6[dns-v6 instance<br/>Record: AAAA<br/>Target: fd00::100]
1414
end
1515
V4 --> DNS[(DNS Server)]
1616
V6 --> DNS
17-
DNS --> R1["app.example.com → A 10.0.0.100"]
17+
DNS --> R1["app.example.com → A 192.0.2.100"]
1818
DNS --> R2["app.example.com → AAAA fd00::100"]
1919
```
2020

@@ -32,7 +32,7 @@ environment:
3232
- DNSWEAVER_DNS_V4_TOKEN_FILE=/run/secrets/dns_token
3333
- DNSWEAVER_DNS_V4_ZONE=example.com
3434
- DNSWEAVER_DNS_V4_RECORD_TYPE=A
35-
- DNSWEAVER_DNS_V4_TARGET=10.0.0.100
35+
- DNSWEAVER_DNS_V4_TARGET=192.0.2.100
3636
- DNSWEAVER_DNS_V4_DOMAINS=*.example.com
3737

3838
# IPv6 records
@@ -59,7 +59,7 @@ providers:
5959
token_file: /run/secrets/dns_token
6060
zone: example.com
6161
record_type: A
62-
target: 10.0.0.100
62+
target: 192.0.2.100
6363
domains:
6464
- "*.example.com"
6565

@@ -103,7 +103,7 @@ environment:
103103
# Internal IPv4
104104
- DNSWEAVER_INTERNAL_V4_TYPE=technitium
105105
- DNSWEAVER_INTERNAL_V4_RECORD_TYPE=A
106-
- DNSWEAVER_INTERNAL_V4_TARGET=10.0.0.100
106+
- DNSWEAVER_INTERNAL_V4_TARGET=192.0.2.100
107107
- DNSWEAVER_INTERNAL_V4_DOMAINS=*.example.com
108108
# ... (URL, zone, token)
109109

0 commit comments

Comments
 (0)