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
- 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
| 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 |
βββ 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
AdamRMS follows a server-rendered architecture with a JSON API layer:
- Web Pages: PHP controller β
headSecure.php(auth & setup) β Twig template rendering - API Endpoints: PHP handler β
apiHeadSecure.php(auth) β JSON response viafinish() - Multi-tenancy: All data is scoped to an "instance" (business), and users can belong to multiple instances with different permissions in each
- Permissions: Two-tier system β server permissions (global admin actions) and instance permissions (per-business actions)
- Database: All entities use soft deletes (
*_deletedflags) rather than hard deletes
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.
Contributions are very welcome! Please see the contributing guide for full details.
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:
- GitHub Codespaces (recommended) β click the badge above to launch a ready-to-use cloud environment
- 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.
AdamRMS is licensed under the GNU Affero General Public License v3.0.