Add WordPress/WooCommerce stack and generic env hosts

This commit is contained in:
nocci 2025-12-11 12:33:59 +00:00
parent 9138160322
commit e5f814df53
4 changed files with 75 additions and 0 deletions

View file

@ -39,6 +39,7 @@ CADDY_ACME_EMAIL=ops@example.com
BANK_HOST=bank.domain.tld BANK_HOST=bank.domain.tld
EXCHANGE_HOST=exchange.domain.tld EXCHANGE_HOST=exchange.domain.tld
MERCHANT_HOST=merchant.domain.tld MERCHANT_HOST=merchant.domain.tld
WORDPRESS_HOST=wordpress.domain.tld
# Secrets path (host path mounted into /etc/taler/secrets) # Secrets path (host path mounted into /etc/taler/secrets)
EXCHANGE_SECRETS_PATH=./exchange/secrets EXCHANGE_SECRETS_PATH=./exchange/secrets
@ -59,3 +60,15 @@ OPEN_BANKING_GATEWAY_URL=https://bank.domain.tld
BANK_BASE_URL=https://bank.domain.tld/ BANK_BASE_URL=https://bank.domain.tld/
TALER_CURRENCY=DEMOGELD TALER_CURRENCY=DEMOGELD
# WordPress / WooCommerce
WP_DB_ROOT_PASSWORD=wordpressroot
WP_DB_NAME=wordpress
WP_DB_USER=wordpress
WP_DB_PASSWORD=wordpress
WP_DB_HOST=mariadb
WP_TABLE_PREFIX=wp_
WP_URL=https://wordpress.domain.tld
WP_ADMIN_USER=admin
WP_ADMIN_PASSWORD=change_me
WP_ADMIN_EMAIL=ops@example.com

View file

@ -28,6 +28,10 @@ Container-Stack für GNU Taler (Exchange, Merchant, LibEuFin Bank) mit optionale
- Bei Domainwechsel passen BASE_URL/PAYTO in der `.env` ebenfalls an (Templates rendern automatisch beim Start). - Bei Domainwechsel passen BASE_URL/PAYTO in der `.env` ebenfalls an (Templates rendern automatisch beim Start).
- Direktes Port-Mapping (8080/8081/9966) kannst du entfernen, wenn nur Caddy nach außen gehen soll. - Direktes Port-Mapping (8080/8081/9966) kannst du entfernen, wenn nur Caddy nach außen gehen soll.
## WordPress/WooCommerce (optional)
- Services `mariadb`, `wordpress`, `wp-init`. `wp-init` installiert bei Bedarf Core, WooCommerce und das Plugin `gnu-taler-payment-for-woocommerce`.
- Env in `.env` setzen (`WP_DB_*`, `WP_URL`, Admin-Creds, `WORDPRESS_HOST`); Default-Port 8085 oder über Caddy (`WORDPRESS_HOST`).
## Hinweise ## Hinweise
- Passwörter in `.env` müssen zu `postgres/init/01-init-taler.sh` passen (wird automatisch per Env gesetzt). - Passwörter in `.env` müssen zu `postgres/init/01-init-taler.sh` passen (wird automatisch per Env gesetzt).
- Master-Key muss stabil bleiben; nur Pfad mounten, nicht neu generieren. - Master-Key muss stabil bleiben; nur Pfad mounten, nicht neu generieren.

View file

@ -13,3 +13,7 @@
{$MERCHANT_HOST} { {$MERCHANT_HOST} {
reverse_proxy merchant:9966 reverse_proxy merchant:9966
} }
{$WORDPRESS_HOST} {
reverse_proxy wordpress:80
}

View file

@ -108,8 +108,62 @@ services:
BANK_HOST: ${BANK_HOST:-ob.antifa.ltd} BANK_HOST: ${BANK_HOST:-ob.antifa.ltd}
EXCHANGE_HOST: ${EXCHANGE_HOST:-exchange.antifa.ltd} EXCHANGE_HOST: ${EXCHANGE_HOST:-exchange.antifa.ltd}
MERCHANT_HOST: ${MERCHANT_HOST:-merchant.antifa.ltd} MERCHANT_HOST: ${MERCHANT_HOST:-merchant.antifa.ltd}
WORDPRESS_HOST: ${WORDPRESS_HOST:-wordpress.domain.tld}
mariadb:
image: mariadb:11
environment:
MARIADB_ROOT_PASSWORD: ${WP_DB_ROOT_PASSWORD:-wordpressroot}
MARIADB_DATABASE: ${WP_DB_NAME:-wordpress}
MARIADB_USER: ${WP_DB_USER:-wordpress}
MARIADB_PASSWORD: ${WP_DB_PASSWORD:-wordpress}
volumes:
- mariadb_data:/var/lib/mysql
wordpress:
image: wordpress:6.5-php8.2-apache
depends_on: [mariadb]
environment:
WORDPRESS_DB_HOST: ${WP_DB_HOST:-mariadb}
WORDPRESS_DB_NAME: ${WP_DB_NAME:-wordpress}
WORDPRESS_DB_USER: ${WP_DB_USER:-wordpress}
WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD:-wordpress}
WORDPRESS_TABLE_PREFIX: ${WP_TABLE_PREFIX:-wp_}
volumes:
- wordpress_data:/var/www/html
ports:
- "8085:80"
wp-init:
image: wordpress:cli-php8.2
depends_on: [wordpress]
environment:
WORDPRESS_DB_HOST: ${WP_DB_HOST:-mariadb}
WORDPRESS_DB_NAME: ${WP_DB_NAME:-wordpress}
WORDPRESS_DB_USER: ${WP_DB_USER:-wordpress}
WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD:-wordpress}
WORDPRESS_TABLE_PREFIX: ${WP_TABLE_PREFIX:-wp_}
WP_URL: ${WP_URL:-https://wordpress.domain.tld}
WP_ADMIN_USER: ${WP_ADMIN_USER:-admin}
WP_ADMIN_PASSWORD: ${WP_ADMIN_PASSWORD:-change_me}
WP_ADMIN_EMAIL: ${WP_ADMIN_EMAIL:-ops@example.com}
volumes:
- wordpress_data:/var/www/html
entrypoint: ["/bin/sh","-c"]
command: >
set -e;
cd /var/www/html;
wp core is-installed --allow-root ||
wp core install --allow-root --url="${WP_URL}" --title="Taler Demo Shop"
--admin_user="${WP_ADMIN_USER}" --admin_password="${WP_ADMIN_PASSWORD}" --admin_email="${WP_ADMIN_EMAIL}";
wp plugin is-installed woocommerce --allow-root || wp plugin install woocommerce --activate --allow-root;
wp plugin is-installed gnu-taler-payment-for-woocommerce --allow-root || wp plugin install gnu-taler-payment-for-woocommerce --activate --allow-root;
echo "WordPress init complete.";
restart: "no"
volumes: volumes:
pgdata: {} pgdata: {}
caddy_data: {} caddy_data: {}
caddy_config: {} caddy_config: {}
mariadb_data: {}
wordpress_data: {}