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
diff --git a/tools/dnc/systemd/dnc.service.in b/tools/dnc/systemd/dnc.service.in
index 3f0568e..7fb6091 100644
--- a/tools/dnc/systemd/dnc.service.in
+++ b/tools/dnc/systemd/dnc.service.in
@@ -8,7 +8,7 @@
[Service]
Type=exec
Environment="DHTNET_CACHE_DIR=/var/run/dhtnet"
-ExecStart=@bindir@/dnc -l -d @sysconfdir@/dhtnet/dnc.yaml -c @sysconfdir@/dhtnet/id/id-server.crt -p @sysconfdir@/dhtnet/id/id-server.pem
+ExecStart=@bindir@/dnc -l -d @sysconfdir@/dhtnet/dnc.yaml
Restart=on-failure
ProtectSystem=strict
ProtectKernelTunables=yes