Nous publions ce que nous construisons et nous renvoyons les correctifs.
District AI fonctionne sur des logiciels à code source ouvert, et deux des outils que nous avons construits en chemin le sont aussi : un moniteur pour les pipelines qui livrent ce site, et le moteur de prise de rendez-vous derrière chaque réservation.
- trigger:websitedeploy:origins réussi sur quatre originesDéployé
- trigger:sentrysentry:apply a échouéÉchec
- trigger:reporting_toolstrois tâchesRéussi
Pipeline planifié, il y a 25 minutes, en échec volontaire après correction d'une dérive. Non compté : cette veille suit les push.
- Docker publishimage poussée vers le registreDéployé
- CIdeux tâchesRéussi
- Audittrois tâchesRéussi
Trois exécutions de workflow issues d'un seul push, affichées en une seule ligne.
bridgewatch
Un moniteur de barre d'état pour GitLab CI et GitHub Actions, pour macOS et Linux. Nous l'avons écrit parce que tous les moniteurs essayés lisaient le pipeline le plus récent de la branche, qui chez nous est la planification horaire, et qu'aucun ne pouvait dire ce qu'un push avait fait dans son ensemble.
Il voit le push en entier
Sur GitLab, il lit chaque pipeline enfant derrière une tâche de déclenchement. Sur GitHub, où un seul push lance plusieurs exécutions de workflow qui s'ignorent entre elles, il les regroupe en une seule ligne. Dans les deux cas, il peut nommer la partie qui a échoué, et il remarque un workflow qui aurait dû s'exécuter et n'a jamais démarré.
Il distingue une planification d'un push
Un réconciliateur qui échoue volontairement ne devrait pas garder votre barre d'état au rouge toute la journée. Chaque veille suit les sources que vous choisissez.
Il répond à « est-ce déployé ? »
Vous nommez les tâches qui signifient « livré ». L'icône en rend compte, et le dit quand quelque chose a échoué autour.
- Surveille
- GitLab CI et GitHub Actions
- Licence
- Apache-2.0
- Construit avec
- Rust, Tauri 2, Svelte 5
- Livré comme
- Une application macOS signée, un .deb et une AppImage. L'outil en ligne de commande se compile à partir du code source.
Pourquoi nous publions
Une entreprise de téléphonie qui demande à ses clients de lui faire confiance sur le lieu de traitement de leurs appels devrait être facile à vérifier. Les deux dépôts sont ceux à partir desquels nous déployons, avec leurs tickets, leurs journaux des modifications et leurs politiques de sécurité à découvert.
Il y a aussi une raison plus simple. Un fork aux correctifs privés doit être maintenu par la seule entreprise qui les détient. Renvoyer un correctif signifie que la prochaine version du projet d'origine le contient déjà, pour nous comme pour tout le monde.
Le trajet d'un correctif
Ce que le fork ajoute
District Scheduler
Notre fork de Calnode, le moteur de prise de rendez-vous derrière les réservations, les réunions et la prise de notes de District AI. Un seul binaire Go qui sert ses propres pages de réservation et sa console d'administration.
Les correctifs remontent
Un correctif pour Calnode va à Calnode, plutôt que de survivre comme correctif privé.
Le fork reste honnête
Notre ajout se trouve derrière un seul interrupteur. Désactivé, vous exécutez Calnode tel que publié.
- Licence
- Apache-2.0
- Construit avec
- Go, PostgreSQL
- Projet d'origine
- Calnode/calnode
Sur quoi District AI fonctionne
Dix projets qui font un travail visible à chaque appel ou à chaque page, chacun exploité par nous sous la licence indiquée.
| Logiciel | Ce qu'il fait ici | Licence |
|---|---|---|
| LiveKit | Serveur média, passerelle SIP et cadre d'agents sur lequel la réceptionniste vocale est construite, sur nos propres nœuds dans chaque région | Apache-2.0 |
| PostgreSQL 17 | La base de données de chaque espace de travail, une instance par région | Licence PostgreSQL |
| k3s | La distribution Kubernetes sur laquelle tourne chacune des quatre origines, en nœud unique | Apache-2.0 |
| Caddy | Terminaison TLS et routage devant chaque origine | Apache-2.0 |
| Next.js et React | Ce site, le portail client et le tableau de bord | MIT |
| Prisma | La couche de base de données sous le portail et le tableau de bord | Apache-2.0 |
| Tailwind CSS | La mise en forme du tableau de bord | MIT |
| Grafana Alloy | Achemine les métriques, les journaux et les événements des quatre grappes vers notre surveillance | Apache-2.0 |
| Silero VAD | Détermine quand un appelant commence et cesse de parler | MIT |
| Calnode | Le moteur de prise de rendez-vous dont District Scheduler est le fork | Apache-2.0 |
Licences telles que chaque projet les publie. Redis est absent à dessein : nous l'utilisons, et sa licence actuelle n'est pas une licence de code source ouvert.
Où nous trouver
Les tickets et les demandes de fusion sont les bienvenus sur l'un ou l'autre dépôt. Les signalements de sécurité vont à l'adresse indiquée dans la politique de sécurité de chaque dépôt, pas dans un ticket public.

