Compare commits

...

18 Commits

10 changed files with 36 additions and 20 deletions

BIN
.abra.sh.swp Normal file

Binary file not shown.

BIN
.compose.yml.swo Normal file

Binary file not shown.

BIN
.compose.yml.swp Normal file

Binary file not shown.

@ -11,23 +11,16 @@ LETS_ENCRYPT_ENV=production
SECRET_DB_ROOT_PASSWORD_VERSION=v1 SECRET_DB_ROOT_PASSWORD_VERSION=v1
SECRET_DB_PASSWORD_VERSION=v1 SECRET_DB_PASSWORD_VERSION=v1
# Mostly for compatibility with existing database dumps...
#WORDPRESS_TABLE_PREFIX=wp_
# Multisite # Multisite
#WORDPRESS_CONFIG_EXTRA="\ #WORDPRESS_CONFIG_EXTRA="\
# define('WP_CACHE', false);\ # define('WP_CACHE', false);\
# define('WP_ALLOW_MULTISITE', true );" # define('WP_ALLOW_MULTISITE', true );"
# Multisite phase 2 (see README) # Multisite phase 2 (see README)
#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']);"
# define('WP_CACHE', false);\
# define('WP_ALLOW_MULTISITE', true );\
# 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.yml:compose.mailrelay.yml" #COMPOSE_FILE="compose.yml:compose.mailrelay.yml"

@ -32,10 +32,7 @@ Coöp Cloud + [Wordpress](https://wordpress.org) = 🥳
## Running WP-CLI ## Running WP-CLI
`abra app YOURAPPDOMAIN wp 'core check-update --major'` `abra app cmd YOURAPPDOMAIN app wp -- core check-update --major`
(the WP-CLI arguments need to be quoted, because of how `abra` handles
command-line arguments)
## Network (Multi-site) ## Network (Multi-site)

12
abra.sh

@ -1,8 +1,16 @@
export PHP_UPLOADS_CONF_VERSION=v3 export PHP_UPLOADS_CONF_VERSION=v3
export ENTRYPOINT_CONF_VERSION=v2 export ENTRYPOINT_CONF_VERSION=v3
export ENTRYPOINT_MAILRELAY_CONF_VERSION=v1 export ENTRYPOINT_MAILRELAY_CONF_VERSION=v2
export MSMTP_CONF_VERSION=v3 export MSMTP_CONF_VERSION=v3
wp() {
/usr/local/bin/wp $@
}
fix_mysql() {
echo "ALTER TABLE mysql.column_stats MODIFY histogram longblob; ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');" | mysql -u root -p$(cat /run/secrets/db_root_password)
}
sub_wp() { sub_wp() {
CONTAINER=$(docker container ls -f "Name=${STACK_NAME}_app" --format '{{ .ID }}') CONTAINER=$(docker container ls -f "Name=${STACK_NAME}_app" --format '{{ .ID }}')
if [ -z "$CONTAINER" ]; then if [ -z "$CONTAINER" ]; then

@ -6,6 +6,7 @@ services:
entrypoint: /docker-entrypoint.mailrelay.sh entrypoint: /docker-entrypoint.mailrelay.sh
environment: environment:
- SMTP_HOST=${SMTP_HOST} - SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT:-25}
- MAIL_FROM=${MAIL_FROM} - MAIL_FROM=${MAIL_FROM}
configs: configs:
- source: mstmp_conf - source: mstmp_conf

@ -3,18 +3,20 @@ version: "3.8"
services: services:
app: app:
image: "wordpress:5.8.1" image: "wordpress:6.1.1"
volumes: volumes:
- "wordpress_content:/var/www/html/wp-content/" - "wordpress_content:/var/www/html/wp-content/"
networks: networks:
- backend - backend
- proxy - proxy
environment: environment:
- PAGER=more
- WORDPRESS_DB_HOST=db - WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=wordpress - WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD_FILE=/run/secrets/db_password - WORDPRESS_DB_PASSWORD_FILE=/run/secrets/db_password
- WORDPRESS_DB_NAME=wordpress - WORDPRESS_DB_NAME=wordpress
- WORDPRESS_CONFIG_EXTRA=${WORDPRESS_CONFIG_EXTRA} - WORDPRESS_CONFIG_EXTRA=${WORDPRESS_CONFIG_EXTRA}
- WORDPRESS_TABLE_PREFIX
- PHP_EXTENSIONS - PHP_EXTENSIONS
secrets: secrets:
- db_password - db_password
@ -48,10 +50,12 @@ services:
#- "traefik.http.routers.${STACK_NAME}.rule=HostRegexp(`{subdomain:.+}.${DOMAIN}`, `${DOMAIN}`)" #- "traefik.http.routers.${STACK_NAME}.rule=HostRegexp(`{subdomain:.+}.${DOMAIN}`, `${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "coop-cloud.${STACK_NAME}.version=1.0.0+5.8.1" - "coop-cloud.${STACK_NAME}.version=2.2.0+6.1.1"
- "backupbot.backup=true"
- "backupbot.backup.path=/var/www/html"
db: db:
image: "mariadb:10.6" image: "mariadb:10.8"
volumes: volumes:
- "mariadb:/var/lib/mysql" - "mariadb:/var/lib/mysql"
networks: networks:
@ -64,6 +68,14 @@ services:
secrets: secrets:
- db_password - db_password
- db_root_password - db_root_password
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.path: "/tmp/dump.sql.gz"
backupbot.backup.pre-hook: "sh -c 'mysqldump --single-transaction -u root -p\"$$(cat /run/secrets/db_root_password)\" wordpress | gzip > /tmp/dump.sql.gz'"
backupbot.backup.post-hook: "rm -f /tmp/dump.sql.gz"
backupbot.restore: "true"
backupbot.restore.post-hook: "sh -c 'mysql -u root -p\"$$(cat /run/secrets/db_root_password)\" wordpress < /tmp/dbdump.sql && rm -f /tmp/dbdump.sql'"
networks: networks:
backend: backend:

@ -3,3 +3,5 @@
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y msmtp && rm -rf /var/lib/apt/lists/* apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y msmtp && rm -rf /var/lib/apt/lists/*
echo "sendmail_path = /usr/bin/msmtp -t -i" > /usr/local/etc/php/conf.d/sendmail.ini echo "sendmail_path = /usr/bin/msmtp -t -i" > /usr/local/etc/php/conf.d/sendmail.ini
/docker-entrypoint.sh

@ -4,6 +4,9 @@
docker-php-ext-install {{ env "PHP_EXTENSIONS" }} docker-php-ext-install {{ env "PHP_EXTENSIONS" }}
{{ end }} {{ end }}
curl -z /usr/local/bin/wp -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x /usr/local/bin/wp
if [ -n "$@" ]; then if [ -n "$@" ]; then
"$@" "$@"
fi fi