{"id":35122086,"url":"https://github.com/itsmereal/dokploy-wp","last_synced_at":"2026-04-13T14:31:42.343Z","repository":{"id":329408173,"uuid":"1119466941","full_name":"itsmereal/dokploy-wp","owner":"itsmereal","description":"Production-ready WordPress deployment stack for Dokploy with Redis caching, Nginx","archived":false,"fork":false,"pushed_at":"2025-12-19T17:24:18.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-22T03:52:55.547Z","etag":null,"topics":["docker","docker-compose","dokploy","mariadb","nginx","phpmyadmin","redis","template","wordpress"],"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/itsmereal.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":"2025-12-19T10:11:45.000Z","updated_at":"2025-12-19T17:24:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itsmereal/dokploy-wp","commit_stats":null,"previous_names":["itsmereal/dokploy-wp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/itsmereal/dokploy-wp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmereal%2Fdokploy-wp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmereal%2Fdokploy-wp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmereal%2Fdokploy-wp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmereal%2Fdokploy-wp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsmereal","download_url":"https://codeload.github.com/itsmereal/dokploy-wp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsmereal%2Fdokploy-wp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31757477,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T13:27:56.013Z","status":"ssl_error","status_checked_at":"2026-04-13T13:21:23.512Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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-compose","dokploy","mariadb","nginx","phpmyadmin","redis","template","wordpress"],"created_at":"2025-12-28T00:37:29.423Z","updated_at":"2026-04-13T14:31:42.334Z","avatar_url":"https://github.com/itsmereal.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dokploy WordPress Stack\n\nProduction-ready WordPress deployment stack optimized for Dokploy with Redis caching, Nginx, and management tools.\n\n## Stack Components\n\n| Service | Description |\n|---------|-------------|\n| **WordPress** | PHP 8.3 FPM with Redis extension, OPcache, and WP-CLI |\n| **Nginx** | Optimized reverse proxy with caching and security headers |\n| **MariaDB 10.6** | Database server with health checks |\n| **Redis** | Object caching for improved performance |\n| **phpMyAdmin** | Database administration interface |\n| **Plugin Installer** | Automatically installs Redis Object Cache plugin |\n\n## Quick Start\n\n### Option A: One-Click Template Deploy (Auto-Generated Passwords)\n\n1. In Dokploy, go to **Projects**\n2. Create a Project or open an existing Project\n3. Click **Create Service**\n4. Choose **Template**\n5. Set the **Base URL** to:\n   ```\n   https://raw.githubusercontent.com/itsmereal/dokploy-wp/main\n   ```\n6. You will find **\"WordPress + Redis Stack\"**\n7. Click **Create** and **Confirm**\n8. Click **Deploy** when the service is created\n9. Once deployed, go to the **Domains** tab and set your domain\n10. Go back to the **General** tab and click **Reload**\n11. Your WordPress site is ready!\n\n### Option B: Manual Compose Deploy\n\n1. Create a new **Compose** service in Dokploy\n2. Point to: `https://github.com/itsmereal/dokploy-wp`\n3. Set Compose Path: `./docker-compose.yml`\n4. Go to **Environment** tab and add:\n   ```\n   MYSQL_ROOT_PASSWORD=YourSecureRootPass123!\n   MYSQL_PASSWORD=YourSecureDbPass456!\n   WORDPRESS_DB_PASSWORD=YourSecureDbPass456!\n   ```\n5. Click **Deploy**\n\n### Configure Domains\n\nGo to the **Domains** tab and add:\n\n| Domain | Service | Port |\n|--------|---------|------|\n| yourdomain.com | nginx | 80 |\n| pma.yourdomain.com | phpmyadmin | 80 |\n\n**Default Credentials:**\n| Service | Username | Password |\n|---------|----------|----------|\n| phpMyAdmin | wordpress | (your MYSQL_PASSWORD) |\n\n### Activate Redis Cache\n\n1. Log in to WordPress admin (`yourdomain.com/wp-admin`)\n2. Go to **Plugins \u003e Installed Plugins**\n3. Activate **Redis Object Cache**\n4. Go to **Settings \u003e Redis**\n5. Click **Enable Object Cache**\n\n## Environment Variables\n\n### Database Configuration\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `MYSQL_ROOT_PASSWORD` | - | **Required.** MariaDB root password |\n| `MYSQL_DATABASE` | wordpress | Database name |\n| `MYSQL_USER` | wordpress | Database user |\n| `MYSQL_PASSWORD` | - | **Required.** Database password |\n| `WORDPRESS_DB_HOST` | db | Database host |\n| `WORDPRESS_DB_USER` | wordpress | WordPress database user |\n| `WORDPRESS_DB_PASSWORD` | - | **Required.** WordPress database password |\n| `WORDPRESS_DB_NAME` | wordpress | WordPress database name |\n\n### PHP Settings (No Rebuild Required)\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PHP_UPLOAD_MAX_FILESIZE` | 256M | Maximum upload file size |\n| `PHP_POST_MAX_SIZE` | 256M | Maximum POST data size |\n| `PHP_MEMORY_LIMIT` | 256M | PHP memory limit |\n| `PHP_MAX_EXECUTION_TIME` | 300 | Script timeout in seconds |\n| `PHP_MAX_INPUT_TIME` | 300 | Input parsing timeout |\n| `PHP_MAX_INPUT_VARS` | 3000 | Maximum input variables |\n\n### OPcache Settings\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `PHP_OPCACHE_MEMORY` | 128 | OPcache memory in MB |\n| `PHP_OPCACHE_MAX_FILES` | 4000 | Maximum cached files |\n| `PHP_OPCACHE_VALIDATE` | 0 | Validate timestamps (0=off for production) |\n\n### Nginx Settings\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `NGINX_CLIENT_MAX_BODY_SIZE` | 256M | Maximum upload size in Nginx |\n\n### Redis Settings\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `REDIS_MAXMEMORY` | 256mb | Redis maximum memory |\n| `REDIS_MAXMEMORY_POLICY` | allkeys-lru | Eviction policy |\n\n### Resource Limits (No Rebuild Required)\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `NGINX_CPU_LIMIT` | 0.5 | Nginx CPU limit |\n| `NGINX_MEMORY_LIMIT` | 256M | Nginx memory limit |\n| `WORDPRESS_CPU_LIMIT` | 1.0 | WordPress CPU limit |\n| `WORDPRESS_MEMORY_LIMIT` | 1G | WordPress memory limit |\n| `DB_CPU_LIMIT` | 1.0 | MariaDB CPU limit |\n| `DB_MEMORY_LIMIT` | 1G | MariaDB memory limit |\n| `REDIS_CPU_LIMIT` | 0.5 | Redis CPU limit |\n| `REDIS_MEMORY_LIMIT` | 512M | Redis memory limit |\n| `PHPMYADMIN_CPU_LIMIT` | 0.5 | phpMyAdmin CPU limit |\n| `PHPMYADMIN_MEMORY_LIMIT` | 256M | phpMyAdmin memory limit |\n\n## Changing Settings After Deployment\n\nAll PHP, Nginx, Redis, and resource settings can be changed without rebuilding:\n\n1. Go to your Compose service in Dokploy\n2. Navigate to **Environment** tab\n3. Update the desired variables\n4. Click **Redeploy**\n\nThe containers will restart with the new settings.\n\n## Using WP-CLI\n\nWP-CLI is pre-installed in the WordPress container. To use it:\n\n```bash\n# Access the WordPress container\ndocker exec -it \u003cwordpress-container-name\u003e bash\n\n# Run WP-CLI commands\nwp plugin list\nwp cache flush\nwp core update\n```\n\n## Volumes\n\n| Volume | Purpose |\n|--------|---------|\n| `wordpress_data` | WordPress files (/var/www/html) |\n| `db_data` | MariaDB data |\n| `redis_data` | Redis persistence |\n\n## Security Recommendations\n\n1. Set strong passwords for all database credentials\n2. Consider restricting access to phpMyAdmin subdomain\n3. Enable Dokploy's built-in SSL/TLS\n4. Keep WordPress and plugins updated\n\n## Troubleshooting\n\n### WordPress not loading\n\n1. Check if all containers are running in Dokploy\n2. Verify database credentials match between services\n3. Check container logs for errors\n\n### Upload size issues\n\nMake sure both PHP and Nginx limits are set:\n\n```env\nPHP_UPLOAD_MAX_FILESIZE=512M\nPHP_POST_MAX_SIZE=512M\nNGINX_CLIENT_MAX_BODY_SIZE=512M\n```\n\n### Redis not connecting\n\n1. Verify Redis container is healthy\n2. Activate the Redis Object Cache plugin in WordPress\n3. Check Redis settings in WordPress admin\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsmereal%2Fdokploy-wp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsmereal%2Fdokploy-wp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsmereal%2Fdokploy-wp/lists"}