# Personal Management System: A Self-Hosted Hub for Personal Data

> Personal Management System (PMS) is a self-hosted PHP web application that consolidates personal data including notes, passwords, contacts, health records, finances, and files into one place running on your own server or Raspberry Pi. The project ships a Docker Compose stack and splits into a separate frontend and backend repository.

**Volmarg/personal-management-system** — Your web application for managing personal data.

- Repository: https://github.com/Volmarg/personal-management-system
- Website: http://personal-management-system.pl/
- Stars: 4,168 · Forks: 347
- Language: PHP
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/volmarg-personal-management-system

## The Problem PMS Solves: One Place Instead of Many Cloud Services

The author built Personal Management System to avoid scattering personal data across OneDrive, Google Drive, separate note apps, and ad hoc password schemes. The stated goal is a single web application running continuously on a terminal or Raspberry Pi, connected to a home network but not to the internet.

The comparison the README draws is to a CMS like WordPress or a CRM: the system provides a structured set of modules for different types of personal data, and anyone with development knowledge can write additional extensions without understanding the whole codebase. This makes it an application for technically capable individuals who want control over their data rather than a product aimed at general consumers.

The project is split across two repositories. The one tracked here is the backend, written in PHP using the Symfony framework. The frontend is a separate repository (Volmarg/personal-management-system-front) that must be installed alongside the backend. Documentation and a live demo are available at the project homepage, where the demo credentials are admin@admin.admin for the login and admin for both the password and the lock password.

## The Docker Compose Stack: Five Services and What Each Does

The repository includes a docker-compose.yml that defines five services. Understanding what each provides is necessary before running the application.

The pms-database-mariadb service runs MariaDB 11.5.2. It sets up a database named pms and stores data in a named Docker volume called database. The root password in the default compose file is set to the string password, which must be replaced before any network-exposed deployment.

The pms-nginx service uses an Alpine-based Nginx image and proxies requests to the PHP-FPM container. It binds port 8002 on the host to port 80 inside the container, so the application is reachable at http://localhost:8002 by default.

The pms-php-fpm service builds from the docker/php-fpm directory in the repository. Its entrypoint starts the PHP-FPM daemon and then runs a custom entrypoint script (docker/php-fpm/entrypoint.bash) before keeping the container alive with nano. This is an unconventional pattern: the container stays running via an open text editor process rather than a foreground service, which is a design choice worth noting if container hygiene matters to your environment.

The pms-adminer service runs Adminer 4.8.0 on port 8081, giving direct database access through a browser interface. The pms-mail service runs Mailpit, a local mail catcher, on port 8082, and persists its database in a named volume.

To start the stack:

```bash
docker compose up -d
```

This pulls the images and builds the PHP-FPM container. After the stack is running, the application is available at port 8002, Adminer at 8081, and Mailpit at 8082.

## What the Modules Cover and Their Submodules

PMS organises personal data into over a dozen modules. Todo/Goals tracks personal goals and can link to a payments submodule to track money collected toward a specific objective. Notes stores categorised text notes including quick captures from phone calls and links for later review. Contacts backs up personal contact information as a safety measure against phone loss.

The Passwords module encrypts credentials in the database and provides a frontend copy button that decrypts and delivers the original password to the clipboard without displaying it in plain text. The Health module tracks illnesses, doctors, and appointments, and supports linking uploaded files. Achievements is a log of personal accomplishments.

Schedules handles recurring items such as car maintenance, bill cycles, and appointments, displaying upcoming items on the dashboard and in a notification bell. Issues tracks ongoing cases that need eventual resolution but do not require constant attention, with support for subrecords documenting contacts and progress on each case.

Travels stores destination ideas with Google Maps links and images. Payments is the most elaborate module: it has submodules for monthly expense tracking with automatic summaries, a Products Prices submodule for tracking item prices across locations, an owed-money tracker for debts in both directions, and a Bills submodule for one-off large expenses.

Shopping is a purchase wishlist. Job has two submodules: Afterhours tracks extra time worked beyond normal hours and allows allocating that time toward specific goals, and Holidays tracks remaining paid leave from a yearly pool.

Images organises photos and scans into masonry gallery folders with a lightbox viewer, renaming, and download options. Files provides a DataTable view of uploaded documents with extension, file type icon, and file size columns.

