Lancer automatiquement Duniter au démarrage

Merci, j’y jetterai un œil demain. Je suis en déplacement professionnel aujourd’hui et n’ai pas mon ordinateur sous la main.

Merci pour le script OpenRC par contre il y a une typo ligne 16 dans duniter.initd

remplacer
command_args="${command_args} \"--webmport ${DUNITER_WEB_PORT}\""
par
command_args="${command_args} --webmport \"${DUNITER_WEB_PORT}\""

en outre, je plug manuellement duniter-ui donc dans mon cas j’ai du ajouter le répertoire d’exécution pour pouvoir utiliser webstart
workdir="/opt/duniter"
start_stop_daemon_args="--chdir \"${workdir}\" --user \"${DUNITER_USER}\":\"${DUNITER_GROUP}\""

1 Like

Merci pour les infos, je vais faire la correction rapidement. Est-ce que la spécification de DUNITER_HOME ne suffit pas pour spécifier le répertoire de travail ?

Non car --home c’est un paramètre de Duniter pour l’emplacement de ses données (par défaut $HOME/.config/duniter), alors que --chdir c’est un paramètre de start-stop-daemon pour savoir où se placer pour exécuter le script (par défaut /) or en installation manuelle depuis les sources (dans mon cas /opt/duniter) il faut exécuter ./bin/duniter pour charger les plugins également.

2 Likes

D’accord. Je n’ai pas rencontré ce problème au niveau de l’ebuild, donc soit il m’a échappé, soit je l’ai compilé différemment de toi… Si tu as l’occasion de tester l’installation par emerge et me faire un retour, n’hésite pas (il n’y a pas encore le script OpenRC, par contre) !

Pour emerge je ne vais pas pouvoir t’aider avec Gentoo, mon serveur dédié est sous AlpineLinux qui utilise également OpenRC. J’ai simplement téléchargé/décompressé le .tar.gz, installé yarn puis ajouté sqlite3, pluggé duniter-ui et roulez jeunesse.

2 Likes

Oui effectivement, je suis tombé sur ce problème aussi suite au bug de la commande plug. Des correctifs sont présents dans ce commit mergé dans la branche 1.6, qui devrait donc fonctionner pour @sveyret.

1 Like

Merci pour ta contribution !

Je suis en train de tester ton script systemd sur Ubuntu 16.04 (en l’adaptant à ma config…).

J’ai ajouté la directive

WorkingDirectory=[chemin du dossier duniter]

sinon duniter ne trouve pas la commande “webstart”.

Mais il ne fonctionne pas :disappointed_relieved:

Quand duniter tente de lancer

#!/usr/bin/env node

j’ai le message

/usr/bin/env : "node": Aucun fichier ou dossier de ce type

Une idée ?

[edit]
Il faut mettre le chemin complet de la commande “node” devant les commandes duniter et le script fonctionne !

Sauf que le noeud lancé par systemd :

  • Voit son interface web complètement cassé (pas de binding angular, des variables comme {{ title }} apparaissent).
  • Aucune API réseau n’est publiée, ni WS2P , ni BMA… Seule l’accès à localhost:9220 pour l’interface.

C’est pas gagné…

Je suis aussi sur le salon de discussion XMPP pour deboguer plus vite si tu es dispo…

Bonjour,

Où se trouve le salon XMPP ? J’ai Pidgin, je devrais pouvoir m’y connecter…

As-tu bien la dernière version du script, celle que l’on trouve ici :

Parce que ce script appelle le script duniter qui se trouve normalement dans /usr/bin, donc si le service ne démarre pas, c’est peut-être que le script ne démarre pas, même à la main.
Sinon, le script est prévu pour être exécuté par l’utilisateur duniter:duniter, dans son répertoire principal /var/lib/duniter. Si tu n’as pas modifié cela, ça ne fonctionnera pas non plus (note que l’installation Ubuntu a été modifié pour préparer cela dans la prochaine version).

Le salon xmpp : https://duniter.org/fr/contact/

Oui, j’ai adapté le script à mon utilisateur, à l’endroit où j’ai compilé Duniter pour mon netbook 32bits.
Le script fonctionne, mais il manque quelquechose dans l’environnement d’exécution qui fait que Duniter ne retrouve pas ses petits.
Note aussi que Duniter se lance, mais ne crée pas de fichier de logs… Donc pas facile à déboguer !

[EDIT]
Problème résolu !

