MCPSERV.CLUB
Personal Management System

Personal Management System

Self-Hosted

All‑in‑one personal data organizer

Active(100)
3.6kstars
0views
Updated 1 day ago

Overview

Discover what makes Personal Management System powerful

**Personal Management System (PMS)** is a lightweight, self‑hosted backend that functions as the core of a personal data hub. It exposes a RESTful API and serves JSON to a decoupled frontend (available on GitHub) while persisting data in a relational database. The system is intentionally minimal, mimicking the core concepts of CMS/CRM platforms such as WordPress or SugarCRM but stripped to the essentials needed for a single‑user data store. This design allows developers to extend functionality with custom modules or plugins without the overhead of a full‑blown CMS.

Modular data domains

User‑centric security

REST API

Extensibility hooks

Overview

Personal Management System (PMS) is a lightweight, self‑hosted backend that functions as the core of a personal data hub. It exposes a RESTful API and serves JSON to a decoupled frontend (available on GitHub) while persisting data in a relational database. The system is intentionally minimal, mimicking the core concepts of CMS/CRM platforms such as WordPress or SugarCRM but stripped to the essentials needed for a single‑user data store. This design allows developers to extend functionality with custom modules or plugins without the overhead of a full‑blown CMS.

Key Features

  • Modular data domains – Todo/Goals, Notes, Contacts, Passwords, Calendar, Payments, and more.
  • User‑centric security – Authentication is JWT‑based with optional two‑factor and password locking for local use.
  • REST API – CRUD endpoints, search filters, pagination, and export capabilities (CSV/JSON).
  • Extensibility hooksbeforeCreate, afterUpdate events and a plugin registry that lets developers inject business logic or UI widgets.

Technical Stack

LayerTechnology
Web frameworkPHP 8.x with Symfony components (HTTPFoundation, Routing).
DatabasePostgreSQL (default) or MySQL; ORM via Doctrine.
AuthenticationSymfony Security component, JWT tokens (lexik/jwt‑authentication).
API DocumentationOpenAPI 3.0 spec generated by NelmioApiDocBundle.
ContainerizationOfficial Dockerfile and docker‑compose scripts; ready for Kubernetes or Docker Swarm.
TestingPHPUnit with Symfony’s WebTestCase, Behat for BDD.

The backend is written in PHP, leveraging Symfony’s modular architecture to keep the codebase clean and testable. Doctrine ORM abstracts database interactions, while Symfony’s event dispatcher provides a robust plugin mechanism.

Core Capabilities

  • CRUD for each module with validation rules and serialization groups.
  • Batch operations (bulk delete, bulk status update) via dedicated endpoints.
  • Search & filtering using Doctrine QueryBuilder; supports full‑text search on notes and contacts.
  • Webhooks – developers can register URLs to receive POST notifications for create/update/delete events.
  • Extensible data schema – custom fields can be added per module via a JSONB column, enabling tailored data capture without code changes.

Deployment & Infrastructure

PMS is designed for self‑hosting on any LAMP/LEMP stack or container orchestration platform. A single Docker image contains PHP, Nginx, and the application code; volume mounts persist database data. The system scales horizontally by running multiple API instances behind a load balancer; PostgreSQL replication can be added for read‑scales. For low‑traffic personal use, a Raspberry Pi running Docker is sufficient and can be locked down with firewall rules to expose only the API port.

Integration & Extensibility

  • Plugin SDK – developers can create PHP packages that hook into the event system; these are auto‑discovered via Composer autoload.
  • External API – any external service (calendar sync, email notifications) can be integrated by consuming the public API or listening to webhooks.
  • Custom UI – the frontend is a separate SPA (React/Vue) that can be swapped out; developers may replace it with a static site or mobile app.
  • Authentication adapters – support for LDAP, OAuth2 providers (Google, GitHub) is available via Symfony Security bundles.

Developer Experience

The project follows PSR‑4 autoloading, comprehensive unit tests, and an OpenAPI spec that can be imported into Postman or Insomnia. Documentation is hosted on GitHub Pages, with clear module overviews and code examples. The community is small but active; contributors are welcomed via pull requests, and issues are triaged quickly. Configuration is driven by environment variables and a .env file, making local development straightforward.

Use Cases

  1. Personal Data Hub – Consolidate notes, contacts, passwords, and goals on a single offline‑first server.
  2. Home Automation – Expose PMS data to Home Assistant or custom IoT dashboards via the API.
  3. Educational Projects – Teach students about REST, ORM, and plugin architecture in a real application.
  4. Enterprise SSO – Integrate PMS with corporate LDAP for secure access to personal dashboards.

Advantages

  • Simplicity & Focus – No bloat; only the features you need.
  • Full Source Control – Own every line of code and data; no vendor lock‑in.
  • Extensible Architecture – Add modules or modify existing ones with minimal effort.
  • Lightweight Deployment – Runs on a Raspberry Pi or any cloud VM with minimal resources.
  • Open‑Source Licensing – MIT license allows commercial use without royalties.

In summary, PMS offers developers a clean, modular backend for personal data management that can be extended, deployed, and maintained entirely on their own infrastructure.

Open SourceReady to get started?

Join the community and start self-hosting Personal Management System today