NanoGal/README.md
2024-08-23 16:13:41 +02:00

8.1 KiB

NanoGal

Presentation

NanoGal is fork of MinigalNano and MinigalNano is based on Thomas Rybak's.

Why fork ? Because I love understand and adapte application for my usage.

NanoGal is a very simple image gallery. It adheres to the KISS principle and is very easy to install. NanoGal does not have a web admin interface: You just upload your images in the photo folder on your server (using FTP, SFTP...). It only requires php and GD (no database, no special libraries like PEAR or ImageMagick).

NanoGal uses a javascript gLightBox, but it degrades gracefully if javascript is disabled.

Features

  • Very simple media gallery
  • Use cache for increase speed
  • Thumb are gen and cache (WEBP)
  • Can read Exif
  • Use the organization of your file hierarchy
  • You can add text for gallery (dir) or/and for file (use Markdown format)
  • Support for PNG, GIF, JPEG, WEBP, BMP image formats
  • Support for OGV, MP4, WEBM video
  • Javascript lightbox, degrades gracefull if JavaScript is disabled
  • Can be customize with CSS (over charge actual theme) or create your theme

Installation

Docker

For the moment I don't provide any image in any hub.

Build image

Image use

wget https://forge.leslibres.org/Knah-Tsaeb/NanoGal/src/branch/main/Dockerfile
docker buildx build -t nanogal:0.1.0 .

Start container

You can use native docker volume.

docker run -v nanogal_datas:/var/www/datas:ro -v nanogal_photos:/var/www/public/photos:ro -e TZ=UTC -p 8187:80 --name nanogal nanogal:0.1.0

Or use absolute path

docker run -v /opt/nanogal/datas:/var/www/datas:ro -v /opt/nanogal/photos:/var/www/public/photos:ro -e TZ=UTC -p 8187:80 --name nanogal nanogal:0.1.0

Classic way

  • Requires php (8 or higher) and two extension php-gd and php-mbstring.
  • Place all the files in a directory on your server.
  • Configure your web server to serve public/ directory.
  • Upload your photos to the photos/ subdirectory.
  • That's all.

Usage

WARNING

When you upload your file, some data are share, particularly Exif data. Exif data can expose the GPS coordinates of where the photos/videos were taken. This may not be what you want.

If you want, you can delete this data. Under GNU/Linux you can install exiftool. In the bin directory you have bash script (remove_gps_datas.sh) for remove this data in all file present in your gallery. USE AT OUR RISK.

Adding your photos

  • Simply add your photos to the photos directory via FTP or SFTP.
  • You can create as many subdirectories as you want.
  • Create note.md.
  • Write content in Markdown.
  • Upload in the gallery's folder.

Adding a comment to an image

  • Create an md file. Filename must be the image filename plus .md. (eg. myimage.jpgmyimage.jpg.md)
  • Write content in Markdown.
  • Upload in the gallery's folder.

Using a custom image for folders

  • Create folder.jpg inside a folder: This image will be used as default image for folder.

Thumbnails

You do not have to care about thumbnails: They are automatically created in the cache/thumbs directory. If some thumbnails are wrong, you can purge this directory: Thumbnails will be automatically re-created.

Options

  • Create datas/config.php.
  • Paste this code.
<?php
$userConfig = [
  'templateFile' => 'board', // Template filename (must be placed in 'public/templates' folder)
  'title' => 'NanoGal', // Text to be displayed in browser titlebar
  'description' => 'My gallery', // Use in meta tag "description" 
  'author' => 'NanoGal', // Your name
  'skipObjects' => ['comment.html', '.gitkeep', 'aFolder', 'aFile.ext'], //Those files and folders will not be displayed
  'imageCaptionPosition' => 'right', // Position of caption in lightbox
  'sortBy' => 'name', // Sort by name or date
  'orderBy' => 'desc', // Order by asc or desc
  'thumbSize' => 250, // Thumbnail height/width (square thumbs)
  'displayExifInfo' => false, // Display Exif info in caption
  'disableCache' => false, // Enable or disable cache
  'showShareLink' => false // Show link for thumb, full, markdown link (thumb + link to full)
];
Option Type Default Description
templateFile string board Template filename (must be placed in 'public/templates' folder)
title string NanoGal Text to be displayed in browser titlebar
description string My gallery Use in meta tag "description"
author string NanoGal Your name
skipObjects array ['comment.html', '.gitkeep', 'aFolder', 'aFile.ext'] Those files and folders will not be displayed
imageCaptionPosition string right Position of caption in lightbox top or right or bottom or left
sortBy string name Sort by name or date
orderBy string desc Order by asc or desc
thumbSize int 250 Thumbnail height/width (square thumbs)
displayExifInfo bool false Display Exif info in caption
disableCache bool false Enable or disable cache
showShareLink boll false Show share link for thumb, full, markdown link (thumb + link to full)

Notes

If you change the thumbsize, thumbnails are not re-create. If the difference between older and newer size are small, I think you don't need regen all thumb. But if you prefer, you can delete cache/thumbs/* for force re-create thumbnails.

If you change any parameter, the cache file (html file) are delete and recreate.

Ideas

Original Idea by SebSauvage in french.

If you have NextCloud installed on your server, you can use it to manage your NanoGal gallery. It's very convenient for uploading images, renaming them, moving them, and organizing them into folders.

In the NextCloud settings: Settings > Administration > External Storage:

Option Description
Folder Name The name of the folder as it will appear in NextCloud.
External Storage Choose Local
Authentication None
Configuration Enter the path where your images are stored (the path to the NanoGal /photos directory)

Don't forget to disable encrypt for this folder.

More info about external storage in Nextcloud admin documentation.

The same idea can be use with another sync tool of course.


License

NanoGal is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE v3 (https://gnu.org/licenses/agpl-3.0.txt).

Icons :

Origin