github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/debian/cozy-stack.postinst (about)

     1  #!/bin/sh
     2  set -e
     3  . /usr/share/debconf/confmodule
     4  
     5  case $1 in
     6  configure)
     7  	db_get cozy-stack/couchdb/address && COUCH_ADDRESS="${RET}"
     8  	db_get cozy-stack/couchdb/cozy/user && COUCH_USER="${RET}"
     9  	db_get cozy-stack/couchdb/cozy/password && COUCH_PASS="${RET}"
    10  	db_get cozy-stack/address && ADDRESS="${RET}"
    11  	db_get cozy-stack/port && PORT="${RET}"
    12  	db_get cozy-stack/admin/address && ADMIN_ADDRESS="${RET}"
    13  	db_get cozy-stack/admin/port && ADMIN_PORT="${RET}"
    14  	COUCH_URL="http://${COUCH_USER}:${COUCH_PASS}@${COUCH_ADDRESS}/"
    15  
    16  	if [ -z "$2" ]; then
    17  		getent group cozy >/dev/null 2>&1 || \
    18  			addgroup --quiet --system cozy
    19  		getent passwd cozy-stack >/dev/null 2>&1 || \
    20  			adduser --quiet --system \
    21  			--home /var/lib/cozy --no-create-home \
    22  			--shell /usr/sbin/nologin --ingroup cozy cozy-stack
    23  
    24  		[ -d /var/log/cozy ] || \
    25  			install -o root -g adm -m u=rwX,g=rwX,o= -d /var/log/cozy
    26  
    27  		db_get cozy-stack/couchdb/nodename && COUCH_NODE="${RET}"
    28  		db_get cozy-stack/couchdb/admin/user && COUCH_ADMIN_USER="${RET}"
    29  		db_get cozy-stack/couchdb/admin/password && COUCH_ADMIN_PASS="${RET}"
    30  		ENCODED_COUCH_ADMIN_USER=$(echo "${COUCH_ADMIN_USER}" | sed -e 's/:/%3A/g')
    31  		curl -fsX PUT -u "${ENCODED_COUCH_ADMIN_USER}:${COUCH_ADMIN_PASS}" "${COUCH_ADDRESS}/_node/${COUCH_NODE}/_config/admins/${COUCH_USER}" -d "\"${COUCH_PASS}\"" >/dev/null || \
    32  		(
    33  			echo "=====================" >&2
    34  			echo "Unable to create cozy user in couchdb" >&2
    35  			echo "Check that you provided the correct couchdb admin user, password and address" >&2
    36  			echo "You can try again by purging and reinstalling the cozy-stack package" >&2
    37  			echo "apt-get purge cozy-stack; apt-get install cozy-stack" >&2
    38  			echo "=====================" >&2
    39  		)
    40  
    41  		if [ ! -f /etc/cozy/cozy-admin-passphrase ]; then
    42  			db_get cozy-stack/cozy/password && COZY_PASS="${RET}"
    43  			COZY_ADMIN_PASSPHRASE="${COZY_PASS}" cozy-stack -c /dev/null config passwd /etc/cozy/cozy-admin-passphrase
    44  			printf "%s" "${COZY_PASS}" > /etc/cozy/.cozy-admin-passphrase
    45  			chmod u=rw,og= /etc/cozy/.cozy-admin-passphrase
    46  		fi
    47  
    48  		chown cozy-stack: /etc/cozy/cozy.yml
    49  		chown cozy-stack: /etc/cozy/cozy-admin-passphrase
    50  		chown -R cozy-stack: /usr/share/cozy
    51  
    52  		install -o cozy-stack -g cozy -m u=rwX,g=rwX,o= -d /var/lib/cozy
    53  
    54  		[ -f /usr/sbin/rsyslogd ] && systemctl restart rsyslog
    55  		if systemctl -q is-active nginx; then
    56  		  systemctl reload nginx
    57  		fi
    58  	else
    59  		if [ ! -f /etc/cozy/.cozy-admin-passphrase ]; then
    60  			db_input critical cozy-stack/admin/passphrase
    61  			db_go
    62  			db_get cozy-stack/admin/passphrase && COZY_PASS="${RET}"
    63  			echo "${COZY_PASS}" > /etc/cozy/.cozy-admin-passphrase
    64  			chmod u=rw,og= /etc/cozy/.cozy-admin-passphrase
    65  		fi
    66  
    67  		if dpkg --compare-versions "${2}" lt 2:1.2.0-1; then
    68  			/usr/share/cozy/uninstall-onboarding.sh
    69  		fi
    70  	fi
    71  
    72  	if [ ! -f /etc/cozy/cozy.yml.local ]; then
    73  		cat > /etc/cozy/cozy.yml.local <<-EOF
    74  			host: ${ADDRESS}
    75  			port: ${PORT}
    76  
    77  			admin:
    78  			  host: ${ADMIN_ADDRESS}
    79  			  port: ${ADMIN_PORT}
    80  
    81  			couchdb:
    82  			  url: ${COUCH_URL}
    83  		EOF
    84  		chown cozy-stack: /etc/cozy/cozy.yml.local
    85  		chmod u=rw,og= /etc/cozy/cozy.yml.local
    86  	fi
    87  
    88  	if [ ! -f /etc/cozy/vault.enc ] || [ ! -f /etc/cozy/vault.dec ]; then
    89  		cozy-stack -c /dev/null config gen-keys /etc/cozy/vault
    90  		chown cozy-stack: /etc/cozy/vault.enc /etc/cozy/vault.dec
    91  		chmod u=rw,og= /etc/cozy/vault.enc /etc/cozy/vault.dec
    92  	fi
    93  
    94  	# Ensure imagemagick policy allow thumbnail generation from PDF
    95  	if [ -f /etc/ImageMagick-6/policy.xml ]; then
    96  	    sed -ie 's,^  \(<policy domain="coder" rights="none" pattern="PDF" />\)$,  <!-- \1 -->,g' /etc/ImageMagick-6/policy.xml
    97  	fi
    98  
    99  	systemctl restart cozy-stack
   100  ;;
   101  esac
   102  
   103  #DEBHELPER#