diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-01-01 20:43:59 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-01-01 20:43:59 +0100 |
commit | 90d4bc9519507c64ad5c0a604140fcf00a9702ee (patch) | |
tree | 4442b78765bf974190b84476031b9a562c86c078 /debian/taler-exchange.postinst | |
parent | cd9220b187d97a52a8cc3179dc8d3b06d25f942a (diff) |
work on Debian package: extend pre-configuration, add reverse proxy setup logic, add database setup logic (untested)
Diffstat (limited to 'debian/taler-exchange.postinst')
-rw-r--r-- | debian/taler-exchange.postinst | 86 |
1 files changed, 70 insertions, 16 deletions
diff --git a/debian/taler-exchange.postinst b/debian/taler-exchange.postinst index cfaf04a45..8256e886a 100644 --- a/debian/taler-exchange.postinst +++ b/debian/taler-exchange.postinst @@ -2,6 +2,27 @@ set -e + +apache_install() { + mkdir -p /etc/apache2/conf-available + if [ ! -f /etc/apache2/conf-available/taler-exchange.conf ]; + then + cp /etc/taler-exchange/apache.conf /etc/apache2/conf-available/taler-exchange.conf + fi + a2enmod proxy + a2enmod proxy_http + a2enmod headers +} + + +nginx_install() { + mkdir -p /etc/nginx/conf-available + if [ ! -f /etc/apache2/conf-available/taler-exchange.conf ]; + then + cp /etc/taler-exchange/nginx.conf /etc/nginx/conf-available/taler-exchange.conf + fi +} + . /usr/share/debconf/confmodule case "${1}" in @@ -26,16 +47,13 @@ case "${1}" in db_get taler-exchange/groupname _GROUPNAME="${RET:-taler-private}" - db_get taler-exchange/autostart - _AUTOSTART="${RET}" # boolean + db_get taler-exchange/dbgroupname + _DBGROUPNAME="${RET:-taler-exchange-db}" db_stop - CONFIG_FILE="/etc/default/taler" - - # Read default values + CONFIG_FILE="/etc/default/taler-exchange" TALER_HOME="/var/lib/taler-exchange" - eval $(grep TALER_HOME /etc/taler.conf | tr -d '[:blank:]') # Creating taler group if needed if ! getent group ${_GROUPNAME} > /dev/null @@ -50,6 +68,7 @@ case "${1}" in then echo -n "Creating new Taler user ${_EUSERNAME}:" adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/httpd ${_EUSERNAME} + adduser ${_EUSERNAME} ${_DBGROUPNAME} echo " done." fi if ! getent passwd ${_RSECUSERNAME} > /dev/null @@ -68,12 +87,14 @@ case "${1}" in then echo -n "Creating new Taler user ${_WIREUSERNAME}:" adduser --quiet --system --home ${TALER_HOME}/wire ${_WIREUSERNAME} + adduser ${_WIREUSERNAME} ${_DBGROUPNAME} echo " done." fi if ! getent passwd ${_AGGRUSERNAME} > /dev/null then echo -n "Creating new Taler user ${_AGGRUSERNAME}:" adduser --quiet --system --home ${TALER_HOME}/aggregator ${_AGGRUSERNAME} + adduser ${_AGGRUSERNAME} ${_DBGROUPNAME} echo " done." fi @@ -92,7 +113,6 @@ TALER_ESECUSER=${_ESECUSERNAME} TALER_WIREUSER=${_WIREUSERNAME} TALER_AGGRUSER=${_AGGRUSERNAME} TALER_GROUP=${_GROUPNAME} -TALER_AUTOSTART="${_AUTOSTART}" EOF cat > "/etc/systemd/system/taler-exchange-httpd.service" <<EOF @@ -103,11 +123,11 @@ Wants=taler-exchange-wirewatch taler-exchange-aggregator taler-exchange-transfer After=postgres.service network.target [Service] -EnvironmentFile=/etc/default/taler +EnvironmentFile=/etc/default/taler-exchange User=${_EUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler.conf +ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler-exchange.conf [Install] WantedBy=multi-user.target @@ -118,11 +138,11 @@ cat > "/etc/systemd/system/taler-exchange-helper-rsa.service" <<EOF Description=GNU Taler payment system exchange RSA security module [Service] -EnvironmentFile=/etc/default/taler +EnvironmentFile=/etc/default/taler-exchange User=${_RSECUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-helper-crypto-rsa -c /etc/taler.conf +ExecStart=/usr/bin/taler-helper-crypto-rsa -c /etc/taler-exchange.conf [Install] WantedBy=multi-user.target @@ -132,11 +152,11 @@ cat > "/etc/systemd/system/taler-exchange-helper-eddsa.service" <<EOF Description=GNU Taler payment system exchange EdDSA security module [Service] -EnvironmentFile=/etc/default/taler +EnvironmentFile=/etc/default/taler-exchange User=${_ESECUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-helper-crypto-eddsa -c /etc/taler.conf +ExecStart=/usr/bin/taler-helper-crypto-eddsa -c /etc/taler-exchange.conf EOF cat > "/etc/systemd/system/taler-exchange-wirewatch.service" <<EOF [Unit] @@ -144,7 +164,7 @@ Description=GNU Taler payment system exchange wirewatch service After=network.target [Service] -EnvironmentFile=/etc/default/taler +EnvironmentFile=/etc/default/taler-exchange User=${_WIREUSERNAME} Type=simple Restart=on-failure @@ -156,7 +176,7 @@ Description=GNU Taler payment system exchange transfer service After=network.target [Service] -EnvironmentFile=/etc/default/taler +EnvironmentFile=/etc/default/taler-exchange User=${_WIREUSERNAME} Type=simple Restart=on-failure @@ -167,7 +187,7 @@ cat > "/etc/systemd/system/taler-exchange-aggregator.service" <<EOF Description=GNU Taler payment system exchange aggregator service [Service] -EnvironmentFile=/etc/default/taler +EnvironmentFile=/etc/default/taler-exchange User=${_AGGRUSERNAME} Type=simple Restart=on-failure @@ -184,6 +204,40 @@ EOF chmod 770 /var/lib/taler-exchange/tmp chmod +s /var/lib/taler-exchange/tmp + # Setup postgres database (needs dbconfig-pgsql package) + if [ -f /usr/share/dbconfig-common/dpkg/postinst.pgsql ]; then + . /usr/share/dbconfig-common/dpkg/postinst.pgsql + # dbc_dbfile_* should not apply for Postgres, but better be safe... + dbc_dbfile_owner="${_EUSERNAME}:${_DBGROUPNAME}" + dbc_dbfile_perms="0660" + dbc_pgsql_createdb_encoding="UTF8" + dbc_go taler-exchange "$@" + fi + # get database settings from dbconfig-common + if [ -f /etc/dbconfig-common/taler-exchange.conf ]; then + . /etc/dbconfig-common/taler-exchange.conf + case "$dbc_dbtype" in + pgsql) + taler-config -c /etc/taler-exchange-db.conf \ + -s "exchangedb-postgres" \ + -o "CONFIG" \ + -V "postgres://$dbc_dbuser:$dbc_dbpass@$dbc_dbserver/$dbc_dbname" + taler-config -c /etc/taler-exchange-db.conf \ + -s "exchange" \ + -o "DB" \ + -V "postgres" + chown ${_EUSERNAME}:${_DBGROUPNAME} /etc/taler-exchange-db.conf + chmod 440 /etc/taler-exchange-db.conf + ;; + "") + ;; + *) + echo "Unsupported database type $dbc_type." + exit 1 + ;; + esac + fi + # Cleaning rm -f "${CONFIG_NEW}" echo "All done." |