October CMS
Laravel-based CMS with a clean, simple interface.
Overview
October CMS is a modern content management system built on the Laravel PHP framework, created by Alexey Bobkov and Samuel Georges in 2014. It emphasizes simplicity and developer-friendly features, offering a clean administrative interface combined with powerful customization capabilities through its unique component-based architecture. Unlike traditional CMSs that rely heavily on themes and plugins, October CMS uses a flexible approach with pages, partials, layouts, and reusable components that can be mixed and matched to create dynamic websites.
This Docker stack pairs October CMS with MySQL 8.0, leveraging Laravel's Eloquent ORM for database interactions and MySQL's InnoDB storage engine for ACID-compliant transactions. The setup takes advantage of October's built-in caching mechanisms and MySQL's query cache to deliver optimal performance for content-heavy websites. The aspendigital/octobercms image provides a pre-configured Apache environment with PHP extensions required for October's marketplace integration and file management features.
Developers and agencies building custom websites, corporate portals, or content-driven applications will find this combination particularly valuable. The Laravel foundation provides familiar MVC patterns and Artisan CLI tools, while October's Twig templating engine offers designers flexibility without requiring deep PHP knowledge. This stack is ideal for teams transitioning from WordPress who need more developer control, or Laravel developers who want CMS functionality without building it from scratch.
Key Features
- Twig templating engine with Blade template inheritance for flexible theme development
- Component-based architecture allowing drag-and-drop page building with reusable elements
- Laravel Eloquent ORM integration with MySQL InnoDB for complex relational data modeling
- October Marketplace integration for one-click plugin and theme installation
- Built-in media manager with image resizing and CDN support through Laravel filesystem
- Ajax framework for dynamic content loading without page refreshes
- Schema Builder for database migrations through October's version management system
- Multi-site management capabilities with shared plugins and themes across installations
Common Use Cases
- 1Corporate websites requiring custom content types and workflow approval processes
- 2E-commerce sites using October's Shopaholic plugin with complex product catalogs
- 3Portfolio and agency websites needing flexible page layouts and media galleries
- 4Multi-lingual websites leveraging October's RainLab.Translate plugin with MySQL collation
- 5Educational platforms requiring user registration, course management, and progress tracking
- 6News and magazine websites with article categorization, tagging, and author management
- 7Event management platforms with calendar integration, registration forms, and payment processing
Prerequisites
- Docker and Docker Compose installed with at least 2GB available RAM for MySQL operations
- Port 80 available on the host system for October CMS web interface access
- Basic understanding of Laravel MVC patterns and Twig templating syntax
- Familiarity with MySQL database administration for backup and optimization tasks
- Environment file (.env) configured with secure database passwords and root credentials
- Understanding of October CMS component lifecycle and plugin architecture
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 october: 3 image: aspendigital/octobercms:latest4 container_name: october5 restart: unless-stopped6 environment: 7 DB_TYPE: mysql8 DB_HOST: mysql9 DB_DATABASE: october10 DB_USERNAME: october11 DB_PASSWORD: ${DB_PASSWORD}12 volumes: 13 - october_data:/var/www/html14 ports: 15 - "80:80"16 depends_on: 17 - mysql18 networks: 19 - october-network2021 mysql: 22 image: mysql:8.023 container_name: october-mysql24 environment: 25 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}26 MYSQL_DATABASE: october27 MYSQL_USER: october28 MYSQL_PASSWORD: ${DB_PASSWORD}29 volumes: 30 - mysql_data:/var/lib/mysql31 networks: 32 - october-network3334volumes: 35 october_data: 36 mysql_data: 3738networks: 39 october-network: 40 driver: bridge.env Template
.env
1DB_PASSWORD=changeme2ROOT_PASSWORD=changemeUsage Notes
- 1Docs: https://docs.octobercms.com/
- 2Access at http://localhost, backend at /backend
- 3Built on Laravel: Eloquent ORM, Blade + Twig templates
- 4Marketplace for plugins and themes
- 5Components: reusable page building blocks
- 6Free and paid licenses available
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
october
october:
image: aspendigital/octobercms:latest
container_name: october
restart: unless-stopped
environment:
DB_TYPE: mysql
DB_HOST: mysql
DB_DATABASE: october
DB_USERNAME: october
DB_PASSWORD: ${DB_PASSWORD}
volumes:
- october_data:/var/www/html
ports:
- "80:80"
depends_on:
- mysql
networks:
- october-network
mysql
mysql:
image: mysql:8.0
container_name: october-mysql
environment:
MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
MYSQL_DATABASE: october
MYSQL_USER: october
MYSQL_PASSWORD: ${DB_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
networks:
- october-network
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 october:5 image: aspendigital/octobercms:latest6 container_name: october7 restart: unless-stopped8 environment:9 DB_TYPE: mysql10 DB_HOST: mysql11 DB_DATABASE: october12 DB_USERNAME: october13 DB_PASSWORD: ${DB_PASSWORD}14 volumes:15 - october_data:/var/www/html16 ports:17 - "80:80"18 depends_on:19 - mysql20 networks:21 - october-network2223 mysql:24 image: mysql:8.025 container_name: october-mysql26 environment:27 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}28 MYSQL_DATABASE: october29 MYSQL_USER: october30 MYSQL_PASSWORD: ${DB_PASSWORD}31 volumes:32 - mysql_data:/var/lib/mysql33 networks:34 - october-network3536volumes:37 october_data:38 mysql_data:3940networks:41 october-network:42 driver: bridge43EOF4445# 2. Create the .env file46cat > .env << 'EOF'47DB_PASSWORD=changeme48ROOT_PASSWORD=changeme49EOF5051# 3. Start the services52docker compose up -d5354# 4. View logs55docker 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/october-cms/run | bashTroubleshooting
- October shows 'Database connection failed': Verify mysql container is running and DB_HOST matches service name in docker-compose
- Backend admin panel returns 404 errors: Check .htaccess configuration and ensure Apache mod_rewrite is enabled in the container
- Plugin installation fails with permission errors: Verify october_data volume permissions and container user has write access to /var/www/html
- MySQL container exits with 'cannot allocate memory': Increase Docker Desktop memory limit to at least 2GB or add MySQL memory configuration
- October marketplace shows SSL errors: Update ca-certificates in container or configure October to use local plugin installation method
- File uploads fail or media manager not working: Check PHP upload limits and ensure storage/app directory has proper write permissions
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