Frequently Asked Questions

Find answers to common questions about the CMS.

General Questions

This is a multi-tenant content management system built with modern technologies including Symfony, Nuxt 3, and Vue 3. It provides both a public-facing front-office and an administrative back-office.
The CMS is designed for:
  • Organizations needing multi-tenant capabilities
  • Teams requiring separate front-office and back-office interfaces
  • Developers looking for a modern, API-first CMS
  • Content managers needing workflow management
Key features include:
  • Multi-tenancy with complete data isolation
  • RESTful API with API Platform
  • Modern front-end with Nuxt 3
  • Editorial workflow management
  • Keycloak authentication
  • PostgreSQL database

Technical Questions

Backend:
  • Symfony 7.4
  • API Platform 3.4
  • PostgreSQL 14+
  • Keycloak for authentication
Frontend:
  • Nuxt 3
  • Vue 3
  • Vite
See the Technology Stack for more details.
Required:
  • PHP 8.2 or higher
  • Node.js 18 or higher
  • PostgreSQL 14 or higher
  • 2GB RAM minimum (4GB recommended)
Optional:
  • Docker for containerized deployment
  • Redis for caching
Yes! The API is fully documented with OpenAPI/Swagger specifications. See the API Reference for complete documentation.
The CMS implements multi-tenancy at both the database and API level:
  • Each tenant’s data is completely isolated
  • Tenant identification via X-Tenant-ID header
  • Automatic tenant filtering in all queries
  • Users can only access their tenant’s data
See the Architecture Overview for more details.

Installation & Setup

Follow these steps:
  1. Clone the repository
  2. Install PHP and Node.js dependencies
  3. Configure environment variables
  4. Set up the database
  5. Run migrations
  6. Start the development servers
See the Getting Started Guide for detailed instructions.
Yes! Docker configuration is included for easy deployment. Docker Compose files are provided for:
  • Backend API
  • Frontend applications
  • PostgreSQL database
  • Keycloak authentication server
Authentication is handled by Keycloak. Configuration includes:
  1. Setting up Keycloak realm
  2. Creating clients for API and frontends
  3. Configuring environment variables
  4. Setting up user roles and permissions
Check the Developer Documentation for authentication guides.

Development

To add a new Doctrine entity:
  1. Create the entity class with annotations
  2. Configure serialization groups
  3. Add API Platform resources
  4. Create migrations
  5. Update documentation in .context/
Always update documentation when adding entities!
API Platform generates endpoints automatically from entities. For custom endpoints:
  1. Create a custom controller
  2. Add API Platform attributes
  3. Configure serialization
  4. Document in .context/api/endpoints.md
  5. Update OpenAPI spec
AI agent documentation is in the .context/ directory:
  • .context/global/ - Cross-cutting concerns
  • .context/api/ - Symfony API docs
  • .context/front-office/ - Nuxt 3 docs
  • .context/back-office/ - Vue 3 docs
See the AI Agents Guide for more information.
Run tests using:
# Backend tests
php bin/phpunit

# Frontend tests
npm run test

# Documentation tests
./tools/test-documentation.sh

Troubleshooting

Common authentication issues:
  • Missing token: Include Authorization: Bearer <token> header
  • Invalid token: Token may have expired, request a new one
  • Missing tenant: Include X-Tenant-ID header
  • Wrong tenant: Verify you’re using the correct tenant ID
Check Keycloak logs for detailed error messages.
Try these steps:
  1. Check database connection settings
  2. Verify PostgreSQL is running
  3. Check migration files for errors
  4. Review previous migrations status
  5. Check database user permissions
Run php bin/console doctrine:migrations:status to check migration status.
Common build issues:
  • Missing dependencies: Run npm install
  • Node version: Ensure Node.js 18+ is installed
  • Port conflict: Check if port 3000 is available
  • Environment variables: Verify .env configuration
Check the build output for specific error messages.
To clear various caches:Symfony cache:
php bin/console cache:clear
Nuxt cache:
rm -rf .nuxt
npm run dev
Documentation cache:
rm -rf docs/.mintlify
npx mintlify dev

Support

To report a bug:
  1. Check if it’s already reported in GitHub Issues
  2. Create a new issue with:
    • Clear description
    • Steps to reproduce
    • Expected vs actual behavior
    • System information
    • Error logs if applicable
Feature requests are welcome! Please:
  1. Check existing feature requests
  2. Create a GitHub issue with the “feature” label
  3. Describe the feature and use case
  4. Explain why it would be valuable
Get help through:
  • Documentation: Check this documentation site
  • GitHub Issues: For bugs and feature requests
  • GitHub Discussions: For questions and discussions
  • Support Email: support@example.com
Contributions are welcome! Please:
  1. Read the contributing guidelines
  2. Check .cursorrules for coding standards
  3. Create a feature branch
  4. Make your changes
  5. Update documentation
  6. Submit a pull request
All changes require documentation updates!

More Questions?