Voici le script de démarrage pour systemd pour une installation manuelle de Duniter à partir des sources. Nodejs est géré par NVM, ce qui nécessite de préciser le chemin où se trouve la commande node.

[Unit]
Description=Duniter g1-test node
After=network.target

[Service]
# Should be set to web in order to start with web GUI
Environment="DUNITER_WEB=web"
Environment="DUNITER_HOME=/home/vit/.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="

# NVM and NODEJS
Environment=NODE_VERSION=6
Environment=NODE_ENV=production
Environment=PATH=/home/vit/.nvm/versions/node/v6.11.4/bin

Group=vit
User=vit
Type=forking

# Duniter install path
WorkingDirectory=/home/vit/Logiciels/duniter-g1-test

# Commands
ExecStart=/home/vit/Logiciels/duniter-g1-test/bin/duniter ${DUNITER_WEB}start --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS
ExecReload=/home/vit/Logiciels/duniter-g1-test/bin/duniter ${DUNITER_WEB}restart --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS
ExecStop=/home/vit/Logiciels/duniter-g1-test/bin/duniter stop --home ${DUNITER_HOME} --mdb ${DUNITER_DATA}
Restart=on-failure

[Install]
WantedBy=multi-user.target

J’ajouterai un modèle de script dans le wiki du site duniter.org.

Un message a été intégré dans un sujet existant : Build des releases duniter dans Docker

@sveyret afin de séparer les sujet j’ai migrer les messages relatif au build des releases dans un nouveau thread :wink:

1 Like

@sveyret Il ne reste plus que cette MR a traiter avant de pouvoir livrer la 1.6 je vais donc tester ça ce soir :slight_smile:

@vit je crois que tu a déjà pas mal testé, tu peut nous faire un point ? merci

EDIT : @sveyret je me suis permis de remerger la branche 1.6 dans StartUp qu’on puisse tester avec tout les derniers changements :wink:

J’ai déjà ajouté un article dans le wiki. S’il a besoin de précisions, dites le moi…

https://duniter.org/fr/wiki/duniter/lancement-au-boot/

1 Like

@sveyret bon ça ne marche pas chez moi ou alors je n’est pas compris ce qu’il faut faire, voici ce que j’ai fait :

J’ai créer une release de test sur ta branche StartUp : https://git.duniter.org/nodes/typescript/duniter/-/jobs/1450

j’ai installer le paquet deb version server, j’ai lancer duniter avec le profil par défaut, puis j’ai redémarré le pc, et duniter ne s’est pas relancé au demarrage, j’en conclu que soit ce n’est pas automatique soit ça ne fonctionne pas ?

Bah ! C’est moche ! :wink:

Je vais regarder ce qu’il y a à modifier (adapter) d’ici demain matin (si toutefois il y a quelque chose à faire).

Non, par défaut, le démarrage automatique n’est pas activé. Il faut que tu le fasses à la main. Si je ne me trompe pas, sur systemd, la commande est :

systemctl enable duniter.service

Et bien moi, je me suis permis de supprimer ce merge, réorganiser les commits et re-baser sur la nouvelle branche 1.6. Le résultat est presque le même, mais l’historique est beaucoup plus clair, non ? :wink:

Certaines modifications avaient été perdues lors du merge et donc il est possible que le service n’ait pas été installé chez toi. Avec les modifications que j’ai apportées maintenant, ça devrait être bon. J’ai vérifié que tout fonctionnait bien jusqu’à la livraison, que les fichiers étaient bien présents dans les binaires livrés, mais je n’ai pas encore fait de test d’installation, et ne pourrai probablement pas en faire avant le weekend.

3 Likes

Faut vraiment que j’apprenne a faire ça :sweat_smile: dsl j’avais besoin de tester ta branche hier soir avec les dernières évolutions alors j’ai fait comme j’ai l’habitude de faire, je comprend que ta méthode est mieux.

Merci je vais tester ça :slight_smile:

Je vous ferai une petite formation avec grand plaisir, mais comme il est peu probable que l’on se rencontre, si ça en intéresse certains, j’essaierai de faire une petite vidéo pour expliquer tout ça. Enfin bon, si j’ai du temps… :relieved:

3 Likes

Félicitations @sveyret ça fonctionne nickel chez moi, duniter se lance automatiquement après redémarrage :slight_smile:

faudra qu’on pense a rajouter dans le wiki comment activer cette feature :wink:

de mon coté c’est bon pour merger.

1 Like