{"id":741649,"url":"https://github.com/octobercms/docker","last_synced_at":"2026-04-15T13:30:24.049Z","repository":{"id":335780380,"uuid":"315783322","full_name":"octobercms/docker","owner":"octobercms","description":"October CMS Docker with Windows \u0026 macOS support","archived":false,"fork":false,"pushed_at":"2026-03-18T12:24:27.000Z","size":132,"stargazers_count":4,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-03-19T02:49:52.465Z","etag":null,"topics":["docker","docker-image"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octobercms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-11-25T00:08:20.000Z","updated_at":"2026-03-18T12:24:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/octobercms/docker","commit_stats":null,"previous_names":["octobercms/docker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/octobercms/docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octobercms%2Fdocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octobercms%2Fdocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octobercms%2Fdocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octobercms%2Fdocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octobercms","download_url":"https://codeload.github.com/octobercms/docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octobercms%2Fdocker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31842795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T13:28:40.153Z","status":"ssl_error","status_checked_at":"2026-04-15T13:28:29.396Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image"],"created_at":"2024-01-11T18:46:11.747Z","updated_at":"2026-04-15T13:30:24.044Z","avatar_url":"https://github.com/octobercms.png","language":"Shell","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# October CMS Docker\n\nDocker-based deployment for October CMS with a simple CLI interface.\n\n## Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/octobercms/docker.git\ncd october-docker\n\n# Set up a new site\n./october-setup myapp\n\n# Start the site\n./launcher start myapp\n```\n\nYour site will be available at http://localhost\n\n## Requirements\n\n- Docker Engine 20.10+\n- Docker Compose v2\n- WSL2 (Windows) or native Linux/macOS\n\n## Architecture\n\n```\noctober-docker/                    # This repository (clone once)\n├── containers/                    # Site configurations\n│   └── myapp.yml\n├── docker/                        # Docker infrastructure\n│   └── web/\n│       ├── Dockerfile\n│       └── ...\n├── launcher                       # CLI tool\n├── october-setup                  # Setup wizard\n└── docker-compose.base.yml\n\n~/october-sites/myapp/             # Your site files\n├── .env                           # Environment variables\n├── artisan                        # October CMS files\n├── composer.json\n└── ...\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `./october-setup \u003cname\u003e` | Create a new site configuration |\n| `./launcher start \u003cname\u003e` | Start containers |\n| `./launcher stop \u003cname\u003e` | Stop containers |\n| `./launcher restart \u003cname\u003e` | Restart containers |\n| `./launcher rebuild \u003cname\u003e` | Rebuild and restart (uses Docker cache for speed) |\n| `./launcher rebuild \u003cname\u003e --no-cache` | Full rebuild from scratch (after changing system deps) |\n| `./launcher enter \u003cname\u003e` | Open shell in web container |\n| `./launcher logs \u003cname\u003e` | View container logs |\n| `./launcher code \u003cname\u003e` | Open VS Code attached to the web container |\n| `./launcher status` | Show all sites and their status |\n| `./launcher destroy \u003cname\u003e` | Remove containers (preserves data) |\n| `./launcher wipe \u003cname\u003e` | Completely remove a site (containers, files, config) |\n| `./launcher mount` | Share sites via Samba and mount as a Windows drive (WSL only) |\n| `./launcher unmount` | Disconnect the Windows drive and stop Samba (WSL only) |\n\n## Setup Options\n\n### Development Environment\n\n- Xdebug enabled for debugging\n- APP_DEBUG=true\n- OPcache validates timestamps\n- Bundled MariaDB and Redis\n\n### Production Environment\n\n- Xdebug disabled\n- APP_DEBUG=false\n- OPcache optimized\n- SSL via Let's Encrypt or custom certificates\n- Option to use external database (AWS RDS) and Redis (ElastiCache)\n\n## Multi-Site Setup\n\nRun multiple October sites from one installation:\n\n```bash\n./october-setup blog\n./october-setup shop --port 8080\n./october-setup corporate --port 8081\n\n./launcher start blog\n./launcher start shop\n./launcher start corporate\n```\n\nEach site has isolated containers and Docker volumes for persisted MariaDB and Redis data.\n\n## VS Code Development\n\nOpen VS Code attached to a running site container:\n\n```bash\n./launcher code myapp\n```\n\nThis opens VS Code with the Dev Containers extension connected directly to the web container, giving you:\n- Full IDE with IntelliSense\n- Integrated debugging with Xdebug\n- Terminal access inside the container\n\n## Windows Development (WSL)\n\nOn Windows, site files live inside WSL2 for optimal Docker volume performance. To access them with Windows tools like Tortoise Git, the launcher can mount the sites directory as a Windows drive via Samba:\n\n```bash\n./launcher mount\n```\n\nThis will:\n1. Install Samba in WSL if needed (one-time)\n2. Configure a share for `~/october-sites`\n3. Ask for a drive letter (default: Z)\n4. Mount the drive automatically\n\nYour sites will be available at `Z:\\myapp`, `Z:\\blog`, etc. Use Tortoise Git, Explorer, and other Windows tools normally.\n\nTo disconnect:\n\n```bash\n./launcher unmount\n```\n\nThe WSL IP changes on reboot, so you'll need to run `./launcher mount` each time you restart your machine.\n\n## Custom Git Repository\n\nTo deploy from your own October CMS repository instead of a fresh install:\n\n1. During setup, select \"Yes\" for custom Git repository\n2. Enter your repository URL\n3. Optionally specify a branch (leave empty for the default branch)\n4. The entrypoint will clone your repo and run `composer install`\n\nOr manually set `OCTOBER_REPO` and `OCTOBER_BRANCH` in your site's `.env` file before first start.\n\n## Installing October CMS v3\n\nTo install October CMS v3 from the official repository:\n\n```bash\n# Set up a new site\n./october-setup myapp\n```\n\nDuring setup, select **\"Yes\"** for custom Git repository and enter:\n- **Repository URL**: `https://github.com/octobercms/october.git`\n- **Branch**: `3.x`\n\nThen start the site:\n\n```bash\n./launcher start myapp\n```\n\nOn first start, the container will clone the repository, check out the `3.x` branch, and run `composer install`. Once the containers are running, open a shell to complete the installation:\n\n```bash\n./launcher enter myapp\nphp artisan october:install\nphp artisan october:migrate\nphp artisan october:mirror\n```\n\nThis will run the interactive installer where you can enter your license key and configure the application. You only need to do this once.\n\n## Configuration Files\n\n### Site Configuration (`containers/\u003cname\u003e.yml`)\n\n```yaml\nenvironment: development\nsite_path: ~/october-sites/myapp\nhttp_port: 80\n\nservices:\n  mariadb: true\n  redis: true\n```\n\n### Environment Variables (`~/october-sites/\u003cname\u003e/.env`)\n\nGenerated automatically by `october-setup`. Contains:\n- APP_KEY, APP_URL, APP_ENV\n- Database credentials\n- Redis configuration\n\n## Stack\n\n- **PHP**: 8.3 with FPM\n- **Web Server**: Apache with HTTP/2\n- **Database**: MariaDB 10.11 with named Docker volumes\n- **Cache**: Redis 7 with named Docker volumes\n- **Process Manager**: Supervisor\n\n## Troubleshooting\n\n### Container won't start\n\n```bash\n./launcher logs myapp\n```\n\n### Database connection issues\n\nCheck that MariaDB is healthy:\n```bash\ndocker ps\n```\n\nThe web container waits for MariaDB to be ready before running migrations.\n\n### Permission issues\n\nThe container runs as `www-data`. If you have permission issues with mounted files:\n\n```bash\n./launcher enter myapp\nchown -R www-data:www-data /var/www/html/storage\n```\n\n### Windows drive is read-only or shows permission errors\n\nIf accessing files via `\\\\wsl.localhost\\` or a mapped drive shows permission errors, use the Samba mount instead:\n\n```bash\n./launcher mount\n```\n\nSamba bypasses Linux file permissions, so files are always writable regardless of ownership.\n\n### Phantom drives after unmount\n\nIf a mapped drive letter persists in Explorer after unmounting, restart Explorer:\n\n```powershell\nStop-Process -Name explorer -Force; Start-Process explorer\n```\n\n### Reset everything\n\n```bash\n./launcher destroy myapp\nrm -rf ~/october-sites/myapp\n./october-setup myapp\n./launcher start myapp\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctobercms%2Fdocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctobercms%2Fdocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctobercms%2Fdocker/lists"}