Sign inSign up

fabiodalez/cimaise

By fabiodalez

β€’Updated 27 days ago

Minimalist photography portfolio CMS β€” PHP 8.3 + Apache. SQLite/MySQL. Multi-arch.

Image
0

1.9K

fabiodalez/cimaise repository overview

License PHP Slim SQLite MySQL Multi--arch

⁠Cimaise β€” Photography Portfolio CMS

A modern, minimalist CMS built for photographers. Elegant galleries, automatic AVIF/WebP image optimization, film-photography metadata, built-in analytics and SEO β€” self-hosted, open source, zero external services.

Cimaise home

β πŸš€ Quick start

docker run -d --name cimaise -p 8080:80 \
  -v cimaise_storage:/var/www/html/storage \
  -v cimaise_database:/var/www/html/database \
  -v cimaise_media:/var/www/html/public/media \
  fabiodalez/cimaise:latest

Open http://localhost:8080⁠ and complete the web installer (SQLite needs zero configuration). That's it.

⁠Docker Compose
services:
  cimaise:
    image: fabiodalez/cimaise:latest
    container_name: cimaise
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - cimaise_storage:/var/www/html/storage
      - cimaise_database:/var/www/html/database
      - cimaise_media:/var/www/html/public/media

volumes:
  cimaise_storage:
  cimaise_database:
  cimaise_media:

Prefer MySQL? The repo's docker-compose.yml⁠ ships an optional MySQL 8.4 profile: docker compose --profile mysql up -d.

⁠✨ What you get

  • 12 home templates + 6 gallery layouts β€” masonry, magazine, parallax, filmstrip, bento…
  • Automatic image pipeline β€” AVIF, WebP and JPEG variants in 5 responsive sizes, LQIP placeholders, EXIF extraction
  • Film photography ready β€” cameras, lenses, film stocks, developers and labs as first-class metadata
  • Protected galleries β€” password-protected and NSFW albums with server-side gating
  • Built-in analytics, SEO structured data, PWA β€” no third-party services, GDPR-friendly
  • Custom templates with AI β€” bundled LLM guides let you generate new gallery layouts with your favourite assistant
GalleryLightbox
AdminDark mode

β πŸ“¦ Image details

  • Base: php:8.3-apache (Debian) β€” multi-arch linux/amd64 + linux/arm64
  • Bundled: GD with AVIF/WebP, Imagick (AVIF/HEIC), pdo_sqlite, pdo_mysql, exif, intl, zip, OPcache
  • Web root: public/ only; the app's .htaccess security rules are fully honoured
⁠Persistent volumes
Container pathHolds
/var/www/html/storage.env, originals, protected media, cache, logs
/var/www/html/databaseSQLite database
/var/www/html/public/mediaprocessed image variants

Mount all three β€” your data then survives every upgrade.

⁠Tags
TagMeaning
latestlatest stable release
1.4latest patch of the 1.4 line
1.4.ximmutable, specific release
⁠Environment
VariableDefaultPurpose
APP_DEBUGfalsekeep false in production
APP_TIMEZONEUTCserver timezone
TRUSTED_PROXIES(empty)CIDRs of your reverse proxy for correct client IPs/HTTPS

⁠⬆️ Upgrading

docker compose pull && docker compose up -d

Volumes keep your data; the in-app updater is not used in Docker β€” new releases are new image tags, published automatically from CI for both architectures.

Cimaise (French): the picture rail in a gallery on which artworks are hung.

Tag summary

Content type

Image

Digest

sha256:be689cd49…

Size

248.1 MB

Last updated

27 days ago

docker pull fabiodalez/cimaise