Initial commit: firmware pusher app, GenieACS docs, network file
- firmware-pusher/: standalone HTML app for GenieACS firmware pushes - genieacs/: NBI API usage, device IDs, troubleshooting - calix_home_network.txt: live network documentation
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# GenieACS
|
||||
|
||||
TR-069 ACS (Auto Configuration Server) for managing Calix GigaSpire satellites.
|
||||
|
||||
## Access
|
||||
|
||||
| URL | Purpose |
|
||||
|-----|---------|
|
||||
| `https://genieacs.yoda.ddnsgeek.com` | Admin UI |
|
||||
| `https://nbi.yoda.ddnsgeek.com` | NBI API (7557) |
|
||||
| `https://acs.yoda.ddnsgeek.com` | CWMP/TR-069 (7547) |
|
||||
|
||||
**Admin credentials:** `admin` / `966QPr@*rCTMrWE9xSGm`
|
||||
**VPS:** `root@161.97.153.158`
|
||||
|
||||
## Version
|
||||
|
||||
GenieACS container: `drumsergio/genieacs:latest`
|
||||
VPS docker compose: `/var/lib/docker/volumes/portainer_data/_data/compose/58/docker-compose.yml`
|
||||
|
||||
## NBI API (port 7557)
|
||||
|
||||
All firmware push operations use the NBI API, not the provision framework.
|
||||
|
||||
**Base URL:** `http://127.0.0.1:7557` (on VPS) — also proxied via Traefik at `https://nbi.yoda.ddnsgeek.com`
|
||||
|
||||
**Auth:** HTTP Basic Auth — `admin` + GenieACS admin password
|
||||
|
||||
### Useful NBI Endpoints
|
||||
|
||||
```
|
||||
GET /devices — list all devices
|
||||
GET /devices/{id} — device detail
|
||||
GET /devices/{id}/tasks — task history
|
||||
POST /devices/{id}/tasks — create task (firmware push)
|
||||
GET /files — uploaded firmware files
|
||||
POST /files — upload firmware file
|
||||
DELETE /devices/{id}/tasks/{id} — cancel task
|
||||
```
|
||||
|
||||
### Firmware Push Task
|
||||
|
||||
```bash
|
||||
curl -X POST http://127.0.0.1:7557/devices/{device_id}/tasks \
|
||||
-u admin:PASSWORD \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"name": "download",
|
||||
"fileType": "1 Firmware Upgrade Image",
|
||||
"fileName": "FullRel_EXOS_SIGNED_E5_R25.2.0.0.img",
|
||||
"productClass": "GigaSpire"
|
||||
}'
|
||||
```
|
||||
|
||||
Returns a task ID. Poll `/devices/{id}/tasks/{task_id}` to check status.
|
||||
|
||||
### Device IDs
|
||||
|
||||
```
|
||||
b89470-GigaSpire-CXNK010F208F (Living room — offline/NAT'd)
|
||||
b89470-GigaSpire-CXNK010F20EC (Back hallway sat)
|
||||
b89470-GigaSpire-CXNK010F2064 (Office sat)
|
||||
```
|
||||
|
||||
## Fault Queue
|
||||
|
||||
GenieACS 1.2.16 has a known issue where the provision-based `download` task
|
||||
throws "Invalid arguments" faults. Use the NBI API instead.
|
||||
|
||||
To clear stale faults:
|
||||
```bash
|
||||
ssh root@161.97.153.158
|
||||
docker exec -i genieacs-mongo mongo genieacs --quiet --eval 'db.faults.deleteMany({})'
|
||||
```
|
||||
|
||||
## GenieACS Doesn't Store
|
||||
|
||||
- EXOS web UI passwords (not part of TR-069 data model)
|
||||
- WiFi passphrase (only stored in 4220E config, not GenieSpire)
|
||||
- WPA keys beyond what GenieSpire devices report via Inform
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Device not connecting to GenieACS
|
||||
- Check firewall: port 7547 (CWMP) must be open on VPS
|
||||
- Check device has correct ACS URL configured
|
||||
- Check device has internet access (TR-069 requires outbound HTTPS)
|
||||
|
||||
### Firmware push not working
|
||||
1. Verify file exists: `GET /files` — check `fileName` matches exactly
|
||||
2. Check fault queue for "Invalid arguments" — means wrong provision path
|
||||
3. Use NBI API directly to confirm task was created
|
||||
4. Check device Download table: `GET /devices/{id}` → look for `Downloads` parameter
|
||||
|
||||
### Devices showing offline
|
||||
- GenieACS marks devices offline after ~30 minutes without Inform
|
||||
- Device may need to be power-cycled to reconnect
|
||||
- Check `LastContact` field on device detail page
|
||||
Reference in New Issue
Block a user