Skip to content
/ photo-stream Public template

Super simple self hosted photo stream, powered by Cecil.

License

Notifications You must be signed in to change notification settings

Cecilapp/photo-stream

Repository files navigation

Photo Stream

Photo Stream is a self hosted static website for your photos, with really goods loading performances, powered by Cecil.

Screenshot

Demo: https://photo-stream-demo.cecil.app (hosted by Netlify and fed by Unsplash).

Features

  • Responsives images & mobile friendly
  • Files optimized and lazy loaded
  • Rich content caption
  • Image placeholder (low quality or dominant color)
  • Keyboard navigation
  • Direct download button
  • Simple workflow: drag & drop and commit

Install

PHP 8.1+ and Cecil 8.0+ are required.

First you should clone or download the Git repository, or run composer create-project cecil/photo-stream myproject.

The repository come with a default version of cecil.phar, so you can you use it immediately, or you can download the latest release throught the following command:

curl -LO https://cecil.app/cecil.phar

Usage

Add photos

Just drop image files in the static/photos directory.

Add details (optional)

For each photo you can add a title, an alternative text and the author name/URL, through the data/photos.yaml file:

<file basename>: # without file extension
  title: <photo title>
  alt: <alternative text>
  author:
    name: <author name>
    url: <author URL>

Configuration

You can define gallery title, baseurl, author, colors, thumbnails size, sort, etc. by editing config.yml file:

photo:
  style:
    color:
      background: black
      text: white
    img:
      height: 300px
      margin: 2px
  sort: asc
  size:
    thumbnail: 640
    full: 1920
  placeholder: image # image, color or false

Preview locally

You can double-click on the command shortcut:

  • preview.command on macOS
  • preview.cmd on Windows

Or run the following command in your terminal:

php cecil.phar serve -v --open

Localize

You can easily localize Photo Stream in your language.

Add languages

config.yml:

language: <language_code> # e.g.: fr
languages:
  - code: <language_code>
    locale: <locale_code> # e.g.: fr_FR

Add translations

In the translations directory, copy translations.en.yaml to translations.<language_code>.yaml then translate each key.

Deploy

First build the website:

php cecil.phar build -v

Then copy generated files in _site to your Web server.

Or use a provider:

Deploy to Netlify Deploy with Vercel

License

Photo Stream is a free software distributed under the terms of the MIT license.

PhotoSwipe is under the terms of the MIT license.

Photos from the demo are under the Unsplash license.

© Arnaud Ligny