188 lines
7.2 KiB
YAML
188 lines
7.2 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16
|
|
environment:
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-taler}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
- ./postgres/init:/docker-entrypoint-initdb.d:ro
|
|
|
|
exchange:
|
|
image: taler-stack:build
|
|
entrypoint: ["/usr/local/bin/with-dbinit.sh"]
|
|
command: ["taler-exchange-httpd", "-c", "/etc/taler/taler-exchange.conf"]
|
|
environment:
|
|
DB_NAME: ${TALER_EXCHANGE_DB:-talerexchange}
|
|
INIT_CMD: taler-exchange-dbinit -c /etc/taler/taler-exchange.conf
|
|
PGHOST: ${POSTGRES_HOST:-postgres}
|
|
PGUSER: ${POSTGRES_ADMIN_USER:-postgres}
|
|
PGPASSWORD: ${POSTGRES_PASSWORD:-taler}
|
|
EXCHANGE_BASE_URL: ${EXCHANGE_BASE_URL:-https://exchange.antifa.ltd/}
|
|
EXCHANGE_SHOPPING_URL: ${EXCHANGE_SHOPPING_URL:-https://exchange.antifa.ltd/}
|
|
OPEN_BANKING_GATEWAY_URL: ${OPEN_BANKING_GATEWAY_URL:-https://ob.antifa.ltd}
|
|
PAYTO_URI: ${PAYTO_URI:-payto://x-taler-bank/ob.antifa.ltd/demogeld?receiver-name=demogeld}
|
|
EXCHANGE_HOST: ${EXCHANGE_HOST:-exchange.antifa.ltd}
|
|
BANK_HOST: ${BANK_HOST:-ob.antifa.ltd}
|
|
depends_on: [postgres]
|
|
volumes:
|
|
- ./exchange/conf:/etc/taler
|
|
- ${EXCHANGE_SECRETS_PATH:-./exchange/secrets}:/etc/taler/secrets
|
|
- ./exchange/terms:/etc/taler-exchange/terms
|
|
- ./exchange/privacy:/etc/taler-exchange/privacy
|
|
ports:
|
|
- "8081:8081" # intern, später via Reverse Proxy auf 443
|
|
|
|
exchange-account-init:
|
|
image: taler-stack:build
|
|
depends_on: [exchange]
|
|
environment:
|
|
ENABLE_EXCHANGE_ACCOUNT: ${ENABLE_EXCHANGE_ACCOUNT:-0}
|
|
PAYTO_URI: ${PAYTO_URI:-payto://x-taler-bank/ob.antifa.ltd/demogeld?receiver-name=demogeld}
|
|
EXCHANGE_CONFIG: /etc/taler/taler-exchange.conf
|
|
EXCHANGE_KEYS_URL: ${EXCHANGE_KEYS_URL:-http://exchange:8081/keys}
|
|
EXCHANGE_WAIT_RETRIES: ${EXCHANGE_WAIT_RETRIES:-60}
|
|
EXCHANGE_WAIT_INTERVAL: ${EXCHANGE_WAIT_INTERVAL:-2}
|
|
EXCHANGE_CURL_OPTS: ${EXCHANGE_CURL_OPTS:-}
|
|
volumes:
|
|
- ./exchange/conf:/etc/taler
|
|
- ${EXCHANGE_SECRETS_PATH:-./exchange/secrets}:/etc/taler/secrets
|
|
- ./exchange/terms:/etc/taler-exchange/terms
|
|
- ./exchange/privacy:/etc/taler-exchange/privacy
|
|
command: ["/usr/local/bin/enable-exchange-account.sh"]
|
|
restart: "no"
|
|
|
|
merchant:
|
|
image: taler-stack:build
|
|
entrypoint: ["/usr/local/bin/with-dbinit.sh"]
|
|
command: ["taler-merchant-httpd", "-c", "/etc/taler-merchant/merchant.conf"]
|
|
environment:
|
|
DB_NAME: ${TALER_MERCHANT_DB:-talermerchant}
|
|
INIT_CMD: taler-merchant-dbinit -c /etc/taler-merchant/merchant.conf
|
|
PGHOST: ${POSTGRES_HOST:-postgres}
|
|
PGUSER: ${POSTGRES_ADMIN_USER:-postgres}
|
|
PGPASSWORD: ${POSTGRES_PASSWORD:-taler}
|
|
EXCHANGE_BASE_URL: ${EXCHANGE_BASE_URL:-https://exchange.antifa.ltd/}
|
|
EXCHANGE_HOST: ${EXCHANGE_HOST:-exchange.antifa.ltd}
|
|
depends_on: [postgres, exchange]
|
|
volumes:
|
|
- ./merchant/conf:/etc/taler-merchant
|
|
ports:
|
|
- "9966:9966"
|
|
|
|
bank:
|
|
image: taler-stack:build
|
|
entrypoint: ["/usr/local/bin/with-dbinit.sh"]
|
|
command: ["libeufin-bank", "serve", "-c", "/etc/libeufin/bank.conf"]
|
|
environment:
|
|
DB_NAME: ${LIBEUFIN_DB_NAME:-libeufinbank}
|
|
INIT_CMD: libeufin-bank dbinit -c /etc/libeufin/bank.conf
|
|
PGHOST: ${POSTGRES_HOST:-postgres}
|
|
PGUSER: ${POSTGRES_ADMIN_USER:-postgres}
|
|
PGPASSWORD: ${POSTGRES_PASSWORD:-taler}
|
|
BANK_BASE_URL: ${BANK_BASE_URL:-https://ob.antifa.ltd/}
|
|
BANK_HOST: ${BANK_HOST:-ob.antifa.ltd}
|
|
EXCHANGE_BASE_URL: ${EXCHANGE_BASE_URL:-https://exchange.antifa.ltd/}
|
|
EXCHANGE_HOST: ${EXCHANGE_HOST:-exchange.antifa.ltd}
|
|
LIBEUFIN_ADMIN_USER: ${LIBEUFIN_ADMIN_USER:-admin}
|
|
LIBEUFIN_ADMIN_PASSWORD: ${LIBEUFIN_ADMIN_PASSWORD:-}
|
|
LIBEUFIN_USER: ${LIBEUFIN_USER:-demogeld}
|
|
LIBEUFIN_USER_PASSWORD: ${LIBEUFIN_USER_PASSWORD:-}
|
|
depends_on: [postgres]
|
|
volumes:
|
|
- ./bank/conf:/etc/libeufin
|
|
ports:
|
|
- "8080:8080"
|
|
|
|
sync:
|
|
image: taler-stack:build
|
|
entrypoint: ["/usr/local/bin/with-dbinit.sh"]
|
|
command: ["taler-sync-httpd", "-c", "/etc/taler-sync/taler-sync.conf"]
|
|
environment:
|
|
DB_NAME: ${TALER_SYNC_DB:-talersync}
|
|
INIT_CMD: taler-sync-dbinit -c /etc/taler-sync/taler-sync.conf
|
|
PGHOST: ${POSTGRES_HOST:-postgres}
|
|
PGUSER: ${POSTGRES_ADMIN_USER:-postgres}
|
|
PGPASSWORD: ${POSTGRES_PASSWORD:-taler}
|
|
SYNC_BASE_URL: ${SYNC_BASE_URL:-https://sync.domain.tld/}
|
|
SYNC_HOST: ${SYNC_HOST:-sync.domain.tld}
|
|
depends_on: [postgres]
|
|
volumes:
|
|
- ./sync/conf:/etc/taler-sync
|
|
ports:
|
|
- "8087:8087"
|
|
|
|
caddy:
|
|
image: caddy:2
|
|
depends_on: [exchange, merchant, bank, sync]
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- caddy_data:/data
|
|
- caddy_config:/config
|
|
environment:
|
|
CADDY_ACME_EMAIL: ${CADDY_ACME_EMAIL:-ops@example.com}
|
|
BANK_HOST: ${BANK_HOST:-ob.antifa.ltd}
|
|
EXCHANGE_HOST: ${EXCHANGE_HOST:-exchange.antifa.ltd}
|
|
MERCHANT_HOST: ${MERCHANT_HOST:-merchant.antifa.ltd}
|
|
SYNC_HOST: ${SYNC_HOST:-sync.domain.tld}
|
|
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:
|
|
pgdata: {}
|
|
caddy_data: {}
|
|
caddy_config: {}
|
|
mariadb_data: {}
|
|
wordpress_data: {}
|