This is a directory-first photo gallery website, optimised for running on low resource servers (especially on raspberry pi)
Live Demo @ heroku: https://pigallery2.herokuapp.com/
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
cd ~
wget https://github.com/bpatrik/pigallery2/releases/download/1.0.0-rc.1/pigallery2.zip
unzip pigallery2
cd pigallery2
npm install
cd ~
wget https://github.com/bpatrik/pigallery2/archive/master.zip
unzip master.zip
cd pigallery2 # enter the unzipped directory
npm install
npm start
To configure it. Run PiGallery2
first to create config.json
file, then edit it and restart.
Default user: admin
pass: admin
https://stackoverflow.com/questions/5009324/node-js-nginx-what-now
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++
- 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
- 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
- .gpx file support -
- 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
- both modes supports
- 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
- download / clone the repo (the source not the packed release!)
- 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
- create a pull request at github to add your translation to the project.