-
Notifications
You must be signed in to change notification settings - Fork 0
Home
A single-tenant, self-hosted field-service platform: CRM, quoting, scheduling/dispatch, a technician mobile app, invoicing & online payment, a customer portal, inventory & purchasing, accounting (including an internal general ledger), payroll rollups, and marketing/retention — with integrations for QuickBooks, Stripe, Phone.com, Outlook, and Google Maps. FastAPI backend, Vue 3 SPA, Postgres + Redis + Celery.
- Getting Started — run an instance with Docker in ~5 minutes.
- Feature Overview — everything the app does, at a glance.
- Feature Overview — the whole app, organized like the nav.
- Jobs, Scheduling & Dispatch — jobs, dispatch board, planner, maintenance plans, GPS, load sheets.
- Sales & Estimating — leads, estimates, AI quoting, proposals, change orders, signatures.
- Invoicing & Payments — billing, Stripe payments, collections, reminders.
- Customers & Communications — CRM, SMS/email threads, Phone.com, reviews & referrals.
- Customer Portal — what your customers see: estimates, invoices, online payment, booking, magic-link login.
- Technician Mobile App — the offline-first field experience.
- Catalogs — parts/doors/labor catalogs, no-code custom catalog types, Catalog Packs.
- Inventory & Purchasing — stock, van inventory, POs, supplier portal.
- Accounting, Payroll & Reports — general ledger, costing, pricing, budgets, payroll, forecasting.
- Marketing & Retention — campaigns, automations, win-back, loyalty.
- Integrations — QuickBooks, Stripe, Phone.com, Outlook/email, Google Maps, local-LLM AI, outbound webhooks.
- Website Lead Intake — wire your marketing site's contact form to the leads triage list.
- Admin & Settings — users, roles & permissions, branding, PDF templates, audit, GDPR.
- Getting Started — install & first login.
-
Configuration Reference — what every
.envgroup does. - Architecture — services, data model, request flow.
- Backup & Restore — dumps, restores, drills.
- Updating — upgrade safely (snapshot → migrate → health-gate).
- Using Plugins — operators: installing/enabling third-party modules.
- Authoring Plugins — developers: building a plugin.
GDX supports third-party modules: full-stack extensions an operator
installs into their own instance. Plugins are ordinary pip packages that
register under the gdx.modules entry-point group and run inside a dedicated
plugin-host container (isolated from the core app — the VS Code
"Extension Host" model). The core app proxies /api/plugins/* to it,
forwarding the authenticated principal; plugin UIs are declarative JSON
manifests rendered by the host app (no third-party browser JavaScript).
Operators vet what they install — there is no central registry or signing.
Architecture & rationale:
ADR-013.
-
Role & Nav Naming Conventions — how
roles are spelled/stored and how nav visibility is decided. Companion:
role_permissions.md.
Deeper reference material lives in
gdx_dispatch/docs/
— including the mobile API contract
(tech_mobile.md),
the catalog guide
(CUSTOM_CATALOGS.md),
the permissions reference
(role_permissions.md),
and the ADRs under
docs/decisions/.