{"id":40713408,"url":"https://github.com/lemachinarbo/ddev-dewire","last_synced_at":"2026-01-21T13:03:27.500Z","repository":{"id":304579085,"uuid":"1016438066","full_name":"lemachinarbo/ddev-dewire","owner":"lemachinarbo","description":"Installs ProcessWire and deploys your site to production, staging, or any environment.","archived":false,"fork":false,"pushed_at":"2025-07-23T21:58:25.000Z","size":242,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-23T23:25:47.359Z","etag":null,"topics":["ddev-get","deployment-automation","processwire","rockmigrations","rockshell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lemachinarbo.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null}},"created_at":"2025-07-09T02:50:04.000Z","updated_at":"2025-07-23T21:58:32.000Z","dependencies_parsed_at":"2025-07-14T02:55:27.039Z","dependency_job_id":"e36f4eb3-a19b-4408-80bd-ab8107b5cdfb","html_url":"https://github.com/lemachinarbo/ddev-dewire","commit_stats":null,"previous_names":["lemachinarbo/ddev-compwser","lemachinarbo/ddev-dewire"],"tags_count":6,"template":false,"template_full_name":"ddev/ddev-addon-template","purl":"pkg:github/lemachinarbo/ddev-dewire","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemachinarbo%2Fddev-dewire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemachinarbo%2Fddev-dewire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemachinarbo%2Fddev-dewire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemachinarbo%2Fddev-dewire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemachinarbo","download_url":"https://codeload.github.com/lemachinarbo/ddev-dewire/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemachinarbo%2Fddev-dewire/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"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":["ddev-get","deployment-automation","processwire","rockmigrations","rockshell"],"created_at":"2026-01-21T13:03:22.733Z","updated_at":"2026-01-21T13:03:27.493Z","avatar_url":"https://github.com/lemachinarbo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![add-on registry](https://img.shields.io/badge/DDEV-Add--on_Registry-blue)](https://addons.ddev.com)\n[![tests](https://github.com/lemachinarbo/ddev-dewire/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/lemachinarbo/ddev-dewire/actions/workflows/tests.yml?query=branch%3Amain)\n[![last commit](https://img.shields.io/github/last-commit/lemachinarbo/ddev-DeWire)](https://github.com/lemachinarbo/ddev-dewire/commits)\n[![release](https://img.shields.io/github/v/release/lemachinarbo/ddev-dewire)](https://github.com/lemachinarbo/ddev-dewire/releases/latest)\n\n# DDEV DeWire\n*Simplify ProcessWire deployments with a single DDEV command.*\n\nDeWire installs [ProcessWire](https://github.com/processwire/processwire) and uses GitHub as your deployment control center, automating environment deployments (prod, dev, staging…) from a single source of truth.\n\n\nWith DeWire you can do 3 things:\n\n1. [Download and install ProcessWire](#1-installing-processwire) with one command.\n2. Install ProcessWire *and* [deploy your site](#2-set-up-deployment) (prod, staging, etc.) step by step — one command.\n3. [Do both at once](#3-install-and-deploy-in-one-command) in auto mode with minimal prompts… yep, one command.\n4. Nope, just 3.\n\n\u003cimg width=\"1200\" height=\"695\" alt=\"Totally not a Fallout ripoff! See, her jumpsuit’s red\" src=\"https://github.com/user-attachments/assets/5032c77b-5a37-4970-819e-5fbbab66b360\" /\u003e\n\n\n## Why?\n\nAfter reading the [RockMigrations Deployments guide](https://www.baumrock.com/en/processwire/modules/rockmigrations/docs/deploy/#update-config.php), I loved finally being able to publish/update a website with just a commit; that was a game changer for someone still using FTP. But wiring it all up the whole thing —ProcessWire, modules, repo, secrets, workflows, keys— was a time sucker.\n\nDeWire builds on that idea, cutting the manual steps so your project is multi-environment deploy–ready from the start.\n\n\n## Installation\n\n```bash\nddev add-on get lemachinarbo/ddev-dewire\n```\n\n## Guides\n\n- How to [Install Processwire](https://github.com/lemachinarbo/ddev-dewire/wiki/(How-to)-Install-Processwire) from zero\n- How to [customize Processwire installation](https://github.com/lemachinarbo/ddev-dewire/wiki/(How-to)-Install-Processwire#customizing-your-installation)\n\n\n## Use Cases\n\n### 1. Installing Processwire\n\n`ddev dw-install` *Installs ProcessWire. No prerequisites required.*\n\n```bash\nmkdir myproject\ncd myproject\nddev config --auto\nddev add-on get lemachinarbo/ddev-dewired\nddev dw-install\n```\n\n### 2. Set up deployment\n\n`ddev dw-deploy` *Automates deployment to production, staging, or dev. Requires GitHub CLI, SSH keys, a personal access tokenm and a .env file.*\n\nTo enable GitHub deployments, do a quick one-time setup:\n\n1. Create your SSH keys (*only needed once. Future setups skip this step*).\n\n```sh\nddev dw-sshkeys-gen\n```\n\n2. Install the [GitHub CLI](https://github.com/cli/cli#installation) and, once installed, authenticate by running (*also a one-time setup*):\n\n```sh\ngh auth login # Select `id_github.pub` as your public SSH key when prompted.\n```\n\n3. Edit the `.env` [file](https://raw.githubusercontent.com/lemachinarbo/ddev-compwser/dev/compwser/templates/.env.example), which was installed in your root (approot) by the `ddev dw-install` command.\n\n2. Create a [new GitHub repository](https://github.com/new) for your project (private or public, your call):\n\n```sh\ngh repo create reponame --private\n\n```\n\n5. Create a [Personal Access Token](https://github.com/settings/personal-access-tokens). Under `Repository access` add your repository, and under `Repository permissions` add Read/Write access for `actions`, `contents`, `deployments`, `secrets`, `variables`, and `workflows`.\nCopy the token in the `.env` file in this line `CI_TOKEN=xxxx`\n\n6. Run the deployments script:\n\n```sh\nddev dw-deploy\n```\n\nOnce the installer finishes, update your web server configuration (using your hosting control panel) to point the `docroot` to `current`. For example, instead of `/var/www/html`, set your website root to `/var/www/html/current` to make your site visible.\n\n\n### 3. Install and deploy in one command\nAlternatively, a harder-better-faster-stronger way to install ProcessWire and deploy an environment is to use `ddev dewire`:\n\n- Complete the `.env` file.\n- Create the repo and Personal Access Token with the right permissions, then copy it to the `CI_TOKEN` variable in your `.env` file.\n\nAnd then just run:\n\n```sh\nddev dewire\n```\n\nBe aware that to run this command you have to be sure your system already has [GitHub CLI](https://github.com/cli/cli#installation) installed and authenticated (check steps one and two in [Set up deployment](#2-set-up-deployment)).\n\n\u003e [!Tip]\n\u003e Once you know what you are doing, using `ddev dewire PROD --lazy` gives you a faster, almost zero-prompts deployment.\n\u003e PROD is the name of the environment you defined on your .env file. Check the [dewire command docs](https://github.com/lemachinarbo/ddev-dewire/wiki/dewired#usage).\n\nNice. Time to enjoy some [cake](https://en.wikipedia.org/wiki/The_cake_is_a_lie).\n\n--- \n\n\n## Commands\n\n\u003e [!TIP]\n\u003e Check the [commands documentation](https://github.com/lemachinarbo/ddev-dewire/wiki) for a detailed overview of what happens under the hood each time you run a command.\n\n| Command | Description |\n| ------- | ----------- |\n| [ddev dewire](https://github.com/lemachinarbo/ddev-dewire/wiki/dewire) | Installs ProcessWire and automates publishing your site to production, staging, or dev with GitHub Actions |\n| [ddev dw-config-split](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90config%E2%80%90split) | Split `config.php` into `config-local.php` for a selected environment |\n| [ddev dw-db-import](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90db%E2%80%90import) | Import a database dump into the current environment |\n| [ddev dw-deploy](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90deploy) | Automate all setup and deployment steps for publishing your site to any environment |\n| [ddev dw-gh-env](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90gh%E2%80%90env) | Automate setup of GitHub Actions repository variables and secrets |\n| [ddev dw-gh-workflow](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90gh%E2%80%90workflow) | Generate GitHub Actions workflow YAMLs for each environment/branch pair |\n| [ddev dw-git-remote](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90git%E2%80%90remote) | Manage git remotes for deployment |\n| [ddev dw-install](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90install) | Install and bootstrap ProcessWire project |\n| [ddev dw-sshkeys-gen](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90sshkeys%E2%80%90gen) | Generate personal and project SSH keys if they do not exist |\n| [ddev dw-sshkeys-install](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90sshkeys%E2%80%90install) | Register personal and project SSH keys on a remote server and test authentication |\n| [ddev dw-sync](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90sync) | Sync files to the selected environment's server using rsync |\n| [ddev dw-transform](https://github.com/lemachinarbo/ddev-dewire/wiki/dw%E2%80%90transform) | Transform files or configuration for deployment |\n| [ddev rs](https://github.com/lemachinarbo/ddev-dewire/wiki/rs) | Shortcut to run RockShell 🤍 inside the web container |\n\n\n## Credits\n\n- Contributed and maintained by [@lemachinarbo](https://github.com/lemachinarbo)\n- Inspired by the lovely modules from [@BernhardBaumrock](https://github.com/BernhardBaumrock/)\n- Using [MoritzLost](https://github.com/moritzlost)'s [processwire.dev structure](https://github.com/MoritzLost/ProcessWireDev/blob/master/site/02-setup-and-structure/02-integrate-composer-with-processwire.md)\n- By the grace of [Ryan Cramer](https://github.com/ryancramerdesign) for creating ProcessWire\n- Powered by [DDEV](https://github.com/drud/ddev), which makes local dev painless\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemachinarbo%2Fddev-dewire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemachinarbo%2Fddev-dewire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemachinarbo%2Fddev-dewire/lists"}