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#