1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/README.md

134 lines
4.7 KiB
Markdown
Raw Normal View History

2016-03-12 19:46:42 +08:00
# PiGallery2
[![npm version](https://badge.fury.io/js/pigallery2.svg)](https://badge.fury.io/js/pigallery2)
2017-07-04 01:17:49 +08:00
[![Build Status](https://travis-ci.org/bpatrik/pigallery2.svg?branch=master)](https://travis-ci.org/bpatrik/pigallery2)
2017-07-07 04:54:36 +08:00
[![Coverage Status](https://coveralls.io/repos/github/bpatrik/PiGallery2/badge.svg?branch=master)](https://coveralls.io/github/bpatrik/PiGallery2?branch=master)
2016-05-02 16:07:42 +08:00
[![Heroku](https://heroku-badge.herokuapp.com/?app=pigallery2&style=flat)](https://pigallery2.herokuapp.com)
2017-07-04 01:17:49 +08:00
[![Code Climate](https://codeclimate.com/github/bpatrik/pigallery2/badges/gpa.svg)](https://codeclimate.com/github/bpatrik/pigallery2)
[![Dependency Status](https://david-dm.org/bpatrik/pigallery2.svg)](https://david-dm.org/bpatrik/pigallery2)
[![devDependency Status](https://david-dm.org/bpatrik/pigallery2/dev-status.svg)](https://david-dm.org/bpatrik/pigallery2#info=devDependencies)
2016-03-12 21:21:25 +08:00
2017-03-23 02:38:39 +08:00
This is a directory-first photo gallery website, optimised for running on low resource servers (especially on raspberry pi)
2016-03-14 20:30:15 +08:00
2017-06-04 21:25:22 +08:00
## Live Demo
Live Demo @ heroku: https://pigallery2.herokuapp.com/
2017-03-23 02:38:39 +08:00
2016-03-14 20:30:15 +08:00
2017-03-23 02:38:39 +08:00
2017-06-04 21:25:22 +08: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
2017-07-13 00:35:23 +08:00
#### Install from release
2017-06-04 21:25:22 +08:00
```bash
cd ~
2017-07-30 05:39:06 +08:00
wget https://github.com/bpatrik/pigallery2/releases/download/1.0.0-rc.1/pigallery2.zip
2017-07-12 04:23:07 +08:00
unzip pigallery2
2017-07-13 00:35:23 +08:00
cd pigallery2
npm install
```
#### Install from source
```bash
cd ~
wget https://github.com/bpatrik/pigallery2/archive/master.zip
unzip master.zip
cd pigallery2 # enter the unzipped directory
2017-06-04 21:25:22 +08:00
npm install
```
2017-07-13 00:35:23 +08:00
2017-06-04 21:25:22 +08:00
### Run PiGallery2
```bash
npm start
```
To configure it. Run `PiGallery2` first to create `config.json` file, then edit it and restart.
2017-07-26 05:39:50 +08:00
Default user: `admin` pass: `admin`
2017-06-04 21:25:22 +08:00
2017-07-30 05:39:06 +08:00
### Using nginx
https://stackoverflow.com/questions/5009324/node-js-nginx-what-now
2017-10-20 00:08:07 +08:00
2017-07-30 05:39:06 +08:00
### making https
https://certbot.eff.org/
2017-10-20 00:08:07 +08:00
### node install error:
If you get error during module installation, make sure you have everything to build node modules from source
```bash
apt-get install build-essential libkrb5-dev gcc g++
```
2017-06-04 21:25:22 +08:00
## Feature list
2017-03-23 02:38:39 +08: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-23 02:41:32 +08:00
* **On the fly thumbnail generation** in several sizes
2017-03-23 02:38:39 +08:00
* 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](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-23 02:38:39 +08:00
* Custom lightbox for full screen photo viewing
2017-07-09 18:03:17 +08:00
* keyboard support for navigation
2017-03-23 02:38:39 +08:00
* showing low-res thumbnail while full image loads
* Information panel for showing **Exif info**
2017-07-12 04:23:07 +08:00
* Automatic playing
2017-07-18 00:30:16 +08:00
* gesture support (swipe left, right, up)
2017-03-23 02:41:32 +08:00
* Client side caching (directories and search results)
2017-03-23 02:38:39 +08:00
* Rendering **photos** with GPS coordinates **on google map**
2017-07-09 18:03:17 +08:00
* .gpx file support - `future plan`
2017-03-23 02:41:32 +08:00
* **Two modes: SQL database and no-database mode**
* both modes supports
* user management
* password protection can be disabled/enabled
2017-03-23 02:38:39 +08:00
* database mode supports:
* faster directory listing
* searching
* instant search, auto complete
2017-07-09 18:03:17 +08:00
* sharing
2017-03-23 02:38:39 +08:00
* setting link expiration time
2018-03-30 08:30:23 +08:00
* internalization / translation support
2017-07-30 05:39:06 +08:00
* Nice design
2017-03-23 02:38:39 +08:00
* responsive design (phone, tablet desktop support)
2017-07-30 05:39:06 +08:00
* Setup page
* video support - `future plan`
2017-07-09 18:03:17 +08:00
* **Markdown based blogging support** - `future plan`
2017-03-23 02:41:32 +08:00
* you can write some note in the blog.md for every directory
2017-03-23 02:38:39 +08:00
* bug free :) - `In progress`
2018-03-30 08:30:23 +08:00
## Translate the page to you own language
1) download / clone the repo (the source not the packed release!)
2) add your language e.g: fr
```bash
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
```bash
npm install
npm start
```
5) create a pull request at github to add your translation to the project.