#!/bin/bash # Install dual-currency "No Formal Terms" ToS for the merchant backend. # Run as root inside the merchant container (taler-hacktivism). # # Sets files under TERMS_DIR/en/ for TERMS_ETAG = merchant-tos-dual-v0 # (see configs/taler-hacktivism/merchant-overrides.conf). set -euo pipefail export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin${PATH:+:$PATH}" ETAG="${TERMS_ETAG:-merchant-tos-dual-v2}" CONF="${TALER_MERCHANT_CONFIG:-/etc/taler-merchant/taler-merchant.conf}" DATA_HOME="" if command -v taler-config >/dev/null 2>&1; then DATA_HOME=$(taler-config -c "$CONF" -f -s PATHS -o TALER_DATA_HOME 2>/dev/null || true) fi # common fallbacks for d in \ "$DATA_HOME" \ /var/lib/taler-merchant/ \ /var/lib/taler-merchant do [ -n "${d:-}" ] || continue d="${d%/}/" if [ -d "$d" ] || mkdir -p "$d" 2>/dev/null; then DATA_HOME="$d" break fi done DATA_HOME="${DATA_HOME:-/var/lib/taler-merchant/}" TERMS_DIR="${TERMS_DIR:-${DATA_HOME%/}/terms}" LANG_DIR="$TERMS_DIR/en" mkdir -p "$LANG_DIR" TITLE="No Formal Terms · Dual Currency Notice" BODY_MD='# No Formal Terms · Dual Currency Notice This is a **self-hosted GNU Taler merchant backend** at `taler.hacktivism.ch` (hacktivism.ch). **No formal terms of service** from Taler Operations AG (or any other third-party portal operator) apply to this instance. This short notice is the site policy for using the backend. ## Dual currency This backend is configured for **two currencies at once**: - **GOA** — explorational / experimental currency of the local stack (`exchange.hacktivism.ch`, `bank.hacktivism.ch`). GOA is **not** legal tender. It has **no guaranteed real-world value**, redemption, or convertibility. - **CHF** — Swiss francs, a **real** currency. CHF amounts are real money settled via the CHF exchange configured on this host (taler-ops / TOPS infrastructure as deployed). Treat CHF with the seriousness of ordinary payments. By creating a merchant instance, accepting payments, or otherwise using this service you acknowledge that: - GOA is for exploration and testing only. - CHF involves real money — only use funds you control and can afford to risk on a self-hosted experimental stack. - There is no guaranteed availability, support, or uptime. - Operators may reset GOA state, change configuration, delete instance data, or interrupt service without notice. - Software is provided as-is, without warranty. If you do not agree, do not use this merchant backend. ## Related - Exchange (GOA): https://exchange.hacktivism.ch/terms - Bank intro: https://bank.hacktivism.ch/intro/ - Merchant intro: https://taler.hacktivism.ch/intro/ ' BODY_TXT='No Formal Terms · Dual Currency Notice This is a self-hosted GNU Taler merchant backend at taler.hacktivism.ch (hacktivism.ch). No formal terms of service from Taler Operations AG (or any other third-party portal operator) apply to this instance. This short notice is the site policy for using the backend. Dual currency ------------- This backend is configured for two currencies at once: - GOA — explorational / experimental currency of the local stack (exchange.hacktivism.ch, bank.hacktivism.ch). GOA is not legal tender. It has no guaranteed real-world value, redemption, or convertibility. - CHF — Swiss francs, a real currency. CHF amounts are real money settled via the CHF exchange configured on this host (taler-ops / TOPS infrastructure as deployed). Treat CHF with the seriousness of ordinary payments. By creating a merchant instance, accepting payments, or otherwise using this service you acknowledge that: - GOA is for exploration and testing only. - CHF involves real money — only use funds you control and can afford to risk on a self-hosted experimental stack. - There is no guaranteed availability, support, or uptime. - Operators may reset GOA state, change configuration, delete instance data, or interrupt service without notice. - Software is provided as-is, without warranty. If you do not agree, do not use this merchant backend. Related ------- - Exchange (GOA): https://exchange.hacktivism.ch/terms - Bank intro: https://bank.hacktivism.ch/intro/ - Merchant intro: https://taler.hacktivism.ch/intro/ ' printf '%s\n' "$BODY_TXT" >"$LANG_DIR/${ETAG}.txt" printf '%s\n' "$BODY_MD" >"$LANG_DIR/${ETAG}.md" # HTML (browser-friendly; style close to exchange short terms) cat >"$LANG_DIR/${ETAG}.html" <
This is a self-hosted GNU Taler merchant backend at
taler.hacktivism.ch (hacktivism.ch).
No formal terms of service from Taler Operations AG (or any other third-party portal operator) apply to this instance. This short notice is the site policy for using the backend.
This backend is configured for two currencies at once:
If you do not agree, do not use this merchant backend.
Processing under Swiss FADP (revDSG). What data is retained (instances, orders, deposits, logs, …) is listed on /privacy.
HTML # Optional PDF so Accept: */* / wallets preferring PDF still get content PDF="$LANG_DIR/${ETAG}.pdf" if command -v pandoc >/dev/null 2>&1; then if pandoc -f markdown -t pdf -o "$PDF" "$LANG_DIR/${ETAG}.md" 2>/dev/null; then echo "pdf via pandoc: $PDF" elif command -v wkhtmltopdf >/dev/null 2>&1; then wkhtmltopdf "$LANG_DIR/${ETAG}.html" "$PDF" 2>/dev/null && echo "pdf via wkhtmltopdf" || true fi elif command -v wkhtmltopdf >/dev/null 2>&1; then wkhtmltopdf "$LANG_DIR/${ETAG}.html" "$PDF" 2>/dev/null && echo "pdf via wkhtmltopdf" || true fi # If no PDF toolchain: leave absent — httpd will serve md/html/txt by Accept chmod -R a+rX "$TERMS_DIR" if id taler-merchant-httpd >/dev/null 2>&1; then chown -R taler-merchant-httpd: "$TERMS_DIR" 2>/dev/null \ || chown -R taler-merchant-httpd:www-data "$TERMS_DIR" 2>/dev/null \ || true fi echo "Installed under $LANG_DIR:" ls -la "$LANG_DIR"/${ETAG}.* 2>/dev/null || ls -la "$LANG_DIR" echo echo "Config should set:" echo " [merchant]" echo " TERMS_ETAG = ${ETAG}" echo " TERMS_DIR = \${TALER_DATA_HOME}terms/" echo "Then restart taler-merchant-httpd."