Skip to content
Snippets Groups Projects
tchncs.sh 1.67 KiB
Newer Older
#!/bin/sh
set -e

#
# this is a renew_hook script. it reloads nginx, then
# copies certfiles to the containers for prosody and mumble 
# it then lets import prosody the updated cert and restarts mumble
#
# == Warnings ==
# * be sure not to have a global post-hook for certbot as it will replace
#   the renew_hook configline
# * don't use the renewal-hooks/deploy or similar dir as it will be executed globally. 
#

# container name
container_prosody=
# direct path to container fs (optional, see last command)
container_prosody_path=
# container name
container_mumble=
# well... (this script is intended for a single cert)
certname=$RENEWED_LINEAGE

echo ">>> reloading nginx"
systemctl reload nginx

echo ">>> create tmp in $container_prosody"
lxc exec $container_prosody -- mkdir -p /tmp/$certname

echo ">>> pushing to $container_prosody"
lxc file push $RENEWED_LINEAGE/privkey.pem $container_prosody/tmp/$certname/privkey.pem
lxc file push $RENEWED_LINEAGE/fullchain.pem $container_prosody/tmp/$certname/fullchain.pem
echo ">>> pushing $container_mumble"
lxc file push $RENEWED_LINEAGE/privkey.pem $container_mumble/etc/letsencrypt/live/$certname/privkey.pem
echo ">>> pushed key, moving on"
lxc file push $RENEWED_LINEAGE/fullchain.pem $container_mumble/etc/letsencrypt/live/$certname/fullchain.pem
echo ">>> pushed cert"

echo ">>> restart mumble"
lxc exec $container_mumble -- systemctl restart mumble-server
echo ">>> prosody import"
lxc exec $container_prosody -- prosodyctl --root cert import $certname /tmp/

echo ">>> all done, removing tmpdir"
# should not be needed, lxc command would work here too (see line 24)
#rm -r /path/to/storage-pools/lxc/containers/$container_prosody/rootfs/tmp/$certname