install: add fallback where yaml creation failed
In some rare case, .deb installer fails to create /etc/dhtnet/dnc.yaml
config. In theses case, dnc service fail to start, so post-install
script now check if /etc/dhtnet/dnc.yaml exists and create it if not.
dnc.service now rely entirely on /etc/dhtnet/dnc.yaml for configuration,
removing hardcoded flags in service file.
Change-Id: Ia827dd92532a6b17584e15b1af34cc236980202e
diff --git a/extras/packaging/gnu-linux/debian/postinst b/extras/packaging/gnu-linux/debian/postinst
index de3afc0..629cb2b 100644
--- a/extras/packaging/gnu-linux/debian/postinst
+++ b/extras/packaging/gnu-linux/debian/postinst
@@ -9,8 +9,18 @@
echo "Generating server keys..."
dhtnet-crtmgr --setup -o /etc/dhtnet/
dhtnet-crtmgr -a -c /etc/dhtnet/id/id-server.crt -p /etc/dhtnet/id/id-server.pem
+ configure_yaml
disable_dnc_service
fi
+ echo "===================="
+ echo "dnc server installed and configured."
+ echo "To configure it, edit /etc/dhtnet/dnc.yaml"
+ echo "To enable and start server, run:"
+ echo " systemctl enable dnc.service"
+ echo " systemctl start dnc.service"
+ echo "To configure your dnc client, run:"
+ echo " dhtnet-crtmgr --interactive"
+ echo "===================="
}
# reload_dnc_service() {
@@ -26,4 +36,23 @@
systemctl disable dnc.service
}
+configure_yaml() {
+ if [ -f /etc/dhtnet/dnc.yaml ]; then
+ sed -i 's/^#certificate:.*$/certificate: \"\/etc\/dhtnet\/id\/id-server.crt\"/' /etc/dhtnet/dnc.yaml
+ sed -i 's/^#privateKey:.*$/privateKey: \"\/etc\/dhtnet\/id\/id-server.pem\"/' /etc/dhtnet/dnc.yaml
+ else
+ echo "bootstrap: \"bootstrap.jami.net\"" > /etc/dhtnet/dnc.yaml
+ echo "turn_host: \"turn.jami.net\"" > /etc/dhtnet/dnc.yaml
+ echo "turn_user: \"ring\"" > /etc/dhtnet/dnc.yaml
+ echo "turn_pass: \"ring\"" > /etc/dhtnet/dnc.yaml
+ echo "turn_realm: \"ring\"" > /etc/dhtnet/dnc.yaml
+ echo "port: 22" > /etc/dhtnet/dnc.yaml
+ echo "ip: \"127.0.0.1\"" > /etc/dhtnet/dnc.yaml
+ echo "certificate: \"/etc/dhtnet/id/id-server.crt\"" > /etc/dhtnet/dnc.yaml
+ echo "privateKey: \"/etc/dhtnet/id/id-server.pem\"" > /etc/dhtnet/dnc.yaml
+ echo "anonymous: false" > /etc/dhtnet/dnc.yaml
+ echo "verbose: false" > /etc/dhtnet/dnc.yaml
+ fi
+}
+
create_server_keys