5db4914fa785fd70b6949999bb9a4b20b9cc4f6c
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.
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.shfor 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
- Admin guide: install, voip.ms setup, network and firewall, E911 and recording law, troubleshooting, updating and backups, analog phones (ATAs), local AI
- Changelog
- Ready for v1 checklist
- Writing code (human or AI): start with
AGENTS.md, then the spec and the roadmap
License: AGPL-3.0-or-later.
Description
Open source, self hosted alternative for 3cx
https://github.com/iamdoubz/selfphoneng
9.2 MiB
0 Stars
1 Watchers
0 Forks
Languages
TypeScript
83.9%
JavaScript
15%
Shell
0.7%
Dockerfile
0.3%
