Skip to content

An open source MSP PSA from Nine Minds

License

Notifications You must be signed in to change notification settings

elipromark/alga-psa

 
 

Repository files navigation

Open Source MSP Professional Services Automation (PSA)

A comprehensive Professional Services Automation platform designed for Managed Service Providers (MSPs). This open-source solution helps MSPs streamline operations, manage client relationships, track time and billing, and improve service delivery.

Quick Start Video Guide

Getting Started with MSP PSA

Watch our 10-minute getting started guide to quickly understand the system's core features and setup process.

Features

Core Functionality

  • Asset Management: Track and manage client assets, maintenance schedules, and relationships
  • Billing & Invoicing: Flexible billing cycles, international tax support, and automated invoicing
  • Client Management: Comprehensive client profiles and relationship tracking
  • Document Management: Centralized document repository with version control
  • Project Management: Project tracking, task management, and resource allocation
  • Support Ticketing: Incident tracking and resolution management
  • Time Management: Time tracking, timesheet approval, and utilization reporting
  • Reporting & Analytics: Customizable reports and business intelligence
  • Security: Role-based access control (RBAC) and attribute-based access control (ABAC)

Advanced Features

  • International Tax Support: Handle complex tax scenarios across jurisdictions
    • Composite taxes
    • Threshold-based tax rates
    • Tax holidays
    • Reverse charge mechanisms
  • Flexible Billing Cycles: Customizable per company
    • Weekly, bi-weekly, monthly, quarterly options
    • Proration support
    • Approval-based time entry billing
    • Unapproved time entry rollover

Technical Architecture

  • Frontend: Next.js application
  • Backend: Node.js server
  • Database: PostgreSQL with row-level security
  • Real-time Collaboration: Hocuspocus integration
  • Authentication: NextAuth.js
  • UI Components: Radix-based component library

Getting Started

Prerequisites

  • Docker Compose v2
  • Node.js
  • PostgreSQL

Initial Setup

  1. Create and initialize the database:
node setup/create_database.js
npx knex --knexfile knexfile.cjs migrate:latest --env development
npx knex seed:run --knexfile knexfile.cjs --env development
  1. Start the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
  1. Access the application at http://localhost:3000

Docker Deployment

Use our Makefile for easy deployment:

# Production mode
make sebastian-docker-run

# Development mode
make sebastian-docker-dev

# Run Hocuspocus (real-time collaboration)
make hocuspocus-docker-run

# Run server only
make server-docker-run

Project Structure

sebastian/
├── docker-compose.yaml
├── helm/                  # Kubernetes configurations
├── hocuspocus/           # Real-time collaboration server
└── server/
    ├── public/           # Static assets
    ├── src/
    │   ├── app/         # Next.js pages
    │   ├── components/  # React components
    │   │   ├── ui/     # Shared UI components
    │   │   └── features/# Feature-specific components
    │   ├── lib/        # Core business logic
    │   └── types/      # TypeScript definitions
    └── migrations/     # Database migrations

Testing

We use Vitest for testing. Run the test suite:

npm run test

# Run specific tests
npm run test -- path/to/test/file.test.ts

Documentation

License

This project 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 for details.

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to get started.


Copyright (c) 2024 Nine Minds LLC

About

An open source MSP PSA from Nine Minds

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 83.1%
  • JavaScript 14.1%
  • EJS 1.0%
  • CSS 1.0%
  • Shell 0.6%
  • Dockerfile 0.1%
  • Other 0.1%