{"id":24381985,"url":"https://github.com/bernskiold/helm-wp","last_synced_at":"2026-04-17T10:02:32.521Z","repository":{"id":152560581,"uuid":"626356190","full_name":"bernskiold/helm-wp","owner":"bernskiold","description":"A Docker-based development environment for WordPress.","archived":false,"fork":false,"pushed_at":"2023-07-04T10:42:00.000Z","size":71,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-19T01:16:54.246Z","etag":null,"topics":["docker","wordpress"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"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/bernskiold.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}},"created_at":"2023-04-11T09:55:37.000Z","updated_at":"2024-05-14T21:17:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d0496f0-c861-499a-a604-b43fa1f23439","html_url":"https://github.com/bernskiold/helm-wp","commit_stats":null,"previous_names":["bernskiold/helm-wp"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernskiold%2Fhelm-wp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernskiold%2Fhelm-wp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernskiold%2Fhelm-wp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bernskiold%2Fhelm-wp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bernskiold","download_url":"https://codeload.github.com/bernskiold/helm-wp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243249010,"owners_count":20260768,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","wordpress"],"created_at":"2025-01-19T09:14:49.148Z","updated_at":"2025-12-25T10:52:21.350Z","avatar_url":"https://github.com/bernskiold.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Helm WP\n\nHelm is Bernskiold Media's WordPress development framework. It's meant to be loaded as a Composer dev depenency and\nproves a set of tools to help you develop WordPress themes and plugins. Helm is heavily inspired by/a WordPress adapted\nfork of Laravel Sail.\n\n## Installation\n\nTo install, your project must be using composer. Require the package to your project:\n\n```bash\ncomposer require --dev bernskioldmedia/helm-wp\n```\n\nAfter installing, place a `docker-compose.yml` file in the root of your project. You can use the following as a starting\npoint:\n\n```yaml\nversion: '3.3'\nservices:\n\n    wordpress.test:\n        build:\n            context: ./wp-content/vendor/bernskioldmedia/helm-wp/runtimes/8.1\n            dockerfile: Dockerfile\n            args:\n                WWWGROUP: '${WWWGROUP}'\n        image: helm-7.4/app\n        extra_hosts:\n            - 'host.docker.internal:host-gateway'\n        ports:\n            - '80:80'\n        environment:\n            WWWUSER: '${WWWUSER}'\n            HELM_WP: 1\n            XDEBUG_MODE: '${HELM_XDEBUG_MODE:-off}'\n            XDEBUG_CONFIG: '${HELM_XDEBUG_CONFIG:-client_host=host.docker.internal}'\n        volumes:\n            - '.:/var/www/html'\n        networks:\n            - helm\n\n    # We try to use the same version of MySQL as the one used in production.\n    # Other recipes are available in Notion.\n    mariadb:\n        image: 'mariadb:10.5'\n        ports:\n            - '3306:3306'\n        environment:\n            MYSQL_ROOT_PASSWORD: 'wordpressroot'\n            MYSQL_DATABASE: 'wordpress'\n            MYSQL_USER: 'wordpress_user'\n            MYSQL_PASSWORD: 'wordpress_password'\n        volumes:\n            - 'helm-mariadb:/var/lib/mysql'\n        healthcheck:\n            test: [ \"CMD\", \"mysqladmin\", \"ping\", \"-pwordpress_password\" ]\n            retries: 3\n            timeout: 5s\n        networks:\n            - helm\n\n    # Mailpit is a fake SMTP server that catches all emails sent in the application.\n    # It has a web interface to view the emails at: http://localhost:8025/\n    mailpit:\n        image: 'axllent/mailpit:latest'\n        ports:\n            - '1025:1025'\n            - '8025:8025'\n        networks:\n            - helm\n\nvolumes:\n    helm-mariadb:\n    wordpress:\n\nnetworks:\n    helm:\n        driver: bridge\n```\n\n## Running helm\n\nHelm ships with its own `helm` command. This is a wrapper around the `docker-compose` command that makes it easier to\nrun commands inside the container.\n\nAdapt the path in the command to match your project structure and where composer packages are installed in your project,\nif you have customized your vendor folder.\n\nFor more information on the `helm` command, run `./vendor/bin/helm help`.\n\n### Creating an alias command\n\nThis alias enables you to just type helm to reach our Helm WP environment instead of having to always type the full path\nto the `vendor/bin` directory.\n\n```bash\nalias helm='[ -f helm ] \u0026\u0026 sh helm || sh vendor/bin/helm'\n```\n\n### Starting the container\n\nTo start the container, run:\n\n```bash\n./vendor/bin/helm up\n```\n\n### Stopping the container\n\nTo stop the container, run:\n\n```bash\n./vendor/bin/helm down\n```\n\n### Running commands inside the container\n\nHelm supports running commands from within the container. This is useful for running Composer commands, WP CLI commands\nand more.\n\n```bash\n# Composer\n./vendor/bin/helm composer ...\n\n# Node\n./vendor/bin/helm node ...\n\n# NPM\n./vendor/bin/helm npm ...\n\n# PHP Commands\n./vendor/bin/helm php ...\n\n# WP-CLI Commands\n./vendor/bin/helm wp ...\n\n```\n\n## Using a different PHP version\n\nHelm ships with support for PHP versions from 7.4 to 8.2, although we recommend not using 7.4 for anything new as it has\nbeen officially deprecated.\n\nTo use a different PHP version, change the `context` in the `wordpress.test` service to point to the correct runtime\nfolder. You should also change the `image` to match the runtime folder name.\n\nFor example, to use PHP 8.1, change it to:\n\n```yaml\n  wordpress.test:\n      build:\n          context: ./wp-content/vendor/bernskioldmedia/helm-wp/runtimes/8.1\n          image: helm-8.1/app\n```\n\nThe available runtimes are:\n\n- `7.4`\n- `8.0`\n- `8.1`\n- `8.2`\n\n## Running Helm Migrate\n\nHelm ships with a helper `helm-migrate` command to help migrate a production database to the local help environment.\n\nIt requires a `wp-cli.yml` file in the root of your project. You can use the following as a starting point:\n\n```yaml\n@production:\n     ssh: user@server.com/path/to/wordpress\n```\n\nTo migrate the database, run:\n\n```bash\n./vendor/bin/helm-migrate run production\n```\n\nFor more information on the `helm-migrate` command, run `./vendor/bin/helm-migrate help`.\n\n### WordPress Multisite Support\n\nHelm Migrate supports WordPress Multisite out of the box. To migrate the entire environment you only need to run the run\ncommand as above. However, sometimes you only want to migrate one or a few sites in a large network.\n\nTo do this, you use the `selection` command along with the envrionment name. It will then ask you for the site IDs.\n\n```bash\n./vendor/bin/helm-migrate selection production\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernskiold%2Fhelm-wp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbernskiold%2Fhelm-wp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbernskiold%2Fhelm-wp/lists"}