Neos CMS
Modern PHP CMS with inline editing and content repository.
Overview
Neos is a next-generation content management system built on the Flow PHP framework, designed from the ground up to provide true inline editing capabilities and a flexible content repository architecture. Unlike traditional CMSes that separate content editing from content presentation, Neos allows editors to modify content directly on the live page through its innovative Fusion rendering engine and node-based content structure. This modern approach eliminates the back-and-forth between preview and edit modes that plague conventional content management workflows.
This stack combines Neos with MariaDB to create a robust content management platform that leverages MariaDB's enhanced storage engines and improved performance characteristics over standard MySQL. MariaDB's Aria storage engine provides crash-safe tables with better caching, while its advanced indexing capabilities handle Neos's hierarchical content repository structure more efficiently. The combination addresses the complex database requirements of Neos's node-based content architecture while maintaining compatibility with PHP applications.
Content creators, digital agencies, and organizations requiring sophisticated content workflows will find this stack particularly valuable. The inline editing capabilities make Neos ideal for teams where non-technical editors need direct control over content presentation, while developers benefit from the powerful Fusion templating system and Flow framework's dependency injection and aspect-oriented programming features.
Key Features
- True inline editing with live content manipulation directly on rendered pages
- Content Repository with hierarchical node structure for flexible content organization
- Fusion rendering engine providing declarative templating with prototype inheritance
- Flow framework foundation with dependency injection and aspect-oriented programming
- MariaDB Aria storage engine for crash-safe tables and enhanced caching performance
- Multi-dimensional content with automatic workspace handling for drafts and publications
- Content dimensions for multilingual and multi-variant content management
- Eel expression language for dynamic content processing and transformations
Common Use Cases
- 1Corporate websites requiring non-technical editors to update content without developer intervention
- 2Digital marketing agencies managing multiple client sites with complex content workflows
- 3Multi-brand organizations needing content dimensions for different markets and languages
- 4Educational institutions requiring collaborative content creation with inline editing
- 5E-commerce platforms needing flexible product content management beyond simple catalogs
- 6Publishing companies managing editorial workflows with workspace-based content staging
- 7Enterprise intranets where business users need direct content control with approval processes
Prerequisites
- Minimum 1GB RAM available for MariaDB optimal performance and Neos content processing
- Port 8080 available for Neos web interface and content delivery
- Basic understanding of PHP application deployment and configuration management
- Familiarity with content management concepts and editorial workflows
- Docker and Docker Compose installed with sufficient storage for content and database volumes
- Understanding of environment variable configuration for database credentials
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 neos: 3 image: neos/neos:latest4 container_name: neos5 restart: unless-stopped6 environment: 7 NEOS_DB_HOST: mariadb8 NEOS_DB_NAME: neos9 NEOS_DB_USER: neos10 NEOS_DB_PASSWORD: ${DB_PASSWORD}11 volumes: 12 - neos_data:/data13 ports: 14 - "8080:8080"15 depends_on: 16 - mariadb17 networks: 18 - neos-network1920 mariadb: 21 image: mariadb:1122 container_name: neos-mariadb23 environment: 24 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}25 MYSQL_DATABASE: neos26 MYSQL_USER: neos27 MYSQL_PASSWORD: ${DB_PASSWORD}28 volumes: 29 - mariadb_data:/var/lib/mysql30 networks: 31 - neos-network3233volumes: 34 neos_data: 35 mariadb_data: 3637networks: 38 neos-network: 39 driver: bridge.env Template
.env
1DB_PASSWORD=changeme2ROOT_PASSWORD=changemeUsage Notes
- 1Docs: https://docs.neos.io/
- 2Access at http://localhost:8080, backend at /neos
- 3True inline editing: edit content directly on page
- 4Content Repository: node-based content structure
- 5Fusion rendering: powerful template engine
- 6Flow framework foundation, modern PHP 8+ architecture
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
neos
neos:
image: neos/neos:latest
container_name: neos
restart: unless-stopped
environment:
NEOS_DB_HOST: mariadb
NEOS_DB_NAME: neos
NEOS_DB_USER: neos
NEOS_DB_PASSWORD: ${DB_PASSWORD}
volumes:
- neos_data:/data
ports:
- "8080:8080"
depends_on:
- mariadb
networks:
- neos-network
mariadb
mariadb:
image: mariadb:11
container_name: neos-mariadb
environment:
MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
MYSQL_DATABASE: neos
MYSQL_USER: neos
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- mariadb_data:/var/lib/mysql
networks:
- neos-network
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 neos:5 image: neos/neos:latest6 container_name: neos7 restart: unless-stopped8 environment:9 NEOS_DB_HOST: mariadb10 NEOS_DB_NAME: neos11 NEOS_DB_USER: neos12 NEOS_DB_PASSWORD: ${DB_PASSWORD}13 volumes:14 - neos_data:/data15 ports:16 - "8080:8080"17 depends_on:18 - mariadb19 networks:20 - neos-network2122 mariadb:23 image: mariadb:1124 container_name: neos-mariadb25 environment:26 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}27 MYSQL_DATABASE: neos28 MYSQL_USER: neos29 MYSQL_PASSWORD: ${DB_PASSWORD}30 volumes:31 - mariadb_data:/var/lib/mysql32 networks:33 - neos-network3435volumes:36 neos_data:37 mariadb_data:3839networks:40 neos-network:41 driver: bridge42EOF4344# 2. Create the .env file45cat > .env << 'EOF'46DB_PASSWORD=changeme47ROOT_PASSWORD=changeme48EOF4950# 3. Start the services51docker compose up -d5253# 4. View logs54docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/neos-cms/run | bashTroubleshooting
- Neos shows database connection errors: Verify MariaDB container is fully started and NEOS_DB_* environment variables match MYSQL_* database configuration
- Inline editing interface not loading: Check that Neos container has proper write permissions to /data volume and Flow cache can be written
- Content Repository initialization fails: Ensure MariaDB has sufficient memory allocated and InnoDB buffer pool is properly configured for node hierarchy queries
- Fusion rendering errors with prototypes: Verify Neos cache is cleared and Flow framework has detected all package configurations properly
- MariaDB performance issues with content queries: Check that Aria storage engine is enabled and adjust query_cache_size for hierarchical content lookups
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download