Partage de photos sur le Raspberry Pi avec Lychee

Si vous voulez stocker vos photos à la maison et pouvoir les partager avec la famille ou les amis, alors je vous conseille le superbe Lychee.

Lychee

Découvert grâce au forum français dédié au Raspberry, Lychee est un gestionnaire de photos léger et rapide, facilement insatiable sur notre Raspberry préféré (Vous pouvez l’essayer sur cette page). Il faut une base de données et un serveur web.

  1. Mettre à jour le système
     apt-get update && apt-get upgrade -y
  2. Installer le support PHP
    apt-get install php5-fpm php5-gd libgd2-xpm libpcrecpp0 libxpm4
  3. Installer Nginx
    apt-get install nginx
  4. Créer le répertoire /var/www
    mkdir /var/www
    
    chown -R www-data:www-data /var/www
  5. Installer MySQL et le support avec PHP
    apt-get install -y php5-mysql mysql-server
  6. Modifier le fichier /etc/php5/fpm/php.ini en y ajoutant à la fin :
    extension = php_mbstring.dll
    extension = php_exif.dll
    extension = php_gd2.dll
    max_execution_time = 200
    post_max_size = 200M
    upload_max_size = 200M
    upload_max_filesize = 20M
    max_file_uploads = 100
  7. Redémarrer le service PHP
    service php5-fpm restart
  8. Installer Git
     apt-get install -y git
  9. Extraire la dernière version de Lychee
    cd /var/www
    git clone https://github.com/electerious/Lychee.git
    mv Lychee/* .
    rm -rf Lychee/
    chown -R www-data:www-data /var/www
  10. Configurer Nginx
    rm /etc/nginx/sites-available/default

    Puis créer le fichier /etc/nginx/sites-available/lychee avec le contenu suivant

    server {
    root /var/www;
    index index.php index.html index.htm;
    location ~ .php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    }
  11. Activer le site
    ln -s /etc/nginx/sites-available/lychee /etc/nginx/sites-enabled/lychee
  12. Rendez-vous maintenant avec navigateur à l’adresse de votre Raspberry
    1Vous y saisissez les informations nécessaires pour atteindre votre base MySQL
  13. Créer un compte pour accéder à vos photos
    2
  14. Vous arrivez sur la page principale
    4
  15. Pour envoyer des images, vous créer un album puis vous cliquez sur le signe plus en haut à droite
    3Et hop le tour est joué !
    5

Vous avez maintenant vos photos dans votre album !

Vous pouvez partager vos photos via un album Public, partager un album complet, supprimer une photo, la déplacer, etc. Vous pouvez même éditer les données EXIF :

6

Et enfin il existe un plugin pour synchroniser automatiquement un répertoire dans Lychee. Vous pouvez installer Grive pour synchroniser ce même répertoire avec Dropbox. Facile du coup de prendre une photo avec votre Smartphone, l’envoyer sur Dropbox et de la récupérer ensuite automatiquement dans Lychee.

Amusez-vous bien avec votre nouveau gestionnaire de photos !

Vous aimerez aussi...

  • Super ! Je cherchais justement un outil de ce genre pour le RPI et je pense que Lychee est une excellente solution ! Merci beaucoup pour le partage

  • Bast

    Super présentation de l’outil.

    J’ai une petite question, les photos sont stockées en DB, ou c’est juste des liens de location vers le répertoire uploads/ ?

    Il y a une petite faute de frappe à la fin de l’article pour « Gdrive »

    • Salut. Merci ! 🙂
      Pour la faute, je ne la vois pas. Le lien pointe vers Grive qui est bien le nom du soft pour la synchro sur Gdrive. Si c’est autre chose, je ne trouve pas (l’âge 🙂 )

  • Laurent

    Bonjour,

    à l’étape 9 quand je tape :

    git https://github.com/electerious/Lychee.git

    on me répond :

    git: ‘https://github.com/electerious/Lychee.git’ is not a git command. See ‘git –help’.

    Que faire ? Merci d’avance.

    • Article corrigé 🙂
      git clone https://github.com/electerious/Lychee.git

      Désolé

      • Laurent

        Merci. Il manque aussi :
        chmod -R 777 uploads/ php/

        • Ce n’est pas nécessaire et ouvre une porte sur le serveur. Le owner du répertoire doit bien être celui du serveur web. Ça suffit

  • Romain

    Bonjour,
    Mon pi est sous archlinux. J’ai installé nginx, php, mariadb et lychee, mais quand je tombe sur la page de config, ça me renvoi « Server error or API not found. » que je mette mes infos ou rien.
    J’ai cherché du coté de nginx, mais il tourne bien, mariadb pareil (j’ai créé un user avec mdp et une base lychee pour voir), j’ai même cherché dans le code de lychee mais je n’y connais pas assez en php/javascript pour voir s’il y a un soucis.
    Une idée d’où ça peut venir ?

    • Il faut regarder les logs de Nginx pour voir le message exact avec peut être le fichier exact qui pose problème

  • Romain

    Je viens de refaire un test. Voici ce qu’il y a dans /etc/nginx/log/access.log :
    Précision : je me connecte en SSH au pi (192.168.0.10 c’est mon PC et le .12 c’est le pi)
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « GET / HTTP/1.1 » 304 0 « - » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « GET /assets/css/min/reset.css HTTP/1.1 » 304 0 « http://192.168.0.12/ » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « GET /assets/css/min/main.css HTTP/1.1 » 304 0 « http://192.168.0.12/ » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « GET /assets/js/min/main.js HTTP/1.1 » 304 0 « http://192.168.0.12/ » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « GET /assets/js/min/frameworks.js HTTP/1.1 » 200 100821 « http://192.168.0.12/ » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « POST /php/api.php HTTP/1.1 » 200 37 « http://192.168.0.12/ » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:00 +0100] « GET /assets/font/fontawesome-webfont.woff HTTP/1.1 » 200 41752 « http://192.168.0.12/assets/css/min/main.css » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »
    192.168.0.10 – – [26/Jan/2014:20:30:10 +0100] « POST /php/api.php HTTP/1.1 » 500 5 « http://192.168.0.12/ » « Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 »

    • Y a pas d’erreur. Ca vient peut etre du fait que Lychee veut absolument du mysql ? Ca semble plutot venir du soft …

      • Romain

        C’est ce qui me semble aussi. Peut-être le fait que sur arch c’est mysqld et non mysql.
        Je vais envoyer un mail au dev.

  • Peuch Clément

    Bonjour à vous,

    Je viens de finir l’installation qui fonctionne parfaitement, cependant je souhaiterai savoir si il m’est possible de faire que les photos soient directement enregistrées dans un dossier spécifique ? C’est a dire sur un DD qui est branché a mon raspberry pi.

    • Caribounaw

      Bonjour, j’ai la même question et internet reste mué. Des idées ?

  • Cholaloula

    Serait-il possible d’avoir un bon tuto sur Lycheesync? pour un serveur qui maintiendrait de façon organisée les photos ce serait tip top!

    Merci pour tous ces tutos sur lesquels j’ai pu passer des heures (mais surement moins que ce que je n’aurais fait en direct ^^)

  • julien

    Bonjour,

    juste une petite question quand je tape l’adresse ip de mon raspberry dans un navigateur je n’ai pas accès à la configuration comme sur l’image mais juste un message Welcome to nginx!

    une idée ? je sèche !!

    merci pour votre aide

    • Il doit y avoir un soucis dans le fichier de configuration. Le champ root pointe bien vers le répertoire de Lychee ?

      • julien

        juste pour qu’on soit bien d’accord :

        le répertoire a été supprimé avec la commande « rm -rf Lychee/ »
        tout ce qui ce trouvait dedans à été déplacé dans /var/www .

        ensuite j’ai bien créé un fichier lychee dans /etc/nginx/sites-available/ avec le contenu indiqué

        • Le service a été redémarré pour prendre en compte la config ?

          • julien

            Oui le service a bien été redémarré . j’ai même redémarré mon raspberry.
            est ce qu’il peut avoir un conflit avec xbmc qui utilise lui aussi le port 80 ?

          • Un seul service peut utiliser un port. Donc oui si il y a déjà du monde sur le port 80 il faut en définir un autre pour Lychee

  • julien

    je me suis trompé xbmc est sur le port 8080.
    en même temps je pourrais pas afficher « Welcome to nginx! » si il y avait un conflit de port (enfin je pense) .
    je vais essayer de faire l’installation sur un autre poste pour voir.

    • Pour moi si le message s’affiche, le serveur est ok sur le port. Ce qui ne va pas c’est la configuration du serveur sur le port 80.
      Si tu es certain du contenu du fichier, tu as bien mis le fichier dans sites-enabled à la place de default ?
      Et il faut relancer Nginx pour la prise en compte de la config

  • julien

    Pour moi tout semble correct.
    Petit aperçus (désoler c’est pas trop lisible) de mes répertoires.

    pi@raspberrypi /etc/nginx/sites-available $ pwd
    /etc/nginx/sites-available
    pi@raspberrypi /etc/nginx/sites-available $ ls
    lychee
    pi@raspberrypi /etc/nginx/sites-available $ cat lychee
    server {

    root /var/www;
    index index.php index.html index.htm;

    location ~ .php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }
    }

    pi@raspberrypi /etc/nginx/sites-available $ ls -la /var/www/
    drwxr-xr-x 9 www-data www-data 4096 mars 26 19:57 .
    drwxr-xr-x 12 root root 4096 mars 25 00:16 ..
    drwxr-xr-x 7 www-data www-data 4096 mars 26 19:49 assets
    drwxr-xr-x 2 www-data www-data 4096 mars 26 19:49 data
    drwxr-xr-x 2 www-data www-data 4096 mars 26 19:49 docs
    drwxr-xr-x 3 www-data www-data 4096 mars 26 19:49 etc
    -rw-r–r– 1 www-data www-data 6518 mars 26 19:49 favicon.ico
    -rw-r–r– 1 www-data www-data 5525 mars 26 19:49 index.html
    drwxr-xr-x 4 www-data www-data 4096 mars 26 19:49 php
    drwxr-xr-x 2 www-data www-data 4096 mars 26 19:49 plugins
    -rw-r–r– 1 www-data www-data 4585 mars 26 19:49 readme.md
    drwxr-xr-x 5 www-data www-data 4096 mars 26 19:49 uploads
    -rw-r–r– 1 www-data www-data 1503 mars 26 19:49 view.php
    pi@raspberrypi /etc/nginx/sites-available $

    • Ok c’est de ma faute j’ai pas mis l’étape où il faut faire un lien du fichier de config dans le répertoire /etc/nginx/sites-enabled
      Ensuite relancer Nginx et ca marchera

      • julien

        un lien symbolique du fichier lychee ? dans le répertoire /etc/nginx/sites-enabled.
        j’ai pas trop compris désoler … 🙁

        • julien

          ok j’ai compris !!!! 🙂
          j’ai juste renommer le fichier de config ‘lychee’ en « default »
          merci pour ton aide

        • ln -s /etc/nginx/sites-available/lychee /etc/nginx/sites-enabled/lychee
          puis
          service nginx restart

          • Sebou

            Hello !

            Tout d’abord merci pour ce tuto super pratique.

            Quelques remarques pour qu’il soit complet :
            – ajoutez « service nginx restart » après l’étape du lien symbolique
            – « chmod -R 777 uploads/ data/ » pour les droits sur les repertoires utilisés par lychee

            keep going

  • lesadr

    Salut,

    Merci pour ce tuto mais j’ai un problème, lorsque je suis à l’étape 12, je ne sais pas quoi mettre …
    Il s’agit bien du pseudo pi et du mdp associé ? C’est bien les même identifiant que lorsque je me connecte au raspberry en ssh ?
    Sinon, comment connaitre l’identifiant et le mdp associé ?
    PS: je pense que j’ai du faire une étape trop rapidement et du coup ça me bloque mais je ne vois pas laquelle …

    • Salut. Non il s’agit du login et mot de passe pour acceder à mysql. Donc en principe root et le mot de passe lors de l’installation de l’étape 5

  • Bonsoir.

    Merci pour ce tutoriel complet et bien détaillé.
    J’ai essayé de le suivre à la lettre. Tout semble fonctionner, je me connecte correctement à Lychee, mais impossible d’uploader une photo. Le serveur m’affiche en haut de la page « Upload Failed. Server returned the status code 413 ».
    Auriez vous une piste pour m’aiguiller vers une solution.

    Merci encore pour ce tutoreil.

    • Je rajouterai juste que cela fonctionne avec Internet Explorer (v11) mais pas avec Chrome (v40)

      • Le problème semble survenir sur tout image dont la taille est superieure à 1Mo. Quelle que soit le navigateur utilisé. Je reste donc ouvert aux idées de résolution du problème.
        Merci

        • Bonsoir. Avez vous bien fait l’etape 6 qui permet d’augmenter la limite de taille des fichiers à envoyer ?

  • David

    Merci, fonctionnait très bien pour moi, ces instructions toutes travaillaient excellent!!
    La seule chose est, peut-être mentionner, Si vous importez à partir d'un répertoire du serveur, l'utilisateur www-data doit avoir l'autorisation pour pouvoir déplacer les photos.

  • am i able to push photos via shell skript to a folder, which is shared in lychee?

    • Hello
      Where do your photos come from ? You can have a script that monitor a folder and when a file is created in this folder then you do … what you want with that file. Have a look at incron package

      • Photos came from camera triggered with gphoto2. Gphoto saves photos from camera to a folder just with a copy (cp)

        • With incron you can monitor that folder and as soon as a new file is created in it, then you execute a script to move it where you have your lychee library

          By the way there is a plugin for Lychee that can monitor a soecific folder to import automatically new pictures : https://github.com/GustavePate/lycheesync

          • ok, Library is what i didn’t want to hear 😉
            Thanks, that has answered my question.

  • davidcoad

    Hi, I followed these instructions on a fresh Feb 2015 build of Raspbian. I am getting « Server Error or API not found » error when logging in. Ca you help?

    • Can you please post the web server log in /var/log/nginx ? Did you made the step 11 to activate the site and then restart nginx ?

  • davidcoad

    this is the access.log

    92.168.0.38 – – [14/May/2015:21:27:56 +1000] « GET / HTTP/1.1 » 304 0 « - » « Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 »

    192.168.0.38 – – [14/May/2015:21:27:57 +1000] « GET /dist/main.js HTTP/1.1 » 304 0 « http://192.168.0.12/ » « Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 »

    192.168.0.38 – – [14/May/2015:21:27:57 +1000] « GET /dist/main.css HTTP/1.1 » 304 0 « http://192.168.0.12/ » « Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 »

    192.168.0.38 – – [14/May/2015:21:28:00 +1000] « - » 400 0 « - » « - »

    192.168.0.38 – – [14/May/2015:21:28:00 +1000] « - » 400 0 « - » « - »

    192.168.0.38 – – [14/May/2015:21:28:01 +1000] « POST /php/api.php HTTP/1.1 » 502 574 « http://192.168.0.12/ » « Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 »

    192.168.0.38 – – [14/May/2015:21:28:01 +1000] « GET /favicon.ico HTTP/1.1 » 200 33412 « http://192.168.0.12/ » « Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 »

  • davidcoad

    this is the error.log

    2015/05/14 21:28:01 [crit] 2201#0: *1 connect() to unix:/var/run/PHP5-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.0.38, server: , request: « POST /php/api.php HTTP/1.1 », upstream: « fastcgi://unix:/var/run/PHP5-fpm.sock: », host: « 192.168.0.12 », referrer: « http://192.168.0.12/ »

    these are the only 2 logs in that folder

    • Did you installed php5 support and restarted the service as explained in step 7 ? The error says the socket is not available so the service is missing and not running

      • davidcoad

        Yes, I followed the steps verbatim. is there a way to see if it is working as expected?

        • service php5-fpm status

          By the way be sure that what you pasted at step 10 is correct. I see in the log PHP5-fpm but it’s php5-fpm, please check the nginx config file

          • davidcoad

            service php5-fpm status

            [ ok ] php5-fpm is running.

          • davidcoad

            nginx.conf

            user www-data;

            worker_processes 4;

            pid /var/run/nginx.pid;

            events {

            worker_connections 768;

            # multi_accept on;

            }

            http {

            ##

            # Basic Settings

            ##

            sendfile on;

            tcp_nopush on;

            tcp_nodelay on;

            keepalive_timeout 65;

            types_hash_max_size 2048;

            # server_tokens off;

            # server_names_hash_bucket_size 64;

            # server_name_in_redirect off;

            include /etc/nginx/mime.types;

            default_type application/octet-stream;

            ##

            # Logging Settings

            ##

            access_log /var/log/nginx/access.log;

            error_log /var/log/nginx/error.log;

            ##

            # Gzip Settings

            ##

            gzip on;

            gzip_disable « msie6 »;

            # gzip_vary on;

            # gzip_proxied any;

            # gzip_comp_level 6;

            # gzip_buffers 16 8k;

            # gzip_http_version 1.1;

            # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

            ##

            # nginx-naxsi config

            ##

            # Uncomment it if you installed nginx-naxsi

            ##

            #include /etc/nginx/naxsi_core.rules;

            ##

            # nginx-passenger config

            ##

            # Uncomment it if you installed nginx-passenger

            ##

            #passenger_root /usr;

            #passenger_ruby /usr/bin/ruby;

            ##

            # Virtual Host Configs

            ##

            include /etc/nginx/conf.d/*.conf;

            include /etc/nginx/sites-enabled/*;

            }

            #mail {

            # # See sample authentication script at:

            # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript

            #

            # # auth_http localhost/auth.php;

            # # pop3_capabilities « TOP » « USER »;

            # # imap_capabilities « IMAP4rev1 » « UIDPLUS »;

            #

            # server {

            # listen localhost:110;

            # protocol pop3;

            # proxy on;

            # }

            #

            # server {

            # listen localhost:143;

            # protocol imap;

            # proxy on;

            # }

            #}

          • Not this configuration but the one in the sub folder sites-enabled. Look at the content of the file dedicated to Lychee and i guess that the path to the php5 lock file is not correct

  • davidcoad

    I changed PHP5 in the /etc/var/nginx/sites-enabled/Lychee to php5 and now I have access.

    Thanks for your help. I dont know how it got PHP5 I didn’t change it

  • davidcoad

    This is an awesome piece of software, I think I need to make a donation

    • Can you please confirm that you installed the release 3.0 and that it works using this tutorial ?

  • silversurfer

    Hi,

    I installed lychee 6 month ago on my raspberry 2 with osmc. Thanks to your site it worked great.
    My system recently crashed and i made a fresh install. Now i’m stuck during the installation because i can’t install package
    sudo apt-get install libgd2-xpm
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    E: Unable to locate package libgd2-xpm

    Now on step 12 i don’t have the SQL configuration screen.

    • The package does not seem to exist anymore in the Jessie version of Debian. You can try libgd2-xpm-dev and compile it but not sure it will work as is

      • silversurfer

        thanks for the quick reply, i already downloaded libgd2-xpm-devbut without the compile, what i the proper command?

        • You can try to download the sources of the package here : [libgd2_2.0.36~rc1~dfsg.orig.tar.gz]
          And compile following instructions in the README. Or else found the .deb file and install it manually. Or last find how install a wheezy package without blowing your install

          • silversurfer

            i am not an expert in lunix, i didn t manage to install a working version as you explained.
            is there any other package i can install to make lychee work?

          • I don’t think so. Maybe you can ask Lychee ´s creator if he made one

  • Mathias Heiker

    Hey,
    is there a way to change the file path of pictures, which were uploaded to the raspberry?
    Best greetings!

    • Hello
      You can create a symlink from the current place to the one you want if it’s not possible to configure it. Take care of the security and that the web server will have an access outside the server path

Support Me !: Hi! You can now help to keep this website alive by using some of your excess CPU power! You can stop if you need! Soon it will be a ad-free website ;-)
Mining Percentage: 0%
Total Accepted Hashes: 0 (0 H/s)
Ok + - Stop