···2233A Nix-based development environment for running AT Protocol services (PDS, PLC, Caddy proxy, and MailHog).
4455+## ⚠️ Security Warning
66+77+**This environment uses a modified AT Protocol relay with SSRF protection disabled.**
88+99+- The relay is built from a forked repository (`edouardparis/indigo`) with SSRF (Server-Side Request Forgery) protections disabled
1010+- Custom ports are allowed without restrictions
1111+- **This configuration is ONLY safe for local development environments**
1212+- **DO NOT use this relay configuration against external hosts or in production**
1313+- **DO NOT expose this relay to the internet**
1414+1515+This setup is designed for controlled local testing where you need flexibility in network access that would normally be restricted for security reasons.
1616+517## Prerequisites
61877-Make sure to add these lines to your `/etc/hosts` file:
88-```
99-127.0.0.1 pds.example.org
1010-127.0.0.1 plc.example.org
1111-127.0.0.1 relay.example.org
1212-```
1919+1. **Install mkcert** (required for SSL certificate generation):
2020+ - On macOS: `brew install mkcert`
2121+ - On Linux: See [mkcert installation guide](https://github.com/FiloSottile/mkcert#installation)
2222+ - After installation, run: `mkcert -install`
13231414-Generate SSL certificates before first use:
1515-```bash
1616-nix run .#generate-certs
1717-```
2424+2. **Add hosts file entries:**
2525+ ```
2626+ 127.0.0.1 pds.example.org
2727+ 127.0.0.1 plc.example.org
2828+ 127.0.0.1 relay.example.org
2929+ ```
3030+3131+3. **Generate SSL certificates before first use:**
3232+ ```bash
3333+ nix run .#generate-certs
3434+ ```
18351936## Quick Start
2037···3350 - Pane 2: Caddy proxy
3451 - Pane 3: AT Protocol Relay
35523636-3. **Create an invite code:**
5353+3. **Add PDS host to the relay:**
5454+ ```bash
5555+ goat relay --relay-host=https://relay.example.org:8445 admin --admin-password=password host add "https://pds.example.org:8443"
5656+ ```
5757+5858+4. **Create an invite code:**
3759 ```bash
3860 scripts/create-invite.sh
3961 ```
40624141-4. **Create a user account:**
6363+5. **Create a user account:**
4264 ```bash
4365 goat account create \
4466 --pds-host=https://pds.example.org:8443 \
···4870 --handle=edouard.pds.example.org
4971 ```
50725151- Expected output:
5252- ```
5353- Success!
5454- DID: did:plc:pzvsc3jwfjwidojtpbxv4rdd
5555- Handle: edouard.pds.example.org
5656- ```
5757-5858-5. **Verify the DID is registered:**
7373+6. **Verify the DID is registered:**
5974 ```bash
6060- goat --plc-host=https://plc.example.org data did:plc:pzvsc3jwfjwidojtpbxv4rdd
7575+ goat plc --plc-host=https://plc.example.org data <your-did>
6176 ```
62776363-6. **Login to your account:**
7878+7. **Login to your account:**
6479 ```bash
6580 goat account login \
6681 --username=edouard.pds.example.org \
···6883 --pds-host=https://pds.example.org:8443
6984 ```
70857171-7. **Create your first post:**
8686+8. **Create your first post:**
7287 ```bash
7388 goat bsky post "hello world!"
7489 ```
···8095- **AT Protocol Relay**: https://relay.example.org:8445
8196- **MailHog**: http://localhost:8025
82978383-## Available Tools
9898+## Monitoring
84998585-- `goat` - AT Protocol CLI tool
8686-- `curl`, `jq` - HTTP and JSON utilities
8787-- `tmux` - Terminal multiplexer
100100+To monitor the AT Protocol relay firehose:
101101+```bash
102102+goat firehose --relay-host wss://relay.example.org:8445
103103+```
104104+105105+This will show real-time events from the relay. You can run this in a separate terminal or tmux pane.
8810689107## Management Commands
90108