Jumpstarter Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
This is a plugin for WordPress installations in a Jumpstarter container environment. The main purpose is to combat the problems one encounters when running WordPress in a container environment under nginx behind multiple http proxy layers.
The plugin is divided into two distinct parts.
- The installer/environment synchronizer (
js-init.php
). - The actual plugin (
jumpstarter.php
).
The installer
The installer takes care of the following:
- Install WordPress if
/app/code/wp-db
does not exist. - Sync the
/app/env.json
and/app/code/wp-env.json
environments with WordPress.
Install is done the following way:
- Configure security salts in
wp-config.php
if not done already. - Clean up previous failed or aborted installations.
- Install WordPress to RAM (in
/tmp
) to get rid of waiting for disk sync. - Activating core plugins (
jumpstarter
andsqlite-integration
). - Setting the theme specified in
wp-env.json
. - Run WordPress install hooks registered with
add_action("jumpstarter_install",...)
. - Atomically move the database in place. This allows the install to be idempotent.
- Restart by execve’ing itself so environment sync can run.
Environment sync is done the following way:
- Setting nginx
fastcgi_param HTTPS
to “on”/”off” depending on configured domains for the container. - Opening and parsing
/app/code/wp-env.json
. - If the
siteurl
has changed it performs a safe search/replace ofsiteurl
inwp_posts
,wp_postmeta
andwp_options
. - Set theme specified in
theme
if not changed by the user. - Update options specified in
options
. - Opening and parsing
/app/env.json
. - Update user details if they are admin default.
- Call the hook
jumpstarter_sync_env
to let themes/plugins modify database state depending on the env.
It also prints logging and error information to stderr
.
The plugin
The plugin takes care of the following:
- Sandboxes all users and overrides any user capabilities defined in
/app/code/wp-env.json
. - Injects a login link to support Jumpstarter reflected login on
/wp-login.php
. - Handles login requests from Jumpstarter by authenticating posts of
jumpstarter-auth-token
. On successful authentication the user is logged in as the admin user. - Hooks in on
set_url_scheme
and uses the env to determine if the url should use http or https. - Disables the possibility to delete the theme that’s specified in the wp env.
- Rewrites urls passed to
wp_enqueue_script
andwp_enqueue_style
depending on if SSL is on or not.
Screenshots
No screenshots provided