983ddd903b
- firmware-pusher/: standalone HTML app for GenieACS firmware pushes - genieacs/: NBI API usage, device IDs, troubleshooting - calix_home_network.txt: live network documentation
78 lines
2.0 KiB
Markdown
78 lines
2.0 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. **Device list** — fetches from `GET /devices` (NBI API)
|
|
2. **Firmware files** — fetches from `GET /files` (NBI API)
|
|
3. **Push** — POSTs to `POST /devices/{id}/tasks` with:
|
|
```json
|
|
{
|
|
"name": "download",
|
|
"fileType": "1 Firmware Upgrade Image",
|
|
"fileName": "FullRel_EXOS_SIGNED_E5_R25.2.0.0.img",
|
|
"productClass": "GigaSpire"
|
|
}
|
|
```
|
|
|
|
## Changing Password
|
|
|
|
```bash
|
|
# 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 `.htpasswd` exists inside container: `docker exec firmware-pusher cat /etc/nginx/.htpasswd`
|
|
- **push fails**: Check GenieACS fault queue at `https://genieacs.yoda.ddnsgeek.com` |