## Limitations: Two-Repository Setup and Compose Defaults

The most significant structural limitation is that the application requires two separate repositories. The backend (this repository) and the frontend (Volmarg/personal-management-system-front) must be installed and kept in sync. This means updates may require coordinating changes across both codebases, and anyone forking or self-hosting must track two upstream sources rather than one.

The default Docker Compose configuration uses a plaintext database password. Any deployment that is accessible beyond a trusted local network needs this changed before starting the stack. The compose file does not include HTTPS configuration; the README does not document TLS setup for the Nginx service.

The php-fpm container's entrypoint keeps the process alive with nano rather than a conventional foreground service, which can make container health checks and restart logic behave differently from a standard PHP-FPM setup. Teams running this in a monitored environment should verify that their health check tooling can handle this pattern.

The README describes the module set as doing what the author wants it to do, with the explicit acknowledgment that it offers fewer possibilities than WordPress or a full CRM. Any data category not covered by the existing modules requires writing a custom extension.

## Comparing PMS to Notion: Self-Hosted vs. SaaS

Notion is a widely used SaaS workspace tool that covers notes, tasks, databases, and documents through a flexible block-based editor. It runs in the cloud, stores data on Notion's servers, and requires no infrastructure setup from the user.

Personal Management System takes the opposite position on every one of those points. Data stays on the user's own hardware, there is no cloud dependency, and setup requires running a Docker Compose stack with five services. PMS trades Notion's flexibility and ease of access for full data ownership.

The practical difference matters for privacy-sensitive data such as passwords and health records. PMS stores those categories in a database the user administers. With Notion, that data would reside on external servers under a third-party provider's terms of service. PMS also works on a home network without any internet connectivity, which Notion does not.

The trade-off is maintenance burden. PMS requires keeping Docker, MariaDB, PHP, and the application itself updated across two repositories. Notion handles all of that for the user.

## Maintenance Status and MIT Licence

Personal Management System is actively developed. The most recent release is v2.1.0, published on 2026-09-27, the day before this article. Previous releases include v2.0.4 in April 2026 and v2.0.3 in January 2026, indicating a consistent release cadence across the year.

The project is licensed under the MIT licence. MIT permits use, modification, and distribution without restriction for both personal and commercial purposes, requiring only that the copyright notice be preserved in copies. There are no copyleft conditions.

A Raspberry Pi-specific Docker Compose file (docker-compose-pi.yml) is present in the repository, confirming that the author's stated deployment target of a home server or Raspberry Pi is an explicitly supported configuration rather than a theoretical one.

## Conclusion

Personal Management System is the right fit for developers who want their personal data on hardware they control and are comfortable maintaining a two-repository PHP stack. Anyone who wants a ready-to-run SaaS product or a mobile-first experience should look elsewhere. Before deploying, check whether your intended host can run Docker and has enough storage for the files and images modules. The MIT licence allows private use without restriction, but the compose file ships with a hardcoded database password that must be changed before the service is exposed outside a home network.

## FAQ

### What is the Personal Management System web application?

Personal Management System is a self-hosted PHP application built on Symfony that provides modules for notes, contacts, passwords, finances, health records, images, and files. It is designed to run on a private home server or Raspberry Pi, keeping all personal data under the user's own control.

### Does Personal Management System support Docker Compose deployment?

Yes. The repository includes a docker-compose.yml that defines five services: MariaDB 11.5.2, Nginx, PHP-FPM, Adminer for database access, and Mailpit for local mail catching. The application is accessible on port 8002 after running docker compose up -d. A separate compose file for Raspberry Pi (docker-compose-pi.yml) is also included.

### Is the frontend included in this repository?

No. This repository contains only the backend. The README links to a separate repository, Volmarg/personal-management-system-front, which must be installed alongside the backend for the application to function.

## Sources

- [License: MIT](https://github.com/Volmarg/personal-management-system/blob/main/LICENSE)
- [Project website](http://personal-management-system.pl/)
- [README](https://github.com/Volmarg/personal-management-system/blob/main/README.md)
- [Releases](https://github.com/Volmarg/personal-management-system/releases)
- [Volmarg/personal-management-system on GitHub](https://github.com/Volmarg/personal-management-system)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/volmarg-personal-management-system
