2016-03-12 12:46:42 +01:00
# PiGallery2
2017-06-03 22:35:47 +02:00
[](https://badge.fury.io/js/pigallery2)
2016-03-13 16:07:58 +01:00
[](https://travis-ci.org/bpatrik/PiGallery2)
2016-03-13 16:09:59 +01:00
[](https://coveralls.io/github/bpatrik/PiGallery2?branch=master)
2016-05-02 10:07:42 +02:00
[](https://pigallery2.herokuapp.com)
2016-03-12 14:34:44 +01:00
[](https://codeclimate.com/github/bpatrik/PiGallery2)
2016-03-12 14:21:56 +01:00
[](https://david-dm.org/bpatrik/PiGallery2)
2016-03-12 14:21:25 +01:00
[](https://david-dm.org/bpatrik/PiGallery2#info =devDependencies)
2017-03-22 19:38:39 +01:00
This is a directory-first photo gallery website, optimised for running on low resource servers (especially on raspberry pi)
2016-03-14 13:30:15 +01:00
2017-06-04 15:25:22 +02:00
## Live Demo
Live Demo @ heroku: https://pigallery2.herokuapp.com/
2017-03-22 19:38:39 +01:00
2016-03-14 13:30:15 +01:00
2017-03-22 19:38:39 +01:00
2017-06-04 15:25:22 +02:00
## Install (on Raspberry Pi 1)
### Install NodeJs
Download and extract
```bash
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:
```bash
cd node-v6.10.3-linux-armv6l/
sudo cp -R * /usr/local/
```
Add to path. Add the following line to `~/.bashrc`
```bash
PATH=$PATH:/usr/local/bin
```
Full node install description: https://raspberrypi.stackexchange.com/questions/48303/install-nodejs-for-all-raspberry-pi
### Install PiGallery2
```bash
cd ~
wget https://github.com/bpatrik/PiGallery2/archive/1.0.0-beta.0.tar.gz
tar -xzvf 1.0.0-beta.0.tar.gz
cd PiGallery2-1.0.0-beta.0
npm install
npm run build
```
### Run PiGallery2
```bash
npm start
```
To configure it. Run `PiGallery2` first to create `config.json` file, then edit it and restart.
## Feature list
2017-03-22 19:38:39 +01:00
* **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)
2017-03-22 19:41:32 +01:00
* **On the fly thumbnail generation** in several sizes
2017-03-22 19:38:39 +01:00
* prioritizes thumbnail generation (generating thumbnail first for the visible photos)
* saving generated thumbnails to TEMP folder for reuse
* supporting several core CPU
2017-06-11 23:33:47 +02:00
* supporting hardware acceleration ([sharp ](https://github.com/lovell/sharp ) and [gm ](https://github.com/aheckmann/gm ) as optional and JS-based [Jimp ](https://github.com/oliver-moran/jimp ) as fallback)
2017-03-22 19:38:39 +01:00
* Custom lightbox for full screen photo viewing
* keyboard support for navigation - `In progress`
* showing low-res thumbnail while full image loads
* Information panel for showing **Exif info** - `In progress`
2017-03-22 19:41:32 +01:00
* Client side caching (directories and search results)
2017-03-22 19:38:39 +01:00
* Rendering **photos** with GPS coordinates **on google map**
* .gpx file support - `In progress`
2017-03-22 19:41:32 +01:00
* **Two modes: SQL database and no-database mode**
* both modes supports
* user management
* password protection can be disabled/enabled
2017-03-22 19:38:39 +01:00
* database mode supports:
* faster directory listing
* searching
* instant search, auto complete
* sharing - `In progress`
* setting link expiration time
* Nice design - `In progress`
* responsive design (phone, tablet desktop support)
* Setup page - `In progress`
* **Markdown based blogging support** - `In progress`
2017-03-22 19:41:32 +01:00
* you can write some note in the blog.md for every directory
2017-03-22 19:38:39 +01:00
* bug free :) - `In progress`