The apps.pet system is a modular and extensible platform running on Linux using Docker. It leverages OpenLDAP for centralized authentication and MariaDB as a relational database. Various services are containerized, ensuring isolation, ease of maintenance, and scalability.
Backend Infrastructure
- OpenLDAP serves as the authentication backend, providing a unified login mechanism for all services. It enforces a structured user and group management system.
- MariaDB is the database engine supporting multiple applications, including BookStack (wiki), Gitea (source code management), and Snipe-IT (asset management).
- PostgreSQL is the database engine supporting multiple applications, including Redmine (issue tracker) and Matrix/Synapse (chat server).
- Docker Networking is used to create an internal bridge network, allowing secure and isolated communication between containers.
Frontend & Middleware
- Caddy is used as a reverse proxy, handling HTTPS termination and routing traffic securely. It automates TLS certificate management, ensuring encrypted connections to all services.
- Hugo is deployed as a static website generator, used for providing public-facing documentation or announcements.
- Self-Service Password is integrated to allow users to reset their passwords via a web interface without administrator intervention.
Application Layer
- Gitea provides a Git-based source code management system with an easy-to-use web interface, supporting issue tracking and repository management.
- BookStack serves as a documentation and wiki system, allowing structured knowledge management and team collaboration.
- Matrix-Synapse is the chat backend, providing real-time communication via the Matrix protocol.
- Element is the Matrix web client, offering a modern, encrypted chat experience integrated with Synapse.
- Redmine is an issue tracking and project management tool that supports multiple projects, role-based access control, and integration with Gitea.
- Snipe-IT is an IT asset management system designed for tracking hardware, software licenses, and consumables.
Security & Deployment
- Services are deployed using Docker Compose, ensuring consistency and making it easy to add or remove applications as needed.
- Persistent volumes are used for databases, configuration files, and essential data, ensuring that container restarts do not result in data loss.
- Role-based access control is enforced through OpenLDAP, allowing fine-grained permission management across different services.
- All internal communication is restricted to the Docker bridge network, minimizing exposure to external threats.
The system is designed with flexibility in mind, allowing seamless integration of new applications. By relying on open-source technologies, it remains adaptable and independent of proprietary solutions, ensuring long-term maintainability and security.
