1
0
mirror of https://github.com/bpatrik/pigallery2.git synced 2024-12-14 11:23:17 +02:00
A fast directory-first photo gallery website, with rich UI, optimized for running on low resource servers (especially on raspberry pi)
Go to file
2018-05-12 12:46:56 -04:00
backend adding url base, improving code quality 2018-05-12 12:19:51 -04:00
common adding url base, improving code quality 2018-05-12 12:19:51 -04:00
demo/images adding more photos to demo directory 2017-07-21 00:28:39 +02:00
frontend improving loading splash screen 2018-05-12 12:46:56 -04:00
test improving tests 2018-03-30 15:30:30 -04:00
.angular-cli.json package update 2017-10-19 12:08:07 -04:00
.editorconfig adding angular-cli support (causes major refactoring) 2017-06-10 22:32:56 +02:00
.gitignore simplifying deployment 2017-07-20 23:49:27 +02:00
.npmignore improving release scripts 2017-06-02 23:48:46 +02:00
.travis.yml travis fix 2018-03-30 15:41:08 -04:00
COMPARE.md package update 2017-10-19 12:08:07 -04:00
gulpfile.js adding url base, improving code quality 2018-05-12 12:19:51 -04:00
karma.conf.js improving tests 2018-03-30 15:30:30 -04:00
LICENSE Initial commit 2016-03-12 12:46:42 +01:00
package.json adding url base, improving code quality 2018-05-12 12:19:51 -04:00
Procfile heroku fix 2017-07-10 10:14:33 +02:00
protractor.conf.js folder settings bugfix 2017-07-15 17:48:29 +02:00
README.md adding url base, improving code quality 2018-05-12 12:19:51 -04:00
tsconfig.json improving tests 2018-03-30 15:30:30 -04:00
tslint.json fixing Edge scrolling bug 2018-05-09 13:37:21 -04:00
USERRIGHTS.md improving sharing 2017-07-09 12:03:17 +02:00

PiGallery2

npm version Build Status Coverage Status Heroku Code Climate Dependency Status devDependency Status

This is a directory-first photo gallery website, optimised for running on low resource servers (especially on raspberry pi)

Live Demo

Live Demo @ heroku: https://pigallery2.herokuapp.com/

Install (on Raspberry Pi 1)

Install NodeJs

Download and extract

cd ~
wget https://nodejs.org/dist/v6.10.3/node-v6.10.3-linux-armv6l.tar.gz
tar -xzf node-v6.10.3-linux-armv6l.tar.gz

Copy it to /usr/local:

cd node-v6.10.3-linux-armv6l/
sudo cp -R * /usr/local/

Add to path. Add the following line to ~/.bashrc

PATH=$PATH:/usr/local/bin

Full node install description: https://raspberrypi.stackexchange.com/questions/48303/install-nodejs-for-all-raspberry-pi

Install PiGallery2

Install from release

cd ~
wget https://github.com/bpatrik/pigallery2/releases/download/1.1.0/pigallery2.zip
unzip pigallery2
cd pigallery2
npm install

Install from source

cd ~
wget https://github.com/bpatrik/pigallery2/archive/master.zip
unzip master.zip
cd pigallery2 # enter the unzipped directory
npm install

Run PiGallery2

npm start

To configure it. Run PiGallery2 first to create config.json file, then edit it and restart. Default user: admin pass: admin

Using nginx

https://stackoverflow.com/questions/5009324/node-js-nginx-what-now

making https

https://certbot.eff.org/

node install error:

If you get error during module installation, make sure you have everything to build node modules from source

apt-get install build-essential  libkrb5-dev gcc g++

Feature list

  • Rendering directories as it is
    • Listing subdirectories recursively
    • Listing photos in a nice grid layout
      • supporting most common image formats
      • showing tag/keywords, locations, GPS coordinates for photos
      • rendering photos on demand (on scroll)
  • On the fly thumbnail generation in several sizes
    • prioritizes thumbnail generation (generating thumbnail first for the visible photos)
    • saving generated thumbnails to TEMP folder for reuse
    • supporting several core CPU
    • supporting hardware acceleration (sharp and gm as optional and JS-based Jimp as fallback)
  • Custom lightbox for full screen photo viewing
    • keyboard support for navigation
    • showing low-res thumbnail while full image loads
    • Information panel for showing Exif info
    • Automatic playing
    • gesture support (swipe left, right, up)
  • Client side caching (directories and search results)
  • Rendering photos with GPS coordinates on google map
    • .gpx file support - future plan
  • Two modes: SQL database and no-database mode
    • both modes supports
      • user management
      • password protection can be disabled/enabled
    • database mode supports:
      • faster directory listing
      • searching
        • instant search, auto complete
      • sharing
        • setting link expiration time
  • internalization / translation support
  • Nice design
    • responsive design (phone, tablet desktop support)
  • Setup page
  • video support - future plan
  • Markdown based blogging support - future plan
    • you can write some note in the blog.md for every directory
  • bug free :) - In progress

Translate the page to your own language

  1. download / clone the repo (the source not the packed release!)
  2. add your language e.g: fr
npm run add-translation -- --fr

it creates a new messages.fr.xls file at frontend/translate folder, it will already contain dummy translation with google translate. 3) 'fix' the dummy translation 4) test if it works: build and start the app

npm install
npm start
  1. create a pull request at github to add your translation to the project.