selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
pellicola logo

Self-host pellicola

1.0

Self-hosted photo publishing web app

ReleaseOpen SourceGPL-3.0
Updatedlast year
LanguagePHP
Setup difficultyEasy
MobileResponsive
Stars
184
Port
8000 (PHP built-in server)
Requires
PHP, PHP EXIF extension, PHP GD extension
Install with Docker
pellicola screenshot 1

What is pellicola?

Pellicola is a lightweight PHP application for publishing photo collections online. It runs without a database on a web server with PHP 7+ and the GD and EXIF extensions. Capabilities include automatic pagination, search by filename and description, EXIF data display (aperture, focal length, shutter speed, ISO), optional OpenStreetMap integration for geotagged photos, multiple albums via subdirectories, RAW file download links, RSS feeds, statistics, random photo full-screen mode, keyboard access keys, and multi-language support. Deployment options include Docker, docker-compose with automatic HTTPS via Caddy, or a shell script on Debian-based systems. The application has no external dependencies and collects no user data.

Should you self-host pellicola?

pellicola scores 45/100 on selfhost.directory (how scoring works) and ranks #16 of 19 in Photo Galleries. It has 184 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. It is GPL-3.0-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is Immich (93/100, 117 509 stars). It scores higher overall, so compare the two before you pick. See pellicola vs Immich side by side.

Features

  • Album descriptions
  • EXIF data display
  • GDPR compliant
  • Keyboard access keys
  • Map IntegrationRequires SHOW_MAP config option enabled
  • Multi-language Support
  • Multiple albums
  • Pagination
  • Photo descriptions
  • Photo publishing
  • Random photo full-screen
  • RAW file downloadsRequires DOWNLOAD config option enabled
  • RSS Feed
  • Search
  • Statistics

pellicola README

How to install pellicola

Install pellicola with Docker

Docker

git clone https://github.com/dmpop/pellicola.git cd pellicola

Edit config.php and set base_url

docker build -t pellicola . docker run -d --rm -p 80:8000 --name=pellicola -v /path/to/photos:/usr/src/pellicola/photos:rw pellicola

Builds image locally from Dockerfile

How to configure pellicola

  • AUTO_REFRESH180Interval in seconds between random photo page refreshes.

    Interval in seconds between random photo page refreshes.

  • BASE_URLhttps://domain.tldDomain name or IP address of the server Pellicola runs on. Include the full path if necessary.

    Domain name or IP address of the server Pellicola runs on. Include the full path if necessary.

  • DELETE_PASSWORD$2y$12$7U709KLbqR1vdGuWAfcvZ.SKVk46OJE4qyfcUcAH0oXcoRrFiAIc6Hashed password to delete photos.

    Hashed password to delete photos.

  • DOWNLOADfalseToggle photo download.

    Toggle photo download.

    values: true, false

  • FOOTERThis is PellicolaFooter text.

    Footer text.

  • IMG_FORMATSjpg,jpeg,JPG,JPEGFile types Pellicola displays.

    File types Pellicola displays.

  • LINKStrueEnable links in the footer.

    Enable links in the footer.

    values: true, false

  • OPENSTREETMAPtrueIf true, generates OpenStreetMap URL for geotagged photos; otherwise generates geo URI.

    If true, generates OpenStreetMap URL for geotagged photos; otherwise generates geo URI.

    values: true, false

  • PER_PAGE12Number of images per page for pagination.

    Number of images per page for pagination.

  • RAW_FORMATSARW,arw,NEF,nef,ORF,orf,DNG,dngSupported RAW formats.

    Supported RAW formats.

  • REVERSED_SORTtrueSet to true to show items in newest to oldest order.

    Set to true to show items in newest to oldest order.

    values: true, false

  • ROOT_PHOTO_DIRphotosDirectory for storing photos.

    Directory for storing photos.

  • RSS_LIMIT31Show only items in the RSS feed newer than specified number of days.

    Show only items in the RSS feed newer than specified number of days.

  • SHOW_MAPfalseIf set to true, shows a Leaflet-based map marking the position of the geotagged photo.

    If set to true, shows a Leaflet-based map marking the position of the geotagged photo.

    values: true, false

  • STATS_DIRstatsDirectory for storing downloads and views stats.

    Directory for storing downloads and views stats.

  • SUBTITLEResponsive open-source photo gridTagline displayed under the title.

    Tagline displayed under the title.

  • TIM_QUALITY100Quality of generated thumbnails.

    Quality of generated thumbnails.

  • TIMS_DIRphotos/.tims/Directory for storing thumbnails.

    Directory for storing thumbnails.

  • TIM_SIZE1200Thumbnail size.

    Thumbnail size.

  • TITLEPellicolaName of the Pellicola instance.

    Name of the Pellicola instance.

More in Photo Galleries

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…