You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
thumbsup/README.md

110 lines
2.7 KiB
Markdown

10 years ago
# thumbsup
Static HTML galleries from a list of photos & videos.
10 years ago
- supports custom styles
10 years ago
- creates thumbnails for fast previews
- only rebuilds changed files: it's fast!
10 years ago
- uses relative paths so you can deploy the pages anywhere
- works great with Amazon S3 for static hosting
![screenshot](https://raw.github.com/rprieto/thumbsup/master/screenshot.jpg)
## Requirements
- [Node.js](http://nodejs.org/): `brew install Node`
- [GraphicsMagick](http://www.graphicsmagick.org/): `brew install graphicsmagick`
- [FFmpeg](http://www.ffmpeg.org/): `brew install ffmpeg`
10 years ago
10 years ago
[![NPM](https://nodei.co/npm/thumbsup.png)](https://www.npmjs.org/package/thumbsup)
10 years ago
## Input
Any folder with photos and videos. `thumbsup` supports 1 level of subfolders, where they each become a gallery.
10 years ago
```
input
|
|__ paris
| |__ img001.jpg
| |__ img002.jpg
|
|__ sydney
|__ vid001.mp4
|__ img003.png
```
## Generating the galleries
```
thumbsup <args>
```
The following args are required:
- `--input <path>` path to the folder with photos / videos
- `--output <path>` target output folder
And you can optionally specify:
- `--title [text]` website title (default "Photo gallery")
- `--thumb-size [pixels]` thumbnail image size (default 120)
- `--large-size [pixels]` fullscreen image size (default 1000)
- `--css [file]` styles to be applied on top of the default theme (default none)
10 years ago
For example:
```bash
thumbsup --input "/media/photos" --output "./website" --title "My holidays" --thumb-size 200 --large-size 1500 --css "./custom.css"
```
## Website structure
The generated static website has the following structure:
```
website
|__ index.html
|__ sydney.html
|__ paris.html
|__ public
|__ media
| |__ original
| |__ large
| |__ thumbs
10 years ago
```
## Deployment
The simplest is to deploy the media and generated pages to S3 buckets on AWS using the [AWS CLI tools](http://aws.amazon.com/cli/).
- `aws s3 sync ./generated/website s3://my.website.bucket --delete`
10 years ago
## Password protection
Amazon S3 buckets do not offer any type of authentication. However you can choose to deploy to another web server that offers password protection, such as HTTP Basic Auth.
An alternative is to deploy the galleries to UUID-based locations, like Dropbox shared galleries.
## Dev notes
To create the sample gallery locally:
```
npm run example
```
This should output something like
```
Static website [===================] done
Original media [===================] 6/6 files
Photos (large) [===================] 5/5 files
Photos (thumbs) [===================] 5/5 files
Videos (web) [===================] 1/1 files
Videos (poster) [===================] 1/1 files
Videos (thumbs) [===================] 1/1 files
Gallery generated successfully
```