Minipaint, le logiciel de dessin auto-hébergé

Texte alternatif Minipaint est un logiciel classique de dessin / retouche. Sa particularité c’est de pouvoir l’auto-héberger dans un espace personnel en ligne. L’intérêt est évident, si vous avez des habitudes de travail avec MiniPaint, il vous suffit d’une connexion internet pour pouvoir l’utiliser n’importe où. Ici on retrouve les fonctionnalités classiques des logiciels de retouche auxquelles vont s’ajouter des possibilités supplémentaires de dessin. Du fait d’être en ligne, Minipaint n’est pas dépendant du système d’exploitation et fonctionnera aussi bien sur Linux que sur Windows ou MAC.

Installation Node.js/debian 9

Texte alternatif debian stretch

Installation de Node.js v10.x sur debian 9 (Node source et distributions)

# Using Debian, as root
sudo -s
curl -sL https://deb.nodesource.com/setup_6.x | bash -
apt-get install -y nodejs

Ce projet utilise webpack et npm. Npm permet d’installer et de mettre à jour toutes les bibliothèques avec seulement une simple commande npm update. Webpack permet de regrouper de nombreux js différents, fichiers css en 1 bundle.js et d’améliorer considérablement le temps de chargement des pages.

Le gestionnaire de paquets npm aide à gérer les dépendances.Mettez-le à jour vers la dernière version en utilisant (en mode root)

sudo npm install npm@latest -g

Les versions

node -v
    v6.14.4
npm -v
    6.4.1

Webpack, assurez-vous d’avoir au moins la version 6 npm

Instructions de construction

sudo mkdir /npm
sudo chown $USER.users -R /npm
cd /npm
git clone https://github.com/viliusle/miniPaint.git
cd miniPaint

Installer toutes les dépendances du fichier package.json dans le dossier node_module.

npm update
npm WARN miniPaint@4.1.0 scripts['server'] should probably be scripts['start'].
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ gif.js.optimized@1.0.1
+ file-saver@1.3.8
+ blueimp-canvas-to-blob@3.14.0
+ jquery@3.3.1
+ alertifyjs@1.11.1
+ exif-js@2.3.0
+ babel-polyfill@6.26.0
+ hermite-resize@2.2.4
added 874 packages from 596 contributors and audited 8838 packages in 47.855s
found 0 vulnerabilities
  • Il y a 2 façons d’éditer les fichiers:
    • Exécuter npm run server - il créera un serveur local simple (webpack-dev-server) avec rechargement en direct. Exécuter la commande, éditer les fichiers et déboguer à l’aide de l’URL http://localhost:8080/
      Méthode recommandée
    • Modifier les fichiers et exécuter la commande npm run dev pour générer/mettre à jour dist/bundle.js.

Pour générer du code minifié pour la production, exécutez npm run build. Le code est construit à l’aide de webpack.

Commandes utiles

  • npm update - il installera toutes les bibliothèques requises à partir du fichier package.json dans le dossier node_module.
  • npm run - liste toutes les commandes possibles de npm run. (AKA aide)
  • npm run server - crée le serveur http://localhost:8080/ pour un développement facile (aussi rechargement en direct).
  • npm run dev - crée ou met à jour le fichier dist/bundle.js, de sorte que les changements seront visibles.
  • npm run build - construit pour la production

paint.cinay.pw (serveur nginx)

nginx

Fichier de configuration du serveur nginx /etc/nginx/conf.d/paint.cinay.pw.conf

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name paint.cinay.pw;


    include ssl_params;
    # include header_params;
    # Content-Security-Policy map.cinay.pw
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
	location / {
	      proxy_pass   http://localhost:8081;
	}

}

Service minipaint/Systemd

systemd

Pour lancer le serveur Jekyll au démarrage , créer un bash sous /srv

nano /npm/miniPaint/start_minipaint.sh
#!/bin/sh
cd /npm/miniPaint
/usr/bin/npm run server

Droits sur le bash

sudo chown $USER. /npm/miniPaint/start_minipaint.sh
chmod +x /npm/miniPaint/start_minipaint.sh

Pour lancer le serveur Jekyll au démarrage, utilisation d’un service systemd

ATTENTION! , remplacer utilisateur par votre nom d’utilisateur (echo $USER)

sudo nano /etc/systemd/system/minipaint.service

Contenu du fichier

[Unit]
Description=minipaint npm service
After=network.target

[Service]
Type=simple
User=adxo
ExecStart=/bin/sh /npm/miniPaint/start_minipaint.sh 
Restart=on-abort


[Install]
WantedBy=multi-user.target

Lancer le service minipaint :

sudo systemctl daemon-reload
sudo systemctl start minipaint
#Vérifier:
sudo systemctl status minipaint

Vérifier l’accès au site static https://paint.cinay.pw

Valider le lancement du service minipaint au démarrage

sudo systemctl enable minipaint