Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
242 lines
14 KiB
Markdown
242 lines
14 KiB
Markdown
# Alga PSA: Open-Source MSP Professional Services Automation
|
|
|
|
Alga PSA is a professional services automation platform built for Managed Service Providers. It brings client records, service tickets, time tracking, contracts, billing, invoicing, documents, assets, reporting, and automation into one MSP-focused system.
|
|
|
|
It is designed for teams that want more control over their PSA stack: self-hostable Community Edition code, a modern TypeScript/PostgreSQL architecture, and an Enterprise Edition path for commercially licensed modules and larger deployments.
|
|
|
|
<a href="https://www.nineminds.com/AlgaPSA-features">
|
|
<img src="https://www.nineminds.com/imported-media/Overview%20Dashboard.png" alt="Alga PSA overview dashboard" width="900">
|
|
</a>
|
|
|
|
[See the Alga PSA feature tour](https://www.nineminds.com/AlgaPSA-features)
|
|
|
|
## Why MSPs look at Alga PSA
|
|
|
|
MSP operations break down when tickets, contracts, time, and invoices live in separate tools. Teams lose billable time, service managers chase updates, and owners have a harder time seeing whether client work is profitable.
|
|
|
|
Alga PSA is built around the way MSPs operate with clients:
|
|
|
|
- **Tickets tied to clients, contacts, assets, and service history** so the team has context before work starts.
|
|
- **Time and approvals connected to billing** so billable work can move toward invoices with less duplicate entry.
|
|
- **Contracts, sales quotes, recurring services, tax, and invoice workflows** for the financial side of service delivery.
|
|
- **Client portal and document workflows** so clients have a clearer place to submit requests, view information, and follow progress.
|
|
- **Workflow automation** for turning repeatable ticket, billing, notification, and approval steps into managed processes with Event Catalog triggers and scheduled runs.
|
|
- **Open-source core with self-hosting support** so MSPs and technical teams can keep control over deployment, data, and code review.
|
|
|
|
Community Edition is the self-hostable AGPL core. Enterprise Edition covers commercially licensed modules and larger deployment needs. See [Editions and licensing](#editions-and-licensing) for details.
|
|
|
|
## Features at a glance
|
|
|
|
### Service desk and client operations
|
|
|
|
- Support ticketing for client requests, incidents, and follow-up work
|
|
- Client, contact, and company management
|
|
- Multilingual client portal support for separate MSP and client-facing access
|
|
- Email notifications for tickets, invoices, and project updates
|
|
- Document management with version control
|
|
- Asset management for client equipment, maintenance schedules, and relationships
|
|
- Project and task management for longer-running client work
|
|
- Scheduling and dispatch views for planned work and technician coordination
|
|
|
|
### Time, contracts, billing, and invoicing
|
|
|
|
- Time tracking with approval workflows and utilization reporting
|
|
- Automatic interval tracking for ticket work, stored in the browser with IndexedDB
|
|
- Conversion of tracked intervals into time entries
|
|
- Flexible billing cycles by company, including weekly, bi-weekly, monthly, and quarterly billing
|
|
- Billing-period support for proration and unapproved time rollover
|
|
- Contract purchase order support with PO numbers and advisory PO limits
|
|
- Sales quotes for pricing proposals, optional line items, approvals, client portal acceptance, and conversion to contracts or invoices
|
|
- Graphical invoice and quote designer for branded PDF layouts, data-bound fields, line-item tables, preview, and per-document template overrides
|
|
- International tax support with composite rates, thresholds, tax holidays, and reverse charge scenarios
|
|
|
|
### Automation, reporting, and controls
|
|
|
|
- Workflow Automation with an Event Catalog for ticket, billing, scheduling, email, project, CRM, asset, document, and integration triggers
|
|
- Visual workflow designer for event-driven, one-time scheduled, recurring scheduled, and manual runs, with versioning and run history
|
|
- Redis-backed event processing for asynchronous work and system events
|
|
- Reporting and analytics for operational visibility
|
|
- Role-based access control (RBAC) and attribute-based access control (ABAC)
|
|
- Multi-portal authentication for MSP users and client portal users
|
|
- API, OpenAPI registry material, and extension SDK support for integrations and custom workflows
|
|
|
|
Feature availability varies by edition, deployment configuration, and enabled feature flags. See the setup and architecture docs for implementation details.
|
|
|
|
## Product screenshots
|
|
|
|
These images link directly to screenshots from the [Alga PSA feature tour](https://www.nineminds.com/AlgaPSA-features), [Workflow Automation docs](https://www.nineminds.com/documentation/152-choosing-workflow-triggers), and [Invoice Designer docs](https://www.nineminds.com/documentation/1410-bind-invoice-data-to-your-layout).
|
|
|
|
| Core workflow | Business operations |
|
|
| --- | --- |
|
|
| <img src="https://www.nineminds.com/imported-media/Ticketing-1.gif" alt="Alga PSA ticketing screen" width="420"> | <img src="https://www.nineminds.com/imported-media/Billing%20dashboard.png" alt="Alga PSA billing dashboard" width="420"> |
|
|
| Ticketing views for client requests, assignment, attachments, and follow-up. | Contracts, billing, and invoice-related workflows in one billing area. |
|
|
| <img src="https://www.nineminds.com/imported-media/Screenshot%202026-04-30%20at%2011.33.51%E2%80%AFAM.png" alt="Alga PSA multilingual client portal" width="420"> | <img src="https://www.nineminds.com/imported-media/Screenshot%202026-05-01%20at%201.35.35%20PM.png" alt="Alga PSA time approval screen" width="420"> |
|
|
| Multilingual client portal views for client-facing requests and updates. | Time entry views for recording and reviewing work before billing. |
|
|
| <img src="https://www.nineminds.com/imported-media/Schedule%20view.png" alt="Alga PSA schedule view" width="420"> | <img src="https://www.nineminds.com/docs-images/invoice-designer-workspace.png" alt="Alga PSA invoice and quote designer workspace" width="420"> |
|
|
| Schedule views for dispatch and calendar-based work planning. | Drag-and-drop invoice and quote layout designer for branded PDFs. |
|
|
| <img src="https://www.nineminds.com/docs-images/workflow-designer-ticket-triage.png" alt="Alga PSA visual workflow designer" width="420"> | <img src="https://www.nineminds.com/imported-media/Assets%20Asset%20workspace%20overview.png" alt="Alga PSA asset workspace overview" width="420"> |
|
|
| Visual workflow designer for ticket triage, notifications, approvals, and other repeatable processes. | Asset views for client equipment and service context. |
|
|
|
|
## Quick start
|
|
|
|
For a full installation, use the [Complete Setup Guide](docs/getting-started/setup_guide.md). It covers release selection, secrets, environment configuration, Docker Compose, initial login credentials, persistence, backups, and production notes.
|
|
|
|
The current CE prebuilt Docker Compose path is below. Before running these commands, follow the setup guide to create the required `secrets/` directory and `server/.env` file.
|
|
|
|
The stack boots PostgreSQL, the Next.js application server, and the workflow worker. On first start, the server creates a seeded workspace admin account; tail the logs below to retrieve the credentials.
|
|
|
|
```bash
|
|
git clone https://github.com/nine-minds/alga-psa.git
|
|
cd alga-psa
|
|
|
|
./scripts/set-image-tag.sh
|
|
|
|
docker compose -f docker-compose.prebuilt.base.yaml -f docker-compose.prebuilt.ce.yaml \
|
|
--env-file server/.env --env-file .env.image up -d
|
|
```
|
|
|
|
The prebuilt stack creates named volumes for PostgreSQL data and uploaded files so data survives container restarts and upgrades. See the setup guide for backup and restore procedures.
|
|
|
|
After the first successful boot, the server logs print a seeded workspace admin account. Tail the logs and update the password before using the system in production.
|
|
|
|
```bash
|
|
docker compose -f docker-compose.prebuilt.base.yaml -f docker-compose.prebuilt.ce.yaml \
|
|
--env-file server/.env --env-file .env.image logs -f
|
|
```
|
|
|
|
### Requirements
|
|
|
|
- Docker Engine 24.0.0 or later
|
|
- Docker Compose v2.20.0 or later
|
|
- Git
|
|
- Node.js `>=20 <25` for source development
|
|
|
|
For Windows-specific setup, see the [Windows Setup Guide](docs/getting-started/setup_guide_windows.md).
|
|
|
|
## Technical architecture
|
|
|
|
The following details are for teams evaluating the technical stack. For deployment requirements, see [Quick start](#quick-start).
|
|
|
|
Alga PSA is a TypeScript monorepo with a Next.js application, shared domain packages, worker services, and Docker-based deployment paths.
|
|
|
|
| Area | Implementation |
|
|
| --- | --- |
|
|
| Frontend | Next.js application with React, Tailwind, Radix-based components, and shared UI packages |
|
|
| Backend | Next.js API routes running on Node.js, shared domain packages, and a dedicated workflow worker service |
|
|
| Database | PostgreSQL with row-level security for tenant isolation |
|
|
| Event processing | Redis-backed event bus with Zod schema validation for asynchronous system events |
|
|
| Workflow execution | Temporal-backed workflow runtime and worker services for event-triggered, scheduled, and manual workflow runs |
|
|
| Real-time collaboration | Hocuspocus/Yjs for collaborative document editing |
|
|
| Authentication | NextAuth.js with separate MSP and client portal access surfaces |
|
|
| Packages | npm workspaces and Nx-managed `@alga-psa/*` packages for billing, clients, tickets, documents, scheduling, reporting, integrations, and shared infrastructure |
|
|
| Deployment | Docker Compose for CE/EE stacks, named volumes for PostgreSQL and files, Docker secrets, PgBouncer, and Helm assets for Kubernetes-oriented deployments |
|
|
| Extensions and API | Extension SDK, client SDK docs, API docs, and OpenAPI registry material for integrations and custom workflows |
|
|
|
|
Useful technical docs:
|
|
|
|
- [Architecture Overview](docs/architecture/overview.md)
|
|
- [Package Build System](docs/architecture/package-build-system.md)
|
|
- [Docker Compose Structure](docs/getting-started/docker_compose.md)
|
|
- [Secrets Management](docs/security/secrets_management.md)
|
|
- [API Overview](docs/api/api_overview.md)
|
|
- [OpenAPI Registry Integration](docs/openapi/registry-integration.md)
|
|
- [Client SDK](docs/client-sdk/README.md)
|
|
- [Inbound Email](docs/inbound-email/README.md)
|
|
- [Testing Standards](docs/reference/testing-standards.md)
|
|
|
|
## Documentation
|
|
|
|
### Setup and configuration
|
|
|
|
- [Complete Setup Guide](docs/getting-started/setup_guide.md)
|
|
- [Windows Setup Guide](docs/getting-started/setup_guide_windows.md)
|
|
- [Configuration Guide](docs/getting-started/configuration_guide.md)
|
|
- [Development Guide](docs/getting-started/development_guide.md)
|
|
- [Entrypoint Scripts](docs/getting-started/entrypoint_scripts.md)
|
|
|
|
### MSP feature areas
|
|
|
|
- [Billing System](docs/billing/billing.md)
|
|
- [Invoice Templates](docs/billing/invoice_templates.md)
|
|
- [Quoting System](docs/billing/quoting-system.md)
|
|
- [International Tax Support](docs/billing/tax/international_tax_support.md)
|
|
- [Asset Management](docs/features/asset_management.md)
|
|
- [SLA Management](docs/features/sla.md)
|
|
- [Time Entry Guide](docs/features/time_entry.md)
|
|
- [Workflow Automation for MSPs](https://www.nineminds.com/documentation/151-workflow-automation-for-msps)
|
|
- [Choosing Workflow Triggers](https://www.nineminds.com/documentation/152-choosing-workflow-triggers)
|
|
- [Building Your First MSP Workflow](https://www.nineminds.com/documentation/153-building-your-first-msp-workflow)
|
|
- [Publishing and Monitoring Workflows](https://www.nineminds.com/documentation/156-publishing-monitoring-workflows)
|
|
|
|
### Development and contribution
|
|
|
|
- [Contributing Guide](docs/contributing.md)
|
|
- [Configuration Standards](docs/getting-started/configuration_standards.md)
|
|
- [Package Build System](docs/architecture/package-build-system.md)
|
|
- [Testing Standards](docs/reference/testing-standards.md)
|
|
|
|
## Project structure
|
|
|
|
```text
|
|
alga-psa/
|
|
├── server/ # Next.js application server
|
|
│ ├── src/app/ # App routes and API routes
|
|
│ ├── src/components/ # React components
|
|
│ └── src/lib/ # Core application logic
|
|
├── packages/ # Shared @alga-psa/* packages
|
|
│ ├── billing/ # Billing, invoicing, tax
|
|
│ ├── clients/ # Client management
|
|
│ ├── tickets/ # Ticketing domain code
|
|
│ ├── db/ # Database connection and tenant context
|
|
│ ├── event-schemas/ # Event contracts and validation
|
|
│ ├── ui/ # Shared UI component library
|
|
│ └── ... # Domain and infrastructure packages
|
|
├── ee/ # Enterprise Edition code and licensed modules
|
|
├── services/ # Background services, including workflow-worker
|
|
├── hocuspocus/ # Real-time collaboration server
|
|
├── sdk/ # Extension SDK and samples
|
|
├── extensions/ # Extension examples and supporting code
|
|
├── helm/ # Kubernetes deployment assets
|
|
├── redis/ # Redis configuration
|
|
├── pgbouncer/ # PostgreSQL connection pooling configuration
|
|
├── setup/ # Bootstrap and installation scripts
|
|
├── scripts/ # Build, release, and utility scripts
|
|
├── tools/ # Developer and automation tooling
|
|
└── docs/ # Product, setup, architecture, and developer docs
|
|
```
|
|
|
|
## Development and testing
|
|
|
|
Install dependencies and run tests from the repository root. Source development requires Node.js `>=20 <25`.
|
|
|
|
```bash
|
|
npm install
|
|
npm run test:local
|
|
|
|
# Run specific tests
|
|
npm run test:local -- path/to/test/file.test.ts
|
|
```
|
|
|
|
For development workflow details, package build behavior, and test conventions, see:
|
|
|
|
- [Development Guide](docs/getting-started/development_guide.md)
|
|
- [Package Build System](docs/architecture/package-build-system.md)
|
|
- [Testing Standards](docs/reference/testing-standards.md)
|
|
|
|
## Editions and licensing
|
|
|
|
Alga PSA uses multiple licenses:
|
|
|
|
- Documentation (`docs/`): Creative Commons Attribution 4.0 International License (CC BY 4.0)
|
|
- Enterprise Edition (`ee/`): See `ee/LICENSE`
|
|
- All other content: GNU Affero General Public License Version 3 (AGPL-3.0)
|
|
|
|
See [LICENSE.md](LICENSE.md) for details. If your deployment model requires commercial terms or a license outside the AGPL core, visit [algapsa.com](https://algapsa.com) for Enterprise Edition and hosted deployment information.
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome. Start with the [Contributing Guide](docs/contributing.md) for development setup, coding expectations, pull request guidance, and module conventions.
|
|
|
|
---
|
|
Copyright (c) 2026 Nine Minds LLC
|