Skip to content

v0.5.0 — Admin portal, dynamic plans & GHCR image publishing

Choose a tag to compare

@innotelinc innotelinc released this 12 Aug 03:46
· 80 commits to master since this release

Highlights

  • Full-stack image publishing — the Asterisk + FreePBX image is now built and pushed to GHCR (ghcr.io/innotelinc/pbx-portal:*-fullstack) automatically on every push to master and on releases. docker-compose.full.yml pulls the prebuilt image, so fresh deployments start in minutes instead of a 45-90 min local build (docker-compose.full.build.yml retains the local-build path).
  • Admin portal — admin user CRUD, dynamic plan management with Stripe price auto-sync, billing fixes, password change.
  • Dashboard rewrite — modern UI with light/dark theme toggle, live device-state polling, loading skeletons, health dashboard page.
  • Phone management — number release, FreePBX extensions API restored (GQL patches, OAuth scopes, portal schema).
  • Softphone / WebRTC — AMI Originate & Hangup, configurable WSS URL (settings UI + ws.innotel.us), WSS cert regeneration, PJSIPShowEndpoint event parsing, many stability fixes.

Fixes

  • Demo login — runtime-generated hash + self-healing seed repair
  • AMI handler crash on Local-channel calls (call_history user_id NULL)
  • Asterisk watchdog + FreePBX module repair + MariaDB persistence
  • FreePBX module persistence across reboots and rebuilds
  • AMI health probe (ping-based), reconnect race removed, AMI credential sync on startup, ucp_events user restore
  • Health probes — VoIP.ms getBalance, FreePBX HTTP connectivity check, run concurrently
  • Portal binds to 0.0.0.0 (fixes EADDRNOTAVAIL), stale root-owned data volume self-heal, AppArmor handling
  • Theme-aware dropdowns, light-mode fixes, lazy-loaded softphone, session verification after login

Full changelog (37 commits)

$(git log v0.4.4..master --format='- %h %s')