A modern, production-ready Pimcore template that combines the power of Pimcore's CMS/PIM/DAM capabilities with a Vue.js frontend. Features Docker containerization, TypeScript support, TailwindCSS styling, and a comprehensive development workflow.
⚠️ Work in Progress
This template is currently under active development. Some features may be incomplete or subject to change. Use with caution in production environments.
Infrastructure
- Docker -> Containerization
- Docker Compose -> Container Orchestration
- nginx -> Web Server
- supervisord -> Process Management
Backend
- PHP 8.3 -> Backend Language
- Pimcore -> Digital Experience Platform (CMS/PIM/DAM)
- Symfony 6.2 -> PHP Framework
- MySQL/MariaDB -> Database
- Pimcore Data Hub -> GraphQL API
- Codeception -> Testing Framework
Frontend
- Vue 3 -> Frontend Framework
- TypeScript -> Type Safety
- Vite -> Build Tool & Dev Server
- TailwindCSS v4 -> CSS Framework
- SCSS -> CSS Preprocessor
- Unix based OS (Linux, MacOS, WSL2)
- Docker (>= 24.0.5) -> This version already includes docker compose
- make (>= 4.4.1)
- Node.js (>= 22.11.0) -> Use nvm or directly install Node.js
- PHP 8.3+ -> For local development (optional, runs in Docker)
- Clone the repository:
git clone <your-repository-url>
- Enter the directory:
cd modern-pimcore-template
- Copy the
.env.local.example
file to.env.local
and adjust the variables to your needs - Install dependencies and start development:
make dev
- Initialize Pimcore (first time only):
make init
- Access the application:
- Frontend: http://localhost (or your configured port)
- Pimcore Admin: http://localhost/admin
- GraphQL API: http://localhost/graphql (via Data Hub)
Command | Description |
---|---|
make help |
Show available commands |
make dev |
Start development environment (Vite + Docker) |
make init |
Install Pimcore and setup project (first time only) |
make stop |
Stop development environment |
make drop |
Remove containers and volumes |
make test |
Start test profile services |
make dependencies |
Install Node.js and PHP dependencies |
make setup-project |
Run project setup (documents, data setup) |
make dump |
Export database schema and data to dump files |
The project includes a sophisticated database dump system located in the dump/
folder:
dump/dump.php
: Smart export script that creates seed files for your Pimcore installation- Purpose: Exports database schema and data while excluding Pimcore's core tables (already in install.sql)
- Output: Creates multiple SQL files:
data-0-bootstrap.sql
: Custom table schemasdata-1-[table].sql
: Table data (per table)data-2-views.sql
: Database views
- Usage: Run
make dump
to export current database state for sharing or backup
The dump system automatically excludes temporary tables (cache, logs, locks) and handles virtual columns properly.
├── assets/ # Frontend assets (SCSS, TypeScript, Vue components)
├── config/ # Symfony & Pimcore configuration
├── docker/ # Docker configuration files
├── dump/ # Database dump system
├── public/ # Web root
├── src/ # PHP application code
├── templates/ # Twig templates
├── tests/ # Codeception tests
├── var/ # Generated files (classes, cache)
└── Makefile # Development commands
Run tests using Codeception:
make test
Tests are organized in:
tests/Unit/
- Unit teststests/Functional/
- Functional tests
- The project uses Pimcore's Data Hub for GraphQL API endpoints
- Frontend assets are built with Vite and served during development
- Docker handles the PHP/nginx/database stack
- The Makefile sources environment variables from
.env.local
- Event management system with Vue.js components for interactive features
- Web2Print functionality for document generation