Skip to content
 
 

Repository files navigation

AdamRMS

GitHub release (latest by date) GitHub GitHub issues GitHub stars GitHub contributors

AdamRMS is a free, open source advanced Rental Management System for Theatre, AV & Broadcast. It helps rental businesses track assets, manage projects, handle client relationships, and streamline billing β€” all from a single web-based platform.

It is available as a hosted solution or can be self-hosted using a pre-built Docker container.

🌐 Website: adam-rms.com Β· πŸ“– Docs: User Guide Β· πŸ“Š Usage Stats: Telemetry Dashboard

Key Features

  • Asset Management β€” Track equipment with barcode/QR code scanning support, categorisation, and maintenance scheduling
  • Project Management β€” Plan and manage rental projects, assign assets, and track their dispatch status
  • Client Management β€” Maintain client records and associate them with projects
  • Crew & Training β€” Manage crew assignments and training records
  • Multi-tenancy β€” Support for multiple independent business instances on a single deployment
  • CMS β€” Built-in content management for custom dashboard pages
  • Search β€” Global search across projects, clients, locations, users, and CMS pages
  • File Storage β€” S3-compatible cloud storage for documents and images
  • Billing Integration β€” Stripe integration for subscription management
  • Email Providers β€” Pluggable email via SendGrid, Mailgun, Postmark, or SMTP
  • API β€” RESTful JSON API with OpenAPI documentation

Technology Stack

Layer Technology
Backend PHP 8.3, Apache
Templating Twig v3.7
Database MySQL 8.0
File Storage AWS S3 (or S3-compatible)
Containerisation Docker (multi-arch: amd64, arm64)
Dependency Management Composer
Database Migrations Phinx
Website & Docs Docusaurus v3, React
CI/CD GitHub Actions
Error Tracking Sentry

Project Structure

β”œβ”€β”€ src/                    # Application source code
β”‚   β”œβ”€β”€ api/                #   RESTful API endpoints (JSON)
β”‚   β”œβ”€β”€ common/             #   Shared utilities & initialisation
β”‚   β”‚   β”œβ”€β”€ head.php        #     Public page bootstrap (config, DB, Twig)
β”‚   β”‚   β”œβ”€β”€ headSecure.php  #     Authenticated page bootstrap
β”‚   β”‚   └── libs/           #     Auth, Config, Email, Search, Telemetry
β”‚   β”œβ”€β”€ assets/             #   Asset management module
β”‚   β”œβ”€β”€ project/            #   Project management module
β”‚   β”œβ”€β”€ clients/            #   Client management module
β”‚   β”œβ”€β”€ maintenance/        #   Maintenance & service tracking
β”‚   β”œβ”€β”€ instances/          #   Multi-tenant instance configuration
β”‚   β”œβ”€β”€ login/              #   Authentication (including OAuth)
β”‚   β”œβ”€β”€ server/             #   Server administration
β”‚   └── ...                 #   CMS, training, locations, etc.
β”œβ”€β”€ db/
β”‚   β”œβ”€β”€ migrations/         #   Phinx database migrations
β”‚   └── seeds/              #   Database seed data
β”œβ”€β”€ website/                # Docusaurus website & documentation
β”‚   β”œβ”€β”€ docs/               #   User guide, self-hosting, contributor docs
β”‚   └── src/                #   React components & custom pages
β”œβ”€β”€ .devcontainer/          # VS Code / Codespaces dev environment
β”œβ”€β”€ Dockerfile              # Production Docker image definition
└── composer.json           # PHP dependencies

Architecture Overview

AdamRMS follows a server-rendered architecture with a JSON API layer:

  1. Web Pages: PHP controller β†’ headSecure.php (auth & setup) β†’ Twig template rendering
  2. API Endpoints: PHP handler β†’ apiHeadSecure.php (auth) β†’ JSON response via finish()
  3. Multi-tenancy: All data is scoped to an "instance" (business), and users can belong to multiple instances with different permissions in each
  4. Permissions: Two-tier system β€” server permissions (global admin actions) and instance permissions (per-business actions)
  5. Database: All entities use soft deletes (*_deleted flags) rather than hard deletes

Self-Hosting with Docker

A maintained Docker image is published to GitHub Packages as adam-rms/adam-rms, supporting both linux/amd64 and linux/arm64 platforms.

The container runs PHP 8.3 with Apache, exposes the application on port 80, and automatically runs database migrations on startup.

For full self-hosting instructions, including required environment variables and database setup, see the self-hosting guide.

License note: AdamRMS is licensed under AGPLv3, which means any changes you make to the source code must be kept open source.

Contributing

Open in GitHub Codespaces

Contributions are very welcome! Please see the contributing guide for full details.

Development Environment

This repo includes a pre-configured devcontainer that sets up everything you need:

Service Port Purpose
PHP/Apache 8080 Application server
MySQL 8.0 3306 Database
S3 Mock 8081 Local file storage emulation
phpMyAdmin 8082 Database admin UI
Mailpit 8083 Email testing (captures all outbound mail)

Getting started:

  1. GitHub Codespaces (recommended) β€” click the badge above to launch a ready-to-use cloud environment
  2. VS Code β€” clone the repo, open it in VS Code, and use the "Reopen in Container" command

The devcontainer will automatically install dependencies, run database migrations, and seed test data.

License

AdamRMS is licensed under the GNU Affero General Public License v3.0.

About

Rental Management System for Theatre, AV & Broadcast

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages