983ddd903b
- firmware-pusher/: standalone HTML app for GenieACS firmware pushes - genieacs/: NBI API usage, device IDs, troubleshooting - calix_home_network.txt: live network documentation
2.0 KiB
2.0 KiB
GenieACS Firmware Pusher
Standalone HTML app for pushing firmware upgrades to GenieSpire satellites via GenieACS NBI API.
Access
URL: https://calix.yoda.ddnsgeek.com
Auth: HTTP Basic Auth — admin + GenieACS admin password
Setup
# On VPS (root@161.97.153.158)
cd /opt/firmware-pusher && docker compose up -d
Architecture
User browser (HTTPS)
↓
Traefik (calix.yoda.ddnsgeek.com → firmware-pusher container)
↓
nginx:alpine (auth + static files)
↓
firmware-pusher/index.html (the UI)
UI → NBI API: https://nbi.yoda.ddnsgeek.com/devices
(NBI also protected by same HTTP Basic Auth)
Files
| File | Purpose |
|---|---|
index.html |
The UI — single file, no build |
nginx.conf |
nginx config with auth |
.htpasswd |
HTTP Basic Auth password hash |
docker-compose.yml |
Container definition + Traefik labels |
How It Works
- Device list — fetches from
GET /devices(NBI API) - Firmware files — fetches from
GET /files(NBI API) - Push — POSTs to
POST /devices/{id}/taskswith:{ "name": "download", "fileType": "1 Firmware Upgrade Image", "fileName": "FullRel_EXOS_SIGNED_E5_R25.2.0.0.img", "productClass": "GigaSpire" }
Changing Password
# Generate new htpasswd
docker run --rm httpd:alpine htpasswd -nb admin NEW_PASSWORD
# Update the .htpasswd file, then:
docker exec firmware-pusher nginx -s reload
Firmware Versions Available
| Version | File |
|---|---|
| R23.3.0.5 | FullRel_EXOS_SIGNED_E5_R23.3.0.5.img |
| R24.1.0.2 | FullRel_EXOS_SIGNED_E5_R24.1.0.2.img |
| R24.4.0.0 | FullRel_EXOS_SIGNED_E5_R24.4.0.0.img |
| R25.2.0.0 | FullRel_EXOS_SIGNED_E5_R25.2.0.0.img |
Troubleshooting
- blank page / 404: Check
docker logs firmware-pusher - auth not working: Verify
.htpasswdexists inside container:docker exec firmware-pusher cat /etc/nginx/.htpasswd - push fails: Check GenieACS fault queue at
https://genieacs.yoda.ddnsgeek.com