cmms is a free, open source erp & operations project written in TypeScript and released under AGPL-3.0. It has 777 GitHub stars, 226 forks and 34 open issues, and was last pushed 27 hours ago. On this registry it ranks #17 of 25 tracked projects in ERP & Operations, with 5 head-to-head comparisons available. It gained 4 stars over the last 3 tracked days.

What is cmms?

What it is

Atlas CMMS is a self-hosted computerized maintenance management system written in TypeScript and licensed under AGPL-3.0. It provides a web application and a mobile application for managing maintenance work, equipment, inventory, locations, and service requests. The project lives in the open-source business software and ERP operations ecosystem, and it is deployed with Docker.

The concrete problem it solves is coordinating enterprise maintenance activities across assets, teams, requests, approvals, and costs. Facilities, manufacturing, healthcare, hospitality, public sector, education, and utility organizations need to create work orders, assign technicians or service providers, log time, track equipment downtime, manage inventory, and review maintenance costs. Atlas CMMS provides a single system for these activities, with work order tracking, equipment records, inventory alerts, purchase approvals, reports, and role-based workflows.

Key capabilities

  • Work orders can be created, assigned, tracked, prioritized, and logged with time and history.
  • Automated work orders can be generated with triggers, and workflows can be defined with automation logic.
  • Equipment records can track downtime and maintenance costs, while inventory management supports stock alerts.
  • Purchase orders and approvals can be automated, linking maintenance needs to procurement.
  • Reports and analytics cover work order compliance, cost analysis, equipment reliability, cost trends, and labor tracking.
  • User and workflow management supports teams, service providers, customizable roles, and permissions.
  • Locations can be managed with Google Maps integration, and service requests can be created and tracked.

Who uses it and how

  • Facilities managers use it to track building, property, and real estate maintenance requests and assign work to teams or external providers.
  • Manufacturing and production teams use it to maintain machinery, record downtime, manage inventory, and analyze maintenance costs.
  • Healthcare facilities use it to track medical equipment maintenance and service history.
  • Hospitality, public sector, educational institutions, and utility companies use it to manage distributed locations and infrastructure maintenance.
  • IT managers or developers deploy it to centralize maintenance operations while keeping data on self-managed infrastructure.

Getting started

The typical deployment method is Docker: download the provided docker-compose.yml, nginx.conf, and .env.example file, rename the environment file, set required variables, and run docker-compose up -d. The application is then accessed through a browser at the configured public URL or localhost port 3000.

When to use it — and when not to

Atlas CMMS is a good fit for organizations that need a free, self-hosted maintenance system and can operate the required dependencies, including PostgreSQL, MinIO, and a JWT secret. It is less suitable for teams that want a fully managed service or that cannot maintain database, object storage, and optional SMTP or SendGrid configuration. The repository is two years old and lists 34 open issues, so adopters should evaluate its production readiness and customization needs before committing.

project readme (upstream, from github) — read inline

Atlas CMMS

Atlas CMMS is a powerful, self-hosted maintenance management system designed for both web and mobile platforms using Docker. It simplifies and automates the management of maintenance activities, making it ideal for IT managers or developers looking to implement solutions that keep their organization's assets running smoothly. Think of it like Jira for technicians.

Example industries

  • Facilities Managers (buildings, property, real estate)
  • Manufacturing/Production Teams (machinery and equipment)
  • Healthcare Facilities (medical equipment maintenance)
  • Hospitality Managers (hotels and resorts)
  • Public Sector (infrastructure and public buildings)
  • Educational Institutions (campus maintenance)
  • Utility Companies (power, water, and energy systems)

Demo website

Screenshots:

work_orders_screenshot.png

Features

Work Orders & Maintenance

  • 📝 Create, assign, and track work orders.
  • ⏱️ Log time, set priorities, and track history.
  • 🤖 Automate work orders with triggers.
  • 📊 Export reports and view analytics.

Analytics & Reporting

  • 💼 Work order compliance and cost analysis.
  • 🛠️ Equipment downtime and reliability insights.
  • 💵 Cost trends and labor tracking.

Equipment & Inventory

  • ⚙️ Track equipment, downtime, and maintenance costs.
  • 📦 Manage inventory with stock alerts.
  • 🛒 Automate purchase orders and approvals.

User & Workflow Management

  • 👥 Assign tasks to teams or service providers.
  • 🧑‍💼 Customizable user roles and permissions.
  • 🔄 Define workflows with automation logic.

Locations & Requests

  • 📍 Manage locations with Google Maps integration.
  • 📑 Create and track service requests.

You can check out the complete list of features.

We'd love to have new contributors, so feel free to join us!
Star this repo to support us!

Self-Host / Run locally

⚡ Quick Start (2 minutes)

  1. Download:
  1. Run:
    docker-compose up -d
    

Go to http://localhost:3000 to access Atlas CMMS.

Need customization or production setup? Continue reading below ↓

Set environment variables

Name Required Description Default Value
POSTGRES_USER Yes Postgres user rootUser
POSTGRES_PWD Yes Postgres password mypassword
MINIO_USER Yes MiniO user minio
MINIO_PWD Yes MiniO password minio123
JWT_SECRET_KEY Yes JWT secret key. Generate with openssl rand -base64 32 your_jwt_secret
PUBLIC_SERVER_URL No Website URL in this format http://your.public.ip http://localhost:3000
ENABLE_EMAIL_NOTIFICATIONS No Enables or disables email notifications (true or false). Requires SMTP if enabled. false
INVITATION_VIA_EMAIL No Enables or disables user invitations via email (true or false). Requires SMTP and ENABLE_EMAIL_NOTIFICATIONS if enabled. false
MAIL_TYPE No Mail type: SMTP or SENDGRID smtp
SMTP_HOST No The SMTP host smtp.gmail.com
SMTP_PORT No The SMTP port 587
SMTP_USER No The SMTP username. If using Gmail, Learn how to create an app password (empty)
SMTP_PWD No The SMTP password. If using Gmail, Learn how to create an app password (empty)
SMTP_FROM No The SMTP from address, if different from the username. (empty)
SENDGRID_API_KEY No The Sendgrid API key

readme truncated — read the full docs on github

Frequently asked questions

Is cmms free to use?

cmms is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does cmms do?

#1 Self hosted CMMS web & mobile application that allows you to manage enterprise maintenance for free - Computerized Maintenance Management System

What is cmms written in?

cmms is primarily written in TypeScript. Its source is publicly available at https://github.com/Grashjs/cmms, and it has 777 GitHub stars.