autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
106
skills/domain-management/references/nodeloc.md
Normal file
106
skills/domain-management/references/nodeloc.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# NodeLoc (domain.nodeloc.com) Reference
|
||||
|
||||
## Provider Details
|
||||
|
||||
- **Service**: Free subdomains by NodeLoc community
|
||||
- **URL**: https://domain.nodeloc.com
|
||||
- **Root domains**: loc.cc, and others
|
||||
- **Nameservers**: ns1.nodelook.com, ns2.nodelook.com (IP: [REDACTED-IP])
|
||||
- **DNS backend**: PowerDNS (has "Sync from PowerDNS" button)
|
||||
- **Health checks**: Automatic — domain gets suspended if health check fails for extended period
|
||||
|
||||
## API Endpoints
|
||||
|
||||
| Method | Endpoint | Auth | Purpose |
|
||||
|--------|----------|------|---------|
|
||||
| POST | `/api/auth/login` | None | Login, returns JWT token |
|
||||
| GET | `/api/domains` | Bearer | List user's domains |
|
||||
| GET | `/api/domains` + query | Bearer | Domain details |
|
||||
|
||||
DNS record management has NO REST API. Must use browser UI.
|
||||
|
||||
## Login Response Shape
|
||||
|
||||
```json
|
||||
{
|
||||
"message": "success.login",
|
||||
"token": "[REDACTED-JWT]...<full JWT>",
|
||||
"user": {
|
||||
"id": 3375,
|
||||
"username": "[REDACTED-NAME]",
|
||||
"email": "user@example.com",
|
||||
"email_verified": false,
|
||||
"is_admin": false,
|
||||
"user_level": "normal",
|
||||
"domain_quota": 2,
|
||||
"invite_code": "...",
|
||||
"total_invites": 0,
|
||||
"successful_invites": 0,
|
||||
"status": "active",
|
||||
"created_at": "2026-07-16T10:39:49.944849Z",
|
||||
"last_login_at": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
JWT is HS256. Payload: `{"user_id":...,"username":"...","email":"...","is_admin":false,"exp":...,"iat":...}`
|
||||
|
||||
## Domain Response Shape
|
||||
|
||||
```json
|
||||
{
|
||||
"domains": [{
|
||||
"id": 4901,
|
||||
"full_domain": "[REDACTED-NAME].loc.cc",
|
||||
"root_domain": {"id": 1, "domain": "loc.cc", ...},
|
||||
"nameservers": "[\"ns1.nodelook.com\",\"ns2.nodelook.com\"]",
|
||||
"registered_at": "2026-07-16T10:52:26.925642Z",
|
||||
"expires_at": "2036-07-16T10:52:26.925642Z",
|
||||
"dns_synced": false,
|
||||
"auto_renew": false,
|
||||
"first_failed_at": "2026-07-16T16:03:45.845029Z"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## DNS Record States
|
||||
|
||||
| Status | Chinese | Meaning |
|
||||
|--------|---------|---------|
|
||||
| `已同步` | Synced | Record active and propagated |
|
||||
| `待处理` | Pending | Record submitted but not yet synced to PowerDNS |
|
||||
|
||||
## Domain Statuses
|
||||
|
||||
| Status | Meaning |
|
||||
|--------|---------|
|
||||
| `suspended` | Health check failed repeatedly. Domain will be auto-deleted in ~19 days if not fixed. |
|
||||
| `active` | Normal operation |
|
||||
|
||||
## Health Check Behavior
|
||||
|
||||
- Runs periodically against the domain
|
||||
- Checks if the domain resolves AND responds
|
||||
- After repeated failures: domain gets suspended
|
||||
- After suspension: ~19 days until auto-deletion
|
||||
- Adding a valid A record + making the server respond fixes the health check
|
||||
|
||||
## Browser UI Navigation
|
||||
|
||||
1. Login → Dashboard (`/`)
|
||||
2. "我的域名" → Domain list
|
||||
3. Click domain → Domain detail (status, health, DNS button)
|
||||
4. "DNS" button → DNS management page with record table
|
||||
5. "添加 DNS 记录" → Add record dialog
|
||||
|
||||
## DNS Record Form
|
||||
|
||||
- Name: `@` (root) or subdomain name
|
||||
- Type: A, AAAA, CNAME, ALIAS, MX, TXT, NS, SRV, CAA
|
||||
- Value: IP or hostname
|
||||
- TTL: seconds (default 3600)
|
||||
- Button: "创建" (Create) — may require JS click workaround
|
||||
|
||||
## Expiration
|
||||
|
||||
Domains are free and expire in 20 years (2036 for domains registered in 2026). Auto-renewal is off by default.
|
||||
Reference in New Issue
Block a user