Overview
Discover what makes Admidio powerful
Admidio is a PHP‑based, open‑source Human Resources Management system that focuses on membership and role management for associations and organizations. From a developer’s point of view, it acts as a modular user‑management engine that can be embedded into existing web applications or deployed as a standalone portal. The core of the system is a **role‑based access control (RBAC)** framework that maps organizational hierarchies to database tables, allowing fine‑grained permissions on every entity (profiles, events, documents). Admidio’s architecture is intentionally lightweight: it relies on the LAMP/LEMP stack (PHP ≥7.2, MySQL 5+ or PostgreSQL 9+) and follows the Model‑View‑Controller pattern with a custom templating layer. This makes it easy to audit, extend, or replace individual components without touching the core.
Language & Framework
Database
Templating
Internationalization
Overview
Admidio is a PHP‑based, open‑source Human Resources Management system that focuses on membership and role management for associations and organizations. From a developer’s point of view, it acts as a modular user‑management engine that can be embedded into existing web applications or deployed as a standalone portal. The core of the system is a role‑based access control (RBAC) framework that maps organizational hierarchies to database tables, allowing fine‑grained permissions on every entity (profiles, events, documents). Admidio’s architecture is intentionally lightweight: it relies on the LAMP/LEMP stack (PHP ≥7.2, MySQL 5+ or PostgreSQL 9+) and follows the Model‑View‑Controller pattern with a custom templating layer. This makes it easy to audit, extend, or replace individual components without touching the core.
Technical Stack
- Language & Framework: Pure PHP (no external framework) with object‑oriented design. The codebase is split into
adm_program(core logic) andadm_plugins(extension points). - Database: Supports both MySQL/MariaDB and PostgreSQL; the schema is versioned in SQL migration files, enabling automated upgrades.
- Templating: Uses a simple PHP‑based template system (
adm_theme) that can be swapped for Twig or Blade if desired. - Internationalization: All strings are externalized in language files; the project ships with 30+ locales, making it trivial to add new translations.
- Security: Built‑in CSRF protection, input sanitization, and password hashing (bcrypt). The RBAC engine enforces permissions at the controller level.
Core Capabilities
| Feature | Technical Detail |
|---|---|
| Dynamic Roles & Groups | Role definitions are stored in roles and groups tables; developers can create custom role hierarchies via the admin UI or directly in SQL. |
| Customizable Profiles | Profile fields are defined in the profile_fields table; API endpoints (/api/profile) expose CRUD operations for programmatic updates. |
| Relationship Management | Bidirectional relationships (spouse, parent‑child) are represented in a relationships table; helper functions generate traversal queries. |
| Event & Calendar | Events are stored in events; the system exposes a REST‑style API (/api/events) for integration with external calendars (Google, Outlook). |
| Media Gallery & E‑cards | Photo albums and e‑card templates are managed via photos and ecard_templates; images are stored in the filesystem with a configurable path. |
| Messaging & Email | Uses PHP’s mail() or SMTP libraries; templates are stored in the DB and can be overridden by plugins. |
| Import/Export | CSV/Excel import scripts (import.php) use PHP‑Spreadsheet under the hood; export routes return JSON, CSV, PDF via FPDF. |
| Plugin System | Plugins reside in adm_plugins; each plugin implements a defined interface (AdmidioPluginInterface) and can hook into lifecycle events. |
Deployment & Infrastructure
Admidio is designed for self‑hosting on any LAMP/LEMP server. It requires minimal resources (≈30 MB of RAM, 1 CPU core) and can run behind Apache or Nginx with PHP‑FPM. The repository includes a Dockerfile and a minimal docker-compose.yml that spins up PHP, MySQL, and Nginx in one command. For scalability, developers can:
- Deploy multiple PHP workers behind a load balancer.
- Use a read‑replica MySQL/PostgreSQL setup for heavy query loads.
- Store media on an external object store (S3, MinIO) by configuring the
media_pathinconfig.php. - Cache rendered templates with Redis or APCu for faster response times.
Integration & Extensibility
Admidio exposes a RESTful API (JSON endpoints) for all major entities, making it straightforward to integrate with front‑end frameworks (React, Vue) or other back‑ends. Webhooks can be configured to trigger on user creation, role changes, or event registrations. The plugin architecture allows developers to:
- Add new modules (e.g., payroll, time tracking) without touching core code.
- Override templates or CSS to match brand guidelines.
- Hook into the authentication flow (OAuth, LDAP) by implementing the
AdmidioAuthInterface. - Extend database schema with migration files that are automatically applied during updates.
Developer Experience
The codebase follows PSR‑4 autoloading and includes inline PHPDoc comments, which aid IDE autocomplete. The official documentation (online wiki) covers installation, API usage, and plugin development guides. Community support is active on GitHub issues and a dedicated forum; contributors frequently submit pull requests for new features or bug fixes. Licensing is GPL‑v3, which allows commercial use while ensuring the core remains open.
Use Cases
- Association Management – A non‑profit can deploy Admidio to manage members, events, and document repositories with minimal custom code.
- Intranet User Directory – A company can embed Admidio’s profile and role system into its intranet, exposing employee data via API to HR tools.
- Event Registration Platform – The event module can be used as a lightweight registration system for conferences, with email notifications and CSV exports.
Open SourceReady to get started?
Join the community and start self-hosting Admidio today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Mere Medical
Centralize Your Health Records, One Secure Place
Redash
Collaborative SQL dashboards for all data sources
Kubek
Minecraft server control panel for Linux & Windows
CyTube
Synchronized video watching with chat for shared playlists
Supysonic
Self‑hosted Subsonic API server for streaming and managing music
HandBrake Web
Web‑based interface for HandBrake across multiple machines