{"id":18809255,"url":"https://github.com/thingsym/wp-compose","last_synced_at":"2026-04-13T00:41:47.679Z","repository":{"id":144902992,"uuid":"594983892","full_name":"thingsym/wp-compose","owner":"thingsym","description":"WP Compose is WordPress development environment based on the docker environment. You can easily launch WordPress development environment as localhost. Optimized for ARM based Mac (Apple Chip).","archived":false,"fork":false,"pushed_at":"2024-09-03T06:23:00.000Z","size":54,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-29T22:40:48.403Z","etag":null,"topics":["docker","docker-compose","wordpress","wordpress-development"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thingsym.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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-01-30T06:23:30.000Z","updated_at":"2024-09-03T06:21:43.000Z","dependencies_parsed_at":"2024-06-28T11:07:22.949Z","dependency_job_id":null,"html_url":"https://github.com/thingsym/wp-compose","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thingsym%2Fwp-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thingsym%2Fwp-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thingsym%2Fwp-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thingsym%2Fwp-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thingsym","download_url":"https://codeload.github.com/thingsym/wp-compose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239743244,"owners_count":19689468,"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","docker-compose","wordpress","wordpress-development"],"created_at":"2024-11-07T23:15:47.379Z","updated_at":"2026-01-10T05:30:13.780Z","avatar_url":"https://github.com/thingsym.png","language":"Shell","readme":"# WP Compose\n\n**WP Compose** is WordPress development environment based on the docker environment. You can easily launch WordPress development environment as localhost. Optimized for ARM based Mac (Apple Chip).\n\nIn addition, WP Compose for development can launch a **unit test container** that you can build your themes or plugins and run unit test.\n\nThe main features of WP Compose include use of command line tool **WP-CLI**, HTTPS support by **mkcert**, mail test support by **MailHog**.\n\nYou can also launch multiple containers using Local Loopback Address and domains other than localhost.\n\n## Requirements\n\nWe recommend using Docker Desktop.\n\n* ARM based Mac (Apple Chip)\n* Docker version 20.10.x or later\n* Docker Compose version v2.13.x or later\n\n## Preparation for WP Compose\n\n### Install docker-wp commnad as alias\n\nThe **docker-wp** command is a shortcut that specifies the launched WordPress container. It's usually a long parameter with a docker command, but docker-wp command works just like `wp`.\n\nInstallation is as follows:\n\n#### 1. Use setup-alias command\n\n```\nbash command/setup-alias.sh\n```\n\nSkip to 4, after running the command\n\nOr set manually\n\n#### 1. Open .zshrc\n\n```\nvi ~/.zshrc\n```\n\n#### 2. Add alias\n\n```\nalias docker-wp='docker run -it --rm --volumes-from $(docker compose --project-name `echo $(pwd) | awk -F \"/\" '\"'\"'{ print $NF }'\"'\"'` ps -q wordpress) --network container:$(docker compose --project-name `echo $(pwd) | awk -F \"/\" '\"'\"'{ print $NF }'\"'\"'` ps -q wordpress) wordpress:cli'\n```\n\n#### 3. Reload .zshrc\n\n```\nsource ~/.zshrc\n```\n\n#### 4. Check if the added command is included in the alias list.\n\n```\nalias\n```\n\n#### 5. After launching WordPress container\n\nAfter launching WordPress container, check the following commands. Works the same as the wp command.\n\n```\ndocker-wp --help\n```\n\n## Getting Started\n\nWP Compose has two uses. One is to simply acsess a WordPress Site. The other adds a build and unit test environment container for development. Also you can launch multiple containers using domains.\n\n* [Launch localhost (127.0.0.1)](#-launch-localhost-127001)\n* [Launch localhost (127.0.0.1) with unit test container](#-launch-localhost-127001-with-unit-test-container)\n* [Launch multiple containers using domains](#-launch-multiple-containers-using-domains)\n\n### Launch localhost (127.0.0.1)\n\n#### 1. Launch Docker containers\n\nBuilds, (re)creates, starts, and attaches to containers for WordPress development environment. Docker Compose configuration file uses **compose.yml**.\n\n```\ncd wp-compose-x.x.x\ndocker compose up -d\n```\n\n#### 2. Set up mkcert for HTTPS (just once)\n\nNow you need to add the mkcert root keys to your system key chain:\n\nfor Mac\n\nUse setup-mkcert command\n\n```\nsudo bash command/setup-mkcert.sh\n```\n\nOr set manually\n\n```\n# Copy mkcert root keys in docker container to your PC.\ndocker compose cp wordpress:/root/.local/share/mkcert ./src\n\n# Add trusted-cert to System.keychain.\nsudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./src/mkcert/rootCA.pem\n```\n\nYou can check cert name as `mkcert root@buildkitsandboxkeychain` through Keychain Access.app\n\n#### 3. Build WordPress site\n\nUse wp-build command\n\n```\nbash command/wp-build.sh\n```\n\nSkip to 6, after running the command\n\nOr set manually\n\n#### 4. Create WordPress config\n\n```\ndocker-wp --path=/var/www/html config create --dbname=wordpress --dbuser=root --dbpass=root --dbhost=database --dbprefix=wp_ --dbcharset=utf8mb4 --dbcollate=utf8mb4_general_ci --force\n```\n\n#### 5. Install WordPress\n\n```\ndocker-wp --path=/var/www/html core install --url='https://localhost' --title='test' --admin_user=admin --admin_password=admin --admin_email=admin@example.com\n```\n\n#### 6. Acsess a WordPress Site\n\n* Acsess WordPress site at [https://localhost](https://localhost)\n* Access WordPress dashboard at [https://localhost/wp-admin](https://localhost/wp-admin)\n* Access MailHog web UI at [http://localhost:8025](http://localhost:8025)\n\n#### Start/Stop containers\n\n```\ndocker compose start\n```\n\n```\ndocker compose stop\n```\n\n#### Delete containers with volumes\n\n```\ndocker compose down -v\n```\n\nOr added remove only custom Docker Image (wordpress and wordpress-develop built via Dockerfile)\n\n```\ndocker compose down -v --rmi local\n```\n\nOr added remove all Docker Image\n\n```\ndocker compose down -v --rmi all\n```\n\n### Launch localhost (127.0.0.1) with unit test container\n\n#### 1. Launch Docker containers\n\nBuilds, (re)creates, starts, and attaches to containers for WordPress development environment. Docker Compose configuration file uses **compose-develop.yml**.\n\n**Note**: Always pass the **compose-develop.yml** compose file as a parameter to the docker compose command. `-f compose-develop.yml`\n\n```\ncd wp-compose-x.x.x\ndocker compose -f compose-develop.yml up -d\n```\n\n#### 2. Set up mkcert for HTTPS (just once)\n\nNow you need to add the mkcert root keys to your system key chain:\n\nfor Mac\n\nUse setup-mkcert command\n\n```\nsudo bash command/setup-mkcert.sh\n```\n\nOr set manually\n\n```\n# Copy mkcert root keys in docker container to your PC.\ndocker compose cp wordpress:/root/.local/share/mkcert ./src\n\n# Add trusted-cert to System.keychain.\nsudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./src/mkcert/rootCA.pem\n```\n\nYou can check cert name as `mkcert root@buildkitsandboxkeychain` through Keychain Access.app\n\n#### 3. Build WordPress site\n\nUse wp-build command\n\n```\nbash command/wp-build.sh\n```\n\nSkip to 6, after running the command\n\nOr set manually\n\n#### 4. Create WordPress config\n\n```\ndocker-wp --path=/var/www/html config create --dbname=wordpress --dbuser=root --dbpass=root --dbhost=database --dbprefix=wp_ --dbcharset=utf8mb4 --dbcollate=utf8mb4_general_ci --force\n```\n\n#### 5. Install WordPress\n\n```\ndocker-wp --path=/var/www/html core install --url='https://localhost' --title='test' --admin_user=admin --admin_password=admin --admin_email=admin@example.com\n```\n\n#### 6. Acsess a WordPress Site\n\n* Acsess WordPress site at [https://localhost](https://localhost)\n* Access WordPress dashboard at [https://localhost/wp-admin](https://localhost/wp-admin)\n* Access MailHog web UI at [http://localhost:8025](http://localhost:8025)\n\n#### Start/Stop containers\n\n```\ndocker compose -f compose-develop.yml start\n```\n\n```\ndocker compose -f compose-develop.yml stop\n```\n\n#### Delete containers with volumes\n\n```\ndocker compose -f compose-develop.yml down -v\n```\n\nOr added remove only custom Docker Image (wordpress and wordpress-develop built via Dockerfile)\n\n```\ndocker compose -f compose-develop.yml down -v --rmi local\n```\n\nOr added remove all Docker Image\n\n```\ndocker compose -f compose-develop.yml down -v --rmi all\n```\n\n#### Access the console inside the unit test container\n\nAccess the console with Your SERVICE name.\n\n```\ndocker compose exec wordpress_unittest /bin/bash\n```\n\nOr access the console with Your Container NAME.\n\n```\ndocker exec -it wp-compose--localhost--wordpress-unittest /bin/bash\n```\n\nFor developer,\n\n* [Install and run PHPUnit Unittest inside the unit test container](#-install-and-run-phpunit-unittest-inside-the-unit-test-container)\n* [Install and run PHPUnit Unittest via host](#-install-and-run-phpunit-unittest-via-host)\n\n### Launch multiple containers using domains\n\nOnly one container can start on localhost. Multiple containers won't start up due to IP address and port conflicts. You can also launch multiple containers using **Local Loopback Address** and **domains** other than localhost.\n\nThe following shows launching `wp-compose.test` on IP address `127.56.0.1`.\n\n#### 1. Edit .env\n\n```\ncd wp-compose-x.x.x\nvi .env\n\n# edit .env\n\n# Local Loopback Address from 127.0.0.1 to 127.255.255.255\nLOOPBACK_IP=127.56.0.1\n\n# If you change default DOMAIN from localhost, set domain to /etc/hosts.\nDOMAIN=wp-compose.test\n\n```\n\n#### 2. Set up Local Loopback Address on Network Insterface (each time)\n\nAdd a loopback alias.\n\nUse setup-ifconfig command\n\n```\nsudo bash command/setup-ifconfig.sh\n```\n\nOr set manually\n\n```\nsudo ifconfig lo0 alias 127.56.0.1 netmask 0xff000000\n```\n\nDisplay ifconfig. Check `inet 127.56.0.1 netmask 0xff000000`\n\n```\nifconfig lo0\n```\n\n**Note**: This network interface setting is cleared when the PC is stopped, so it must be set each time the PC is started. If you get the following error message when launching containers, the network interface has not been configured.\n\n```\nError response from daemon: Ports are not available: exposing port TCP 127.56.0.1:1025 -\u003e 0.0.0.0:0: listen tcp 127.56.0.1:1025: bind: can't assign requested address\n```\n\nTo remove the loopback alias:\n\n```\nsudo ifconfig lo0 -alias 127.56.0.1 netmask 0xff000000\n```\n\n#### 3. Add IP address and domain to hosts (just once)\n\nAdd IP address and domain to `/etc/hosts`.\n\nUse setup-hosts command\n\n```\nsudo bash command/setup-hosts.sh\n```\n\nOr set manually\n\n```\nsudo vi /etc/hosts\n```\n\n```\n127.56.0.1    wp-compose.test\n```\n\n#### 4. Launch Docker containers\n\nBuilds, (re)creates, starts, and attaches to containers for WordPress development environment.\n\nWhen using the unit test container, pass the **compose-develop.yml** compose file as a parameter to the docker compose command. `-f compose-develop.yml`\n\n```\ndocker compose up -d\n```\n\n#### 5. Set up mkcert for HTTPS (just once)\n\nNow you need to add the mkcert root keys to your system key chain:\n\nfor Mac\n\nUse setup-mkcert command\n\n```\nsudo bash command/setup-mkcert.sh\n```\n\nOr set manually\n\n```\n# Copy mkcert root keys in docker container to your PC.\ndocker compose cp wordpress:/root/.local/share/mkcert ./src\n\n# Add trusted-cert to System.keychain.\nsudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ./src/mkcert/rootCA.pem\n```\n\nYou can check cert name as `mkcert root@buildkitsandboxkeychain` through Keychain Access.app\n\n#### 6. Build WordPress site\n\nUse wp-build command\n\n```\nbash command/wp-build.sh\n```\n\nSkip to 9, after running the command\n\nOr set manually\n\n#### 7. Create WordPress config\n\n```\ndocker-wp --path=/var/www/html config create --dbname=wordpress --dbuser=root --dbpass=root --dbhost=database --dbprefix=wp_ --dbcharset=utf8mb4 --dbcollate=utf8mb4_general_ci --force\n```\n\n#### 8. Install WordPress\n\n```\ndocker-wp --path=/var/www/html core install --url='https://wp-compose.test' --title='test' --admin_user=admin --admin_password=admin --admin_email=admin@example.com\n```\n\n#### 9. Acsess a WordPress Site\n\n* Acsess WordPress site at [https://wp-compose.test](https://wp-compose.test)\n* Access WordPress dashboard at [https://wp-compose.test/wp-admin](https://wp-compose.test/wp-admin)\n* Access MailHog web UI at [http://wp-compose.test:8025](http://wp-compose.test:8025)\n\n#### Start/Stop containers\n\n```\ndocker compose start\n```\n\n```\ndocker compose stop\n```\n\n#### Delete containers with volumes\n\n```\ndocker compose down -v\n```\n\nOr added remove only custom Docker Image (wordpress and wordpress-develop built via Dockerfile)\n\n```\ndocker compose down -v --rmi local\n```\n\nOr added remove all Docker Image\n\n```\ndocker compose down -v --rmi all\n```\n\n## Coustomize WP Compose settings (.env)\n\nYou can set default values for environment variables referenced in your Compose file in your **.env** file.\n\n```\n# Local Loopback Address from 127.0.0.1 to 127.255.255.255\nLOOPBACK_IP=127.0.0.1\n\n# If you change default DOMAIN from localhost, set domain to /etc/hosts.\nDOMAIN=localhost\n\n# See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\nTIMEZONE=\n\n# https://hub.docker.com/_/wordpress\nWORDPRESS_IMAGE_TAG=latest\n\n# https://hub.docker.com/_/mariadb\nMARIADB_IMAGE_TAG=10.6.18-focal\n\nMYSQL_ROOT_PASSWORD=root\n\nWORDPRESS_DB_HOST=database\nWORDPRESS_DB_NAME=wordpress\nWORDPRESS_DB_USER=root\nWORDPRESS_DB_PASSWORD=root\nWORDPRESS_TABLE_PREFIX=wp_\nWORDPRESS_DEBUG=true\n\n# for E2E test container\nLOOPBACK_IP_FOR_E2E=\nDOMAIN_FOR_E2E=\n```\n\n* `LOOPBACK_IP` (required) Local Loopback Address from 127.0.0.1 to 127.255.255.255 (default: `127.0.0.1`)\n* `DOMAIN` (required) Domain name (default: `localhost`)\n* `TIMEZONE` (default: `UTC`)\n* `WORDPRESS_IMAGE_TAG` (required) WordPress docker image tag name. See https://hub.docker.com/_/wordpress (default: `latest`)\n* `MARIADB_IMAGE_TAG` (required) MariaDB docker image tag name. See https://hub.docker.com/_/mariadb (default: `latest`)\n* `MYSQL_ROOT_PASSWORD` database root password (default: `root`)\n* `WORDPRESS_DB_HOST` database host (default: `database`)\n* `WORDPRESS_DB_NAME` name of database (default: `wordpress`)\n* `WORDPRESS_DB_USER` database user name (default: `root`)\n* `WORDPRESS_DB_PASSWORD` database password (default: `root`)\n* `WORDPRESS_TABLE_PREFIX` database prefix (default: `wp_`)\n* `WORDPRESS_DEBUG` debug mode (default: `true`/ value: `true` | `false`)\n* `LOOPBACK_IP_FOR_E2E` Local Loopback Address for e2e from 127.0.0.1 to 127.255.255.255 (default: `127.0.0.1`)\n* `DOMAIN_FOR_E2E` Domain name for e2e (default: `localhost`)\n\n## File layout\n\nDirectory structure of the WP Compose is as follows.\n\n* .env (Docker Compose environment variable file)\n* CHANGELOG.md\n* command (stores command script)\n* Dockerfile (stores Dockerfile files)\n\t* wordpress (Dockerfile for WordPress image)\n\t* wordpress-develop (Dockerfile for unit test image)\n* LICENSE\n* README.md\n* database (stores Database data failes. synchronize to `/var/lib/mysql` inside Database container. Create automatically when Launch Database container. If it already exists, don't create it.)\n* compose-develop.yml (Compose specification for localhost with unit test container)\n* compose.yml (Compose specification for localhost)\n* src (stores source files)\n\t* backup (stores backup file. synchronize to `/var/www/backup` inside WordPress container.)\n\t* import (stores import file. synchronize to `/var/www/import` inside WordPress container.)\n\t* mkcert (stores SSL certificate files. Create when you run the command)\n\t* plugins (stores your plugins to bind mounts. Required volume configuration in the Docker compose file)\n\t* themes (stores your themes to bind mounts. Required volume configuration in the Docker compose file)\n* wordpress (stores WordPress failes. synchronize to `/var/www/html` inside WordPress container. Create automatically when Launch WordPress container. If it already exists, don't create it.)\n\n## Tips for WordPress theme/plugin developer\n\n### How do you develop themes/plugins with WP Compose?\n\nTo put the themes/plugins you are developing in the `/src/themes` or `/src/plugins` folder and mount it to WordPress container.\n\nSet volumes in compose.yml as short syntax.\n\n```\nvolumes:\n  # Set the path of the theme or plugin you are developing.\n  - ./src/themes/YOUR_THEME:/var/www/html/wp-content/plugins/YOUR_THEME\n  - ./src/plugins/YOUR_PLUGIN:/var/www/html/wp-content/plugins/YOUR_PLUGIN\n```\n\nOr as long syntax\n\n```\nvolumes:\n  - type: bind\n    source: ./src/themes/YOUR_THEME\n    target: /var/www/html/wp-content/themes/YOUR_THEME\n  - type: bind\n    source: ./src/plugins/YOUR_PLUGIN\n    target: /var/www/html/wp-content/plugins/YOUR_PLUGIN\n```\n\n### Export SQL file using WP-CLI\n\n```\ndocker-wp --path=/var/www/html db export /var/www/backup/backup-`date +%Y%m%d%H%M%S`.sql\n```\n\nOr alternatively use the command\n\n```\nbash command/db-backup.sh\n```\n\n### Import SQL file\n\n```\ndocker-wp --path=/var/www/html db reset --yes \u0026\u0026 docker-wp --path=/var/www/html db import /var/www/import/wordpress.sql\n```\n\n### Import unit test data\n\nDownload unit test data from https://github.com/WPTT/theme-test-data and import.\n\n```\ndocker exec -it $(docker compose --project-name `echo $(pwd) | awk -F \"/\" '{ print $NF }'` ps -q wordpress) sh -c 'curl https://raw.githubusercontent.com/WPTRT/theme-unit-test/master/themeunittestdata.wordpress.xml -o themeunittestdata.wordpress.xml' \u0026\u0026 docker-wp --path=/var/www/html plugin install wordpress-importer --activate \u0026\u0026 docker-wp --path=/var/www/html import themeunittestdata.wordpress.xml --authors=create \u0026\u0026 docker-wp --path=/var/www/html plugin deactivate wordpress-importer \u0026\u0026 docker exec -it $(docker compose --project-name `echo $(pwd) | awk -F \"/\" '{ print $NF }'` ps -q wordpress) sh -c 'rm themeunittestdata.wordpress.xml'\n```\n\nAlso if you use the command, you can do it all at once from the wordpress build.\n\n```\nbash command/wp-build-testdata.sh\n```\n\n### Install and run PHPUnit Unittest inside the unit test container\n\n#### 1. Access the console inside the unit test container\n\nAccess the console with Your SERVICE name.\n\n```\ndocker compose exec [SERVICE name] /bin/bash\n```\n\n#### 2. Move your plugin directory\n\n```\ncd /var/www/html/wp-content/(themes|plugins)/[Your theme or plugin name]\n```\n\n#### 3. Install WordPress test to `/tmp` dir\n\n```\nbin/install-wp-tests.sh wordpress_test root root database\n```\n\n#### 4. Install PHPUnit and composer dependencies\n\n```\ncomposer install\n```\n\n#### 5. Run phpunit\n\n```\ncomposer run phpunit\n```\n\n### Install and run PHPUnit Unittest via host\n\n\n#### 1. Install WordPress test to `/tmp` dir\n\n```\ndocker compose exec -w /var/www/html/wp-content/(themes|plugins)/[Your theme or plugin name] bash bin/install-wp-tests.sh wordpress_test root root database\n```\n\n#### 2. Install PHPUnit and composer dependencies\n\n```\ndocker compose exec -w /var/www/html/wp-content/(themes|plugins)/[Your theme or plugin name] wordpress_unittest composer install\n```\n\n#### 3. Run phpunit\n\n```\ndocker compose exec -w /var/www/html/wp-content/(themes|plugins)/[Your theme or plugin name] wordpress_unittest composer run phpunit\n```\n\n### Why MailHog ?\n\nRoot mail on WordPress container is **wordpress@localhost** which is not correct. So the validation will be false and the email will fail to be sent.\n\nIf you set a domain other than localhost, you can receive mail with MailHog for development.\n\nAlternatively, if you use root mail for development such as password reset, you can avoid it with the hook below.\n\n```\n# From: WordPress \u003cwordpress@localhost\u003e return false on is_email functon.\n# See $phpmailer::$validator static function, /wp-includes/pluggable.php:257\n\nfunction disable_mail_validator( $email ) {\n\treturn true;\n}\nadd_action( 'is_email', 'disable_mail_validator' );\n```\n\n## Contribution\n\nSmall patches and bug reports can be submitted a issue tracker in Github.\n\n* VCS - Github: [WP Compose](https://github.com/thingsym/wp-compose)\n\nYou can also contribute by answering issues on the forums.\n\n* Issues: [https://github.com/thingsym/wp-compose/issues](https://github.com/thingsym/wp-compose/issues)\n\n### Patches and Bug Fixes\n\nForking on Github is another good way. You can send a pull request.\n\n1. Fork [WP Compose](https://github.com/thingsym/wp-compose) from GitHub repository\n2. Create a feature branch: git checkout -b my-new-feature\n3. Commit your changes: git commit -am 'Add some feature'\n4. Push to the branch: git push origin my-new-feature\n5. Create new Pull Request\n\n### Contribute guidlines\n\nIf you would like to contribute, here are some notes and guidlines.\n\n* All development happens on the **main** branch, so it is always the most up-to-date\n* If you are going to be submitting a pull request, please submit your pull request to the **main** branch\n* See about [forking](https://help.github.com/articles/fork-a-repo/) and [pull requests](https://help.github.com/articles/using-pull-requests/)\n\n## Changelog\n\nSee CHANGELOG.md\n\n## License\n\nWP Compose is distributed under GPLv2.\n\n## Author\n\n[thingsym](https://github.com/thingsym)\n\nCopyright (c) 2023 - 2024 thingsym\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthingsym%2Fwp-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthingsym%2Fwp-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthingsym%2Fwp-compose/lists"}