Commit 337c843e authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Add optional secret key config for Wordpress

Configuring secret keys in a k8s secret speeds up the startup and may
improve some functionality.

The keys can still be generated on startup. Fewer random bytes are
needed so it is still faster.
parent b4f66576
Loading
Loading
Loading
Loading
+56 −36
Original line number Diff line number Diff line
@@ -6,13 +6,16 @@ WP_ROOT=${WORDPRESS_ROOT:-/var/www/html}
WP_CONTENT=${WP_ROOT}/wp-content
WP_CONFIG=${WP_ROOT}/wp-config.php
MYSQL_CONF=/etc/wordpress/mysql.conf
SECRET_CONF=/etc/wordpress/secret.conf

genkey() { head -c1M /dev/urandom | sha1sum | cut -d' ' -f1; }
genkey() { head -c${1:-1M} /dev/urandom | sha1sum | cut -d' ' -f1; }

create_config()
{
	run_setup_secret
	source ${MYSQL_CONF}
cat > $WP_CONFIG <<END_CONFIG
	source ${SECRET_CONF}
	cat > $WP_CONFIG <<-END_CONFIG
		<?php
		/**
		 * Generated by entrypoint.sh
@@ -29,14 +32,14 @@ define('DB_COLLATE', '');

		\$table_prefix = 'wp_';

define('AUTH_KEY',         '`genkey`');
define('SECURE_AUTH_KEY',  '`genkey`');
define('LOGGED_IN_KEY',    '`genkey`');
define('NONCE_KEY',        '`genkey`');
define('AUTH_SALT',        '`genkey`');
define('SECURE_AUTH_SALT', '`genkey`');
define('LOGGED_IN_SALT',   '`genkey`');
define('NONCE_SALT',       '`genkey`');
		define('AUTH_KEY',         '${AUTH_KEY}');
		define('SECURE_AUTH_KEY',  '${SECURE_AUTH_KEY}');
		define('LOGGED_IN_KEY',    '${LOGGED_IN_KEY}');
		define('NONCE_KEY',        '${NONCE_KEY}');
		define('AUTH_SALT',        '`genkey 128`');
		define('SECURE_AUTH_SALT', '`genkey 128`');
		define('LOGGED_IN_SALT',   '`genkey 128`');
		define('NONCE_SALT',       '`genkey 128`');

		define('FS_METHOD', 'direct');

@@ -98,6 +101,22 @@ run_setup()
	END
}

run_setup_secret()
{
	if [ -e ${SECRET_CONF} ]; then
		return
	fi

	local key=$(genkey)

	cat >${SECRET_CONF} <<-END
		AUTH_KEY="${key}"
		SECURE_AUTH_KEY="${key}"
		LOGGED_IN_KEY="${key}"
		NONCE_KEY="${key}"
	END
}

update_all() {
	wp core update --minor
	wp plugin update --all
@@ -114,6 +133,7 @@ case "$1" in
	setup)
		shift
		run_setup "$@"
		run_setup_secret
		;;
	php-fpm)
		create_config