pigallery2

Tentative d’installation de pigallery2 sur mon vieux raspberry B

On oublie tout de suite la version docker qui ne fonctionne pas et qui prend trop de ressources…

Va pour la version nodejs

Oubliez la version proposé par debian qui est obsolète et oubliez la commande qui va bien avec un curl http://nodejs | bash qui ne fonctionne pas

 $ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

## Installing the NodeSource Node.js 20.x repo...


## You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from nodejs.org for Node.js 4 and later.

Le site officiel ne propose plus armv6… Donc on va aller sur un site non officiel, ça commence déjà bien.

On télécharge ⇒ https://unofficial-builds.nodejs.org/download/release/v18.16.0/node-v18.16.0-linux-armv6l.tar.gz

Puis on décompresse et on modifie le .profile

~ $ tar zxvf node-v18.16.0-linux-armv6l.tar.gz
~ $ vi .profile

# on ajoute à la fin
export PATH=~/node-v18.16.0-linux-armv6l/bin:$PATH

Avant de continuer, on va augmenter le fichier de swap

$ sudo swapoff /var/swap
$ sudo dd if=/dev/zero of=/var/swap bs=1M count=1024

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 72.7748 s, 14.8 MB/s

$ sudo mkswap /var/swap
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=8ff4f538-9070-4720-80b1-2e110b1c7218

$ sudo swapon /var/swap

On télécharge l’appli, on dézippe et on lance l’install

cd ~
wget https://github.com/bpatrik/pigallery2/releases/download/1.9.5/pigallery2-release.zip
unzip pigallery2-release.zip -d pigallery2
cd pigallery2
npm install

npm ERR! code 1
npm ERR! path /home/manu/pigallery2/node_modules/bcrypt
npm ERR! command failed

# pour pallier à l'erreur de bcrypt, va remplacer bcrypt par bcryptjs
# on cherche la version en cours

$ npm search bcryptjs
NAME                      | DESCRIPTION          | AUTHOR          | DATE       | VERSION  | KEYWORDS
bcryptjs                  | Optimized bcrypt in… | =dcode          | 2017-02-07 | 2.4.3    | bcrypt password auth authentication encryption crypt crypto

# on remplace dans le fichier package.json : bcrypt par bcryptjs et on met la bonne version
$ vi package.json

# on peut lancer l'install et prendre un bon café d'1 heure...
$ npm install

Modifier aussi le fichier /pigallery2/src/backend/model/PasswordHelper.js et remplacer bcrypt par bcryptjs

# Créer un répertoire **demo**
mkdir demo
 
 
$ npm start
 
> pigallery2@1.9.5 start
> node ./src/backend/index.js
 
12/05/2023, 21:13:44[INFO_][server] Running in DEBUG mode, set env variable NODE_ENV=production to disable
12/05/2023, 21:13:46[INFO_][server] running diagnostics...
12/05/2023, 21:13:47[WARN_][ConfigDiagnostics] [SQL error] Error: Could not locate the bindings file. Tried:
 → ~/pigallery2/node_modules/better-sqlite3/build/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/build/Debug/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/build/Release/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/out/Debug/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/Debug/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/out/Release/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/Release/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/build/default/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/compiled/18.16.0/linux/arm/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/addon-build/release/install-root/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/addon-build/debug/install-root/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/addon-build/default/install-root/better_sqlite3.node
 → ~/pigallery2/node_modules/better-sqlite3/lib/binding/node-v108-linux-arm/better_sqlite3.node
12/05/2023, 21:13:47[ERROR][ConfigDiagnostics] Error during initializing SQL DB, check DB connection and settings

Conclusion, Nodejs c’est de la merde.