Skip to content

feat(demo): one-command Docker dev/demo environment#25

Merged
mpge merged 3 commits intomainfrom
feat/docker-demo
Apr 19, 2026
Merged

feat(demo): one-command Docker dev/demo environment#25
mpge merged 3 commits intomainfrom
feat/docker-demo

Conversation

@mpge
Copy link
Copy Markdown
Member

@mpge mpge commented Apr 18, 2026

Now end-to-end working.

What you get

cd docker
docker compose up
# wait ~30s for wpcli sidecar to finish setup

3-container compose: wordpress:6.6-php8.3-apache + MariaDB + Mailpit + a wpcli sidecar that runs on every up.

The plugin is mounted read-only at wp-content/plugins/escalated-wordpress. The sidecar (docker/setup.sh) installs WP, activates the plugin, seeds 5 users (alice admin + bob/carol editors + frank/grace subscribers), enables pretty permalinks, installs a tiny mu-plugin (docker/demo-picker.php) that exposes /demo/ for click-to-login, and flushes rewrite rules.

(Note: this demo uses MariaDB, not Postgres — WordPress is a MySQL-family app. All other escalated-* demos run on Postgres.)

Verified

$ curl -s -L -o /dev/null -w '%{http_code}\n' http://localhost:8090/demo/
200
$ curl -s -X POST -b cookies -c cookies -d "_demo_nonce=$nonce"     http://localhost:8090/demo/login/1
302 -> http://localhost:8090/wp-admin/
$ curl -s -L -b cookies http://localhost:8090/wp-admin/ | grep '<title>'
<title>Dashboard ‹ Escalated Demo — WordPress</title>

Closes #26.

@mpge mpge marked this pull request as ready for review April 19, 2026 02:01
@mpge mpge changed the title feat(demo): Docker dev env scaffold (DRAFT, needs WP-CLI setup) feat(demo): one-command Docker dev/demo environment Apr 19, 2026
- docker/setup.sh: wp core install, plugin activate, seed 5 users, set
  pretty permalinks, install demo-picker mu-plugin, flush rewrites
- docker/demo-picker.php: registers /demo + /demo/login/{id} rewrite,
  renders picker, handles cookie-based click-login via wp_set_auth_cookie
- docker/compose.yml: wpcli sidecar service + APP_PORT 8090 to avoid
  collision with other escalated-* demos on 8080

Verified end-to-end against MariaDB:

  $ curl -s -L -o /dev/null -w '%{http_code}\n' http://localhost:8090/demo/
  200
  $ curl -s -X POST -b cookies -c cookies \
      -d "_demo_nonce=$nonce" http://localhost:8090/demo/login/1
  302 -> http://localhost:8090/wp-admin/
  $ curl -s -o /tmp/admin.html -L -b cookies http://localhost:8090/wp-admin/
  200 (Dashboard renders, alice logged in)

Closes #26.
@mpge mpge force-pushed the feat/docker-demo branch from 1353c0a to eabb1e3 Compare April 19, 2026 02:04
@mpge mpge merged commit aed4a90 into main Apr 19, 2026
3 checks passed
@mpge mpge deleted the feat/docker-demo branch April 19, 2026 02:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Finish Docker demo: WP-CLI setup script, seed, /demo picker page

1 participant