Configuration

The files organisation is quite simple:

  • in the root directory of your project you need a settings.yaml file that contains the title and subtitle of your gallery
  • for each gallery you need a folder that also contains a settings.yaml file that describes how to display the content in your gallery
  • and you put the pictures of the gallery inside the gallery folder
  • or other directory, in the gallery became an index (so pictures won’t be display, only cover of child gallery)

Root settings.yaml

The root settings.yaml should contain 2 keys: one for the title of your website and one for the subtitle. It should look like that:

title: My exploration of the outside world
sub_title: it's a scary place, don't go there

It can also optionally contain a menu and global settings.

Include Files

You can include files with the include option. These files will be copied as is from the root of your project directory to the build directory. Example:

title: My photos
sub_title: wow
include:
    - robots.txt
    - .well-known/brave-rewards-verification.txt

Global settings

Global settings can be put in your root settings.yaml, under the settings key.

GM

Currently a gm setting key allows to customize the default GraphicsMagick’s behaviour. It looks like:

title: Gallery
settings:
  gm:
    quality: 75
    auto-orient: True
    strip: True
    resize: 50%
    progressive: True

The meaning of the currently supported GraphicsMagick’s settings is as follows:

  • quality allows to customize the compression level of thumbnails (between 0 and 100)
  • auto-orient changes the orientation of pictures so they are upright (based on corresponding EXIF tags if present)
  • strip removes all profiles and text attributes from the image (good for privacy, slightly reduce file size)
  • resize can be used to resize the full-size version of pictures. By default, input image size is preserved
  • progressive converts classic baseline JPEG files to progressive JPEG, and interlaces PNG/GIF files (improves the page loading impression, slightly reduces file size)

Any GraphicsMagick setting can be customized on a per-image basis (either cover or image, see below).

Video converter

Prosopopée can use ffmpeg or libav and each can be configured if needed:

title: Gallery
settings:
  ffmpeg:
    binary: "ffmpeg"
    loglevel: "error"
    format: "webm"
    resolution: "1280x720"
    vbitrate: "3900k"
    abitrate: "100k"
    audio: "libvorbis"
    video: "libvpx"
    other: "-qmin 10 -qmax 42 -maxrate 500k -bufsize 1500k"

The meaning of the currently supported FFMEG or LIBAV’s settings is as follows :

  • binary sets the binary to use to convert the video (ffmpeg or avconv)
  • loglevel sets the logging level used by the library
  • format forces input or output file format
  • resolution sets frame size
  • vbitrate sets video bitrate
  • abitrate sets audio bitrate
  • audio sets the audio codec
  • video sets the video codec
  • extension sets the extension of output file
  • other sets different options if you need more

example for MP4:

title: Gallery
settings:
  ffmpeg:
    binary: "ffmpeg"
    format: "mp4"
    audio: "acc"
    video: "libx264"
    extension: mp4

Light Mode

To enable the light mode:

title: Gallery
settings:
  light_mode: true

With this option Prospopee makes a subdirectory with light version of your gallery. This light gallery uses less JS, pictures in low size, etc.

To access this light gallery, add /light at the end of the URL of the gallery.

If you want only light theme, see themes.

Night Mode

To enable the night mode, which is only available for exposure theme (default theme):

title: Gallery
settings:
  night_mode: true

After that you will be able to choose between dark theme or light theme when visiting the website.

Themes

Prosopopée supports different themes. As for now, only 3 themes are available:

  • the default one called “exposure”
  • “material” based on materialcss
  • light

To specify the theme, add the “theme” key in your “settings” key or your root settings.yaml. For example:

title: My exploration of the outside world
sub_title: it's a scary place, don't go there
settings:
  theme: material

Licence

By default Prosopopée uses CC-BY-SA for all the content. If you want to use another licence, you need to add a “licence” key in root settings.yaml. For example:

title: Gallery
licence:
  name: WTFPL
  url: "http://www.wtfpl.net/txt/copying/"

Share

If you want to enable content sharing on social networks, add the “share” key in root settings.yaml. For example:

title: Gallery
share: true
url: "http://prosopopee.com"

By default you can share on facebook, twitter, pinterest, google+.

RSS

To activate the RSS feed you need to add the “rss” key in root settings.yaml:

title: Gallery
rss: true
url: "http://prosopopee.com"

Open Graph Meta

To activate the Open Graph Meta you need to add the “og” key in root settings.yaml:

title: Sur les chemins
url: "http://prosopopee.com"
settings:
  og: true

You can also specify a description and a language (“lang” key) for a gallery.

For more information about Open Graph http://ogp.me/

Deployment

If you want to configure the deployment of your website with rsync:

title: Gallery
settings:
  deploy:
    ssh: true (optional, for ssh)
    username: username (optional, for ssh)
    hostname: server.com (optional, for ssh)
    dest: /var/www/website/build/
    others: --delete-after (optional)

Reverse order

Normally Prosopopee builds the gallery index in anti-chronological. If you want to have it in chronological order, use the “reverse” key:

settings:
  reverse: true

This option can also be used in a gallery settings.yaml if you use multi-level galleries:

title: Multi level gallery
reverse: true

Password access

If you want to protect all the website by password:

title: Gallery
password: my_super_password

Date locale

By default, Prosopopee uses locale from LC_TIME environment variable to generate human-readable date.

For example, if your LC_TIME equals to en_US.utf8, then you get “23 August 2020” as date on the gallery tile. If you are using ru_RU.utf8, then you get “23 Августа 2020”.

If you want to use non-based on LC_TIME locale for human-readable dates on gallery, use the “date_locale” key:

settings:
  date_locale: ru_RU

Advanced settings

Image handling

Images go into the cover or image keys. Each image individual processing settings can be customized to override the default GraphicsMagick settings defined (or not) in the root settings.yaml.

This is done by putting the image path into a name key, and adding specific processing settings afterwards.

For example, you can replace:

image: image1.jpg

by:

image:
  name: image1.jpg
  quality: 90
  strip: False
  auto-orient: False

Password access

You can restrict access to a gallery with a password:

title: Gallery title
sub_title: Gallery sub-title
password: my_super_password