iamdoubz 5db4914fa7 web: theme colors from the logo, readable in both themes
Pages used zinc and sky classes with every dark: variant paired by hand,
and several pairs failed WCAG AA: white on the sky-600 buttons (4.1:1),
zinc-500 secondary text on dark backgrounds (3.7-4.1:1), the 10px zinc-400
labels (2.6:1) and the dashboard's green "Connected" (3.3:1).

index.css now defines theme tokens once, light and dark side by side
(page, surface, subtle, line, line-strong, fg, muted, primary and its
soft/line/ink shades, link, focus), exposed to Tailwind with @theme
inline. Pages use those names, so a palette change is one file. Blue
#2563eb from the logo for buttons and links, the logo's navy #0b1120 for
the dark page. Every text pair is at least 4.5:1 in both themes, most 7:1.

Cards and lists sit on the surface color with a light shadow on an
off-white page, at rounded-xl; native controls follow the theme
(color-scheme). Zinc and sky stay only as data colors: status dots and
chart swatches.
2026-10-28 10:00:20 -05:00
2026-10-27 18:37:53 -05:00
2026-10-27 18:37:53 -05:00
2026-10-27 13:51:08 -05:00
2026-10-27 18:37:53 -05:00
2026-10-17 14:11:09 -05:00
2026-10-27 18:37:53 -05:00
2026-10-27 18:37:53 -05:00

SelfPhoneNG

SelfPhoneNG

A fully open source, self-hosted business phone system. Bring your own SIP trunk and numbers (reference provider: voip.ms). Built on Asterisk 24 + TypeScript + PostgreSQL 18, runs in Docker.

Status: pre-1.0 (v0.0.10), for testing. See what's left for v1.

What it does today

  • Phones: users and extensions, desk phones (Yealink, Grandstream) set up automatically, a browser phone, and Linphone set up by scanning a QR code.
  • Numbers: voip.ms trunks (registration or IP auth, UDP/TCP/TLS + SRTP), phone numbers, outbound rules with calling permissions, 911 with E911 caller ID and alerts.
  • Call flows: digital receptionists, office hours and holidays, ring groups, queues, parking, pickup, conference rooms, paging and intercom, music on hold.
  • Voicemail with email (and transcripts by local AI), call history, recordings, a live dashboard (listen, whisper, barge) and reports.
  • Spam check (off until you turn it on): outside callers who aren't contacts are looked up with IPQualityScore or the FTC complaint list, and flagged in the browser phone, on desk phones and in call history. Calls are never blocked.
  • Running it: updates (scripts/update.sh for compose installs; a backup before every database change), backups and restore, background health checks, webhooks and API tokens, two-step sign-in for admins, limits on outside calls at once.

Wanted

  • More SIP providers: Telnyx, Flowroute and Twilio first.
  • More local AI: call transcripts and summaries, typed prompts, type-to-speak, an AI receptionist (spec).
  • Analog phone adapters set up automatically: Grandstream HT802 V2 first (two ports, a dial plan from your numbers), then Cisco ATA 191/192 and SPA112/122. Today they're set up by hand (how).
  • SMS (built for voip.ms, parked until wanted).
  • Push notifications, so phone apps ring in the background.
  • Text-to-speech prompts, recording prompts by phone, a queue wallboard, Polycom phones.

Docs

License: AGPL-3.0-or-later.

S
Description
Open source, self hosted alternative for 3cx
https://github.com/iamdoubz/selfphoneng
Readme AGPL-3.0
9.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 83.9%
JavaScript 15%
Shell 0.7%
Dockerfile 0.3%