Compare commits

...
Author SHA1 Message Date
3wordchant dcb8a9a3a9 chore: publish 2.7.2+6.4.2 release 2024-01-17 17:47:32 -03:00
3wordchant f3a9fad0a1 Bump ENTRYPOINT_CONF_VERSION 2024-01-17 17:46:22 -03:00
3wordchant ebbd41e612 chore: publish 2.7.1+6.4.2 release 2024-01-17 17:40:07 -03:00
p4u1 b45fca4a3f chore: publish 2.7.0+6.4.2 release 2023-12-22 13:36:13 +01:00
p4u1 1a6b11c95b feat: multisite with sufolders (#35)
With this commit multisite now also works with subpaths instead of subdomains.

It also simpified the multisite deployment in generall by adding a new MULTISITE environment variable. Depending on its value WORDPRESS_CONFIG_EXTRA gets set in the entrypoint. And the correct .htaccess gets deployed.

Closes #34

I am still new to coopcloud and welcome feedback on my approach. The second commit is not required for #34 so I can remove it again.

Reviewed-on: https://git.coopcloud.tech/coop-cloud/wordpress/pulls/35
Co-authored-by: p4u1 <p4u1_f4u1@riseup.net>
Co-committed-by: p4u1 <p4u1_f4u1@riseup.net>
2023-12-22 12:35:10 +00:00
p4u1 de5455833e chore: publish 2.6.3+6.4.2 release 2023-12-22 13:26:36 +01:00
Moritz 81dbeca30d fix COMPOSE_FILE env for remote SMTP relay, it requires the mailrelay 2023-12-05 15:29:45 +01:00
3wordchant 245b800439 Merge pull request 'wordpress 6.4.1' (#37) from p4u1/wordpress:6-4-1 into master
Reviewed-on: https://git.coopcloud.tech/coop-cloud/wordpress/pulls/37
2023-12-02 15:31:20 +00:00
p4u1 540d526914 wordpress 6.4.1 and mariadb 11.2 2023-11-27 15:13:58 +01:00
8 changed files with 93 additions and 19 deletions
+3 -8
View File
@@ -34,13 +34,8 @@ SECRET_DB_PASSWORD_VERSION=v1
# Mostly for compatibility with existing database dumps... # Mostly for compatibility with existing database dumps...
#WORDPRESS_TABLE_PREFIX=wp_ #WORDPRESS_TABLE_PREFIX=wp_
# Multisite # Multisite (see README)
#WORDPRESS_CONFIG_EXTRA="\ #MULTISITE=enable # either 'enable', 'subdomain' or 'subfolder'
#define('WP_CACHE', false);\
#define('WP_ALLOW_MULTISITE', true );"
# Multisite phase 2 (see README)
#WORDPRESS_CONFIG_EXTRA="define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', '${DOMAIN}'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); define('FORCE_SSL_ADMIN', true ); define('COOKIE_DOMAIN', \$_SERVER['HTTP_HOST']);"
# Local SMTP relay # Local SMTP relay
#COMPOSE_FILE="$COMPOSE_FILE:compose.mailrelay.yml" #COMPOSE_FILE="$COMPOSE_FILE:compose.mailrelay.yml"
@@ -48,7 +43,7 @@ SECRET_DB_PASSWORD_VERSION=v1
#MAIL_FROM="wordpress@example.com" #MAIL_FROM="wordpress@example.com"
# Remote SMTP relay # Remote SMTP relay
#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml" #COMPOSE_FILE="$COMPOSE_FILE:compose.mailrelay.yml:compose.smtp.yml"
#SMTP_HOST="mail.example.com" #SMTP_HOST="mail.example.com"
#MAIL_FROM="wordpress@example.com" #MAIL_FROM="wordpress@example.com"
#SMTP_USER="wordpress@example.com" # optional, defaults to MAIL_FROM #SMTP_USER="wordpress@example.com" # optional, defaults to MAIL_FROM
+2 -6
View File
@@ -47,16 +47,12 @@ AUTHENTIK_ID_NAME=authentik_example_com_wordpress_id_v1 # the same as in authen
## Network (Multi-site) ## Network (Multi-site)
_(Only tested using subdomains)_
1. Set up as above 1. Set up as above
2. `abra app config <app-name>`, and uncomment the first `# Multisite` section 2. `abra app config <app-name>`, and uncomment `#MULTISITE=enable`
3. `abra app deploy <app-name>` 3. `abra app deploy <app-name>`
4. Log into the Wordpress admin dashboard, go to Tools » Network Setup 4. Log into the Wordpress admin dashboard, go to Tools » Network Setup
5. Don't worry about the suggested file changes 5. Don't worry about the suggested file changes
6. `abra app config <app-name>` again - comment out the first `# Multisite` 6. `abra app config <app-name>` again and set `MULTISITE` to either `subdomain` or `subfolder` depending on your setup.
section in `.envrc`, uncomment the `# Multisite phase 2` section, and add
your multisite subdomain(s) to `EXTRA_DOMAINS` (beware the weird syntax..)
7. `abra app deploy <app-name>` 7. `abra app deploy <app-name>`
## Installing a custom theme ## Installing a custom theme
+2 -1
View File
@@ -1,7 +1,8 @@
export PHP_UPLOADS_CONF_VERSION=v3 export PHP_UPLOADS_CONF_VERSION=v3
export ENTRYPOINT_CONF_VERSION=v6 export ENTRYPOINT_CONF_VERSION=v7
export ENTRYPOINT_MAILRELAY_CONF_VERSION=v2 export ENTRYPOINT_MAILRELAY_CONF_VERSION=v2
export MSMTP_CONF_VERSION=v4 export MSMTP_CONF_VERSION=v4
export HTACCESS_CONF_VERSION=v2
wp() { wp() {
su -p www-data -s /bin/bash -c "/usr/local/bin/wp $@" su -p www-data -s /bin/bash -c "/usr/local/bin/wp $@"
+9 -3
View File
@@ -3,7 +3,7 @@ version: "3.8"
services: services:
app: app:
image: "wordpress:6.4.0" image: "wordpress:6.4.2"
volumes: volumes:
- "wordpress_content:/var/www/html/wp-content/" - "wordpress_content:/var/www/html/wp-content/"
networks: networks:
@@ -31,6 +31,8 @@ services:
- source: entrypoint_conf - source: entrypoint_conf
target: /docker-entrypoint.sh target: /docker-entrypoint.sh
mode: 0555 mode: 0555
- source: htaccess_conf
target: /var/www/html/.htaccess
entrypoint: /docker-entrypoint.sh entrypoint: /docker-entrypoint.sh
depends_on: depends_on:
- db - db
@@ -58,10 +60,10 @@ services:
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "backupbot.backup=true" - "backupbot.backup=true"
- "backupbot.backup.path=/var/www/html" - "backupbot.backup.path=/var/www/html"
- "coop-cloud.${STACK_NAME}.version=2.6.1+6.4.0" - "coop-cloud.${STACK_NAME}.version=2.7.2+6.4.2"
db: db:
image: "mariadb:11.0" image: "mariadb:11.2"
volumes: volumes:
- "mariadb:/var/lib/mysql" - "mariadb:/var/lib/mysql"
networks: networks:
@@ -108,3 +110,7 @@ configs:
php_uploads_conf: php_uploads_conf:
name: ${STACK_NAME}_php_uploads_conf_${PHP_UPLOADS_CONF_VERSION} name: ${STACK_NAME}_php_uploads_conf_${PHP_UPLOADS_CONF_VERSION}
file: uploads.ini file: uploads.ini
htaccess_conf:
name: ${STACK_NAME}_htaccess_conf_${HTACCESS_CONF_VERSION}
file: htaccess.tmpl
template_driver: golang
+18
View File
@@ -24,6 +24,24 @@ a2enmod headers
sed -ri -e 's/^([ \t]*)(<\/VirtualHost>)/\1\tHeader set Access-Control-Allow-Origin "*"\n\1\2/g' /etc/apache2/sites-available/*.conf sed -ri -e 's/^([ \t]*)(<\/VirtualHost>)/\1\tHeader set Access-Control-Allow-Origin "*"\n\1\2/g' /etc/apache2/sites-available/*.conf
{{ end }} {{ end }}
{{ if eq (env "MULTISITE") "enable" }}
export WORDPRESS_CONFIG_EXTRA="$WORDPRESS_CONFIG_EXTRA
define('WP_CACHE', false);
define('WP_ALLOW_MULTISITE', true );"
{{ end }}
{{ if or (eq (env "MULTISITE") "subdomain") (eq (env "MULTISITE") "subfolder") }}
export WORDPRESS_CONFIG_EXTRA="$WORDPRESS_CONFIG_EXTRA
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '${DOMAIN}');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
define('FORCE_SSL_ADMIN', true );
define('COOKIE_DOMAIN', \$_SERVER['HTTP_HOST']);"
{{ end }}
if [ -n "$@" ]; then if [ -n "$@" ]; then
"$@" "$@"
fi fi
+57
View File
@@ -0,0 +1,57 @@
{{ if eq (env "MULTISITE") "" -}}
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
{{- end -}}
{{- if eq (env "MULTISITE") "subfolder" -}}
# BEGIN WordPress Multisite
# Using subfolder network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
{{- end -}}
{{- if eq (env "MULTISITE") "subdomain" -}}
# BEGIN WordPress Multisite
# Using subdomain network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
{{- end }}
+1
View File
@@ -0,0 +1 @@
The authentik secrets need to be inserted again, as wordpress is not sharing the secret with authentik any more.
+1 -1
View File
@@ -1 +1 @@
The authentik secrets need to be inserted again, as wordpress is not sharing the secret with authentik any more. Multisite now also works with subpaths instead of subdomains. Also Multisite support was simplified. If you are using a subdomain multisite setup you can remove the `WORDPRESS_CONFIG_EXTRA="define('MULTISITE', true);...` from your config and instead set MULTISITE=subdomain.