Super fast static photo and video gallery generator (written in Go and HTML/CSS/native JS)

fastgallery Go Report Card GitHub release (latest SemVer) License Build Status Coverage Status

Fast static photo and video gallery generator

  • Super fast (written in Go and C, concurrent, uses fastest image/video libraries, 4-8 times faster than others)
  • Both photo and video support
  • Deals with any file formats (including HEIC and HEVC)
  • Only updates changed files, runs incrementally
  • Uses relative paths (safe for using in subdirectory or S3)
  • Minimal bloat (no third party frontend libraries, minimal CSS)

Please note that fastgallery is still beta, I am actively working on it

Examples

Please see https://www.melisma.fi/fastgallery-examples/

Dependencies

MacOS

For dependencies, use Homebrew to install:

brew install vips ffmpeg

Ubuntu Linux

For Ubuntu 18.04 bionic or 20.04 focal, first add my PPA for latest libvips with HEIF support:

sudo add-apt-repository ppa:tonimelisma/ppa

Then install libvips42 for images and optionally ffmpeg (if you need video support):

apt-get install libvips42 ffmpeg

Install

  1. Download the latest release and unpack
  2. Run make build
  3. Copy bin/fastgallery to /usr/local/bin
  4. Copy contents of assets/ to /usr/local/share/fastgallery

Usage

fastgallery -o /var/www/html/gallery ~/Dropbox/Pictures

Roadmap

For the prioritised roadmap, please see https://github.com/tonimelisma/fastgallery/projects/1

Third party libraries

  • govips, lightning fast image processing and resizing library
  • Feather icons, simple and beautiful
  • Primer CSS, Github's in-house design system
Owner
Toni Melisma
Collection of personal projects and POCs. Also see my work account @tonimelismasalesforce
Toni Melisma
Similar Resources

A Free 8-Bit Sprite Generator. Create 256 variants from a single template .PNG

A Free 8-Bit Sprite Generator.  Create 256 variants from a single template .PNG

BitSprite A Free 8-Bit Sprite Generator. What? BitSprite is a program that creates variants of an image across total sprite sheet of the resultant ima

Sep 20, 2022

simple but poweful mosaic picture generator

simple but poweful mosaic picture generator

MOSAIC MAN simple but poweful mosaic picture generator it's completely free with a highly customizable mosaic server RESULT Ex1 RESULT Ex2 OPTIONS til

Jul 18, 2022

Easily customizable Social image (or Open graph image) generator

fancycard Easily customizable Social image (or Open graph image) generator Built with Go, Gin, GoQuery and Chromedp Build & Run Simply, Clone this rep

Jan 14, 2022

A festive Christmas tree GIF generator implemented using only Golang standard library code

A festive Christmas tree GIF generator implemented using only Golang standard library code

Christmas Tree GIF Generator A festive Christmas tree GIF generator implemented

Feb 4, 2022

A generator of cats/birds/mobilizon pictures optimised to generate or random avatars, or defined avatar from a "seed"

A generator of cats/birds/mobilizon pictures optimised to generate or random avatars, or defined avatar from a "seed". A derivation by David Revoy from the original MonsterID by Andreas Gohr's.

Feb 7, 2022

Fast and secure standalone server for resizing and converting remote images

imgproxy imgproxy is a fast and secure standalone server for resizing and converting remote images. The main principles of imgproxy are simplicity, sp

Jan 1, 2023

A lightning fast image processing and resizing library for Go

govips A lightning fast image processing and resizing library for Go This package wraps the core functionality of libvips image processing library by

Jan 8, 2023

An extensive, fast, and accurate command-line image dithering tool.

An extensive, fast, and accurate command-line image dithering tool.

didder is an extensive, fast, and accurate command-line image dithering tool. It is designed to work well for both power users as well as pipeline scripting. It is backed by my dithering library, and is unique in its correctness and variety of dithering algorithms.

Dec 31, 2022

Go package for fast high-level image processing powered by libvips C library

bimg Small Go package for fast high-level image processing using libvips via C bindings, providing a simple programmatic API. bimg was designed to be

Jan 2, 2023
Comments
  • Wishes

    Wishes

    Thank you so much for a great job. wishes: Switch to full-screen mode. Back buttons all the way down to the root. Instead of a folder icon, an image from a file with a prefix (for example _file.jpg or @ file.jpg or # file.jpg) in the corresponding folder.

  • [Feature Request] Skip resizing, populate gallery with the symlinks

    [Feature Request] Skip resizing, populate gallery with the symlinks

    Hi, I'd be interested in an option to skip the step of resizing photos and videos. In this scenario, you'd generate thumbnails, then just use the symlink whenever viewing a specific image/video.

This command line converts .html file into .html with images embed.

embed-html This command line converts .html file into .html with images embed. Install > go get github.com/gonejack/embed-html Usage > embed-html *.ht

Oct 6, 2022
H265/HEVC HM Video Codec in Go

GoHM H.265/HEVC HM Video Codec in Go Release Note: +v1.0.b03092013 -fix multiple bugs in decoder +v1.0.b03032013 -Initial release candidate for GoHM 1

Nov 8, 2022
Turn a grid of frames (stored in a single image) into a video file
Turn a grid of frames (stored in a single image) into a video file

reel2vid Convert a video that is encoded into one large image as many images sid

Dec 19, 2021
HTML Canvas 2D Context API for mobile, desktop and web

canvas HTML Canvas 2D Context API for mobile, desktop and web Context2D API https://www.w3.org/TR/2dcontext/ native code implement https://github.com/

Apr 22, 2022
Cairo in Go: vector to SVG, PDF, EPS, raster, HTML Canvas, etc.
Cairo in Go: vector to SVG, PDF, EPS, raster, HTML Canvas, etc.

Canvas is a common vector drawing target that can output SVG, PDF, EPS, raster images (PNG, JPG, GIF, ...), HTML Canvas through WASM, and OpenGL. It h

Dec 25, 2022
Imgpreview - Tiny image previews for HTML while the original image is loading
Imgpreview - Tiny image previews for HTML while the original image is loading

imgpreview This is a Go program that generates tiny blurry previews for images t

May 22, 2022
The android-go project provides a platform for writing native Android apps in Go programming language.
The android-go project provides a platform for writing native Android apps in Go programming language.

android-go The android-go project aims to provide a platform (namely an SDK) for writing native Android apps in Go programming language. All things he

Jan 5, 2023
go chart is a basic charting library in native golang.
go chart is a basic charting library in native golang.

go-chart Package chart is a very simple golang native charting library that supports timeseries and continuous line charts. Master should now be on th

Dec 30, 2022
OpenGL binding generator for Go

GoGL GoGL is an OpenGL binding generator for Go. No external dependencies like GLEW are needed. Install the OpenGL bindings For example, OpenGL 2.1 bi

Dec 25, 2022
An avatar generator for Go.

Cameron An avatar generator for Go. Oh, by the way, the name of this project came from the Avatar's director James Cameron. Features Identicon Install

Dec 25, 2022