Duniter et systemd pour interface web via vpn

Bonjour,
N’ayant pas couramment un accès physique au serveur sur lequel est installé mon nœud, j’ai besoin pour contrôler ce nœud d’avoir accès à l’interface web de Duniter depuis un vpn roadwarrior.
Le nœud tourne sur un serveur Debian géré par systemd derrière un pare-feu pfSense avec les ports ad-hoc ouverts. Mon nœud apparaît bien sur Césium en lancement manuel. Afin de configurer un lancement au démarrage de la machine, je souhaite passer par systemd.
J’ai suivi les indications du wiki sur le sujet. Juste que je pense être obligé de faire des scripts shell pour configurer l’interface web sur une ip locale car les arguments rajoutés dans duniter.service ne conviennent pas.
duniter.service :

       [Unit]
    Description=Duniter node
    After=network.target

    [Service]
    # Should be set to web in order to start with web GUI
    Environment="DUNITER_WEB="
    Environment="DUNITER_HOME=/var/lib/duniter/.config/duniter"
    Environment="DUNITER_DATA=duniter_default"
    # If using a key file, DUNITER_OPTS can be defined like so:
    #Environment="DUNITER_OPTS=--keyfile /etc/duniter/keys.yml"
    Environment="DUNITER_OPTS="
    Group=duniter
    User=duniter
    Type=forking
    ExecStop=/usr/bin/duniter stop --home ${DUNITER_HOME} --mdb ${DUNITER_DATA}
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target

10-web.conf :

[Service]
# Should be set to web in order to start with web GUI
Environment="DUNITER_WEB=web"
Environment="DUNITER_HOME=/var/lib/duniter/.config/duniter"
Environment="DUNITER_DATA=duniter_default"
ExecStart=/var/lib/duniter/.config/duniter/duniter_default/duniter_webstart.sh
ExecReload=/var/lib/duniter/.config/duniter/duniter_default/duniter_webrestart.sh

duniter_webstart.sh :

#!/bin/bash

DUNITER_HOME=/var/lib/duniter/.config/duniter
DUNITER_DATA=duniter_default

 /usr/bin/duniter webstart --webmhost 192.168.XXX.XXX --webmport XXXX --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS

duniter_webrestart.sh :

#!/bin/bash

DUNITER_HOME=/var/lib/duniter/.config/duniter
DUNITER_DATA=duniter_default

/usr/bin/duniter webrestart --webmhost 192.168.XXX.XXX --webmport XXXX --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS

Le problème est que j’ai dû modifier duniter.service car systemd n’accepte pas plusieurs arguments ExecStart qui se trouvaient en double dans duniter.service et 10_web.conf. L’erreur sur systemd est : il n’est pas possible d’avoir plus d’un argument ExecStart avec le type Forking. Seul le type Oneshot autorise plusieurs arguments. (de mémoire). D’où les deux scripts bash. Mais je pense que lors de la prochaine version duniter, duniter.service sera écrasé.
Y a t-il un meilleur moyen sans passer par les scripts bash et la modif de duniter.service ?

Je vais sans doute dire une connerie, mais pourquoi ne pas passer directement par terminal en ssh ?

1 Like

En lignes de commandes ? Oui, depuis un pc c’est encore assez convivial. Mais sur un smartphone, ça ne l’est plus du tout. Je n’ai pas trouvé d’applis ssh avec un clavier pratique à utiliser. Je dirais que c’est même sacrément laborieux de taper les commandes depuis un smartphone. Du coup, l’interface web et ses logs permetent quand même de voir rapidement où ça pêche quand mon nœud semble être hs sur césium.
Dois-je en conclure qu’il n’y a pas de possibilités de se passer des scripts bash pour lancer l’interface web avec les options webmhost et webmport depuis systemd ?