Dans un article précédent, j’avais expliqué comment utiliser Gogs comme un service Windows. Celui-ci sera similaire, à l’exception que ce sera l’application GitBucket.
GitBucket est une solution Git auto-hébergée codée en Scala. Ce projet à code source ouvert hébergé sur GitHub a beaucoup de qualité, entre autres, sa compatibilité avec l’API GitHub et sa facilité d’installation. Maintenant, il est temps de parler de l’un de ses défauts: il ne peut pas être installé nativement comme service Windows.
Tout comme avec Gogs, c’est l’application NSSM qui sera utilisée. Il faut s’assurer qu’elle a été installée dans votre %PATH%. Par exemple, le fichier nssm.exe peut être copié dans le dossier C:\WINDOWS\system32.
Ensuite, on ouvre une fenêtre de terminal et on tape toutes ces commandes:
set warpath=C:\GitBucket
set datapath=C:\GitBucket\data
nssm install gitbucket "%PROGRAMFILES%\Java\jre1.8.0_152\bin\java.exe"
nssm set gitbucket AppDirectory "%warpath%"
nssm set gitbucket AppParameters "-jar gitbucket.war --gitbucket.home=\"%datapath%\" --port=8080"
nssm set gitbucket DisplayName "GitBucket Service"
nssm set gitbucket Description "A Git platform with easy installation, high extensibility & GitHub API compatibility."
nssm set gitbucket Start SERVICE_DELAYED_AUTO_START
nssm set gitbucket AppStdout "%datapath%\nssm.log"
nssm set gitbucket AppStderr "%datapath%\nssm.log"
nssm set gitbucket AppRotateFiles 1
nssm set gitbucket AppRotateBytes 1000000
nssm start gitbucket
Il est important de changer la ligne 1 pour y inscrire le chemin vers le fichier gitbucket.war. La ligne 2 doit pointer vers le dossier où les données seront enregistrées. GitBucket nécessite d’être démarré par Java.exe, donc la ligne 3 doit être le chemin vers ce fichier. La ligne 5 spécifie le port que vous voulez utiliser. Changez-le pour utiliser un port disponible. La dernière ligne va démarrer le service, donc ouvrez un navigateur web et testez que tout fonctionne.
Si vous désirez supprimer le service, c’est cette commande qu’il faut utiliser:
nssm remove gitbucket
Pour éditer un service déjà installé avec l’interface, on utilise cette commande:
nssm edit gitbucket