Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Proofing Gallery

Quality Security Documentation

Proofing Gallery is a native Nextcloud app for branded client delivery and collaborative photo proofing. A gallery either references an existing Nextcloud folder or assembles an ordered virtual collection from several owned galleries. Originals remain in Files while the app adds a customizable public presentation, guest feedback, selections, secure downloads, and an upload inbox.

Included

  • presentation and collaborative proofing modes
  • standard Nextcloud public-link protection, password, and expiry
  • responsive image/video gallery with nested folders, previews, lightbox, slideshow, zoom, pan, and byte-range video streaming
  • bounded FFmpeg background transcoding for camera formats, with browser-ready H.264/AAC MP4 derivatives, generated posters, and administrator controls
  • optional owner search over local filenames and metadata, plus scene search through an explicitly enabled HTTPS vision provider
  • optional HTTPS Live Push ingestion through upload-only, gallery-scoped credentials that can be rotated or revoked independently; camera-protocol translation is deliberately left to an operator-managed gateway
  • administrator-approved custom gallery domains with DNS ownership and HTTPS verification, immediate revocation, and canonical link generation
  • logo, hero image/focal point, accent, typography, welcome copy, filenames, and server-rendered preview watermarks
  • likes, color states, comments, image annotations, named selections, and CSV/plain-text exports
  • individual downloads, selected ZIP files, and printable contact sheets
  • resumable guest uploads to a hidden moderation inbox
  • user/group gallery managers, activity filters, and opt-in event digests for owners and individual managers
  • reusable gallery and invitation templates plus explicit German/English public-gallery and mail delivery
  • ordered, copy-free collections spanning the owner's folder galleries, with unavailable-source diagnostics and conflict-safe editing
  • bounded EXIF/IPTC indexing through Nextcloud FilesMetadata, with owner-side capture date, camera, lens, keyword, and rating filters
  • per-gallery public metadata disclosure that starts with no shared fields and permanently excludes GPS, private keywords, ratings, and workflow labels
  • direct Adobe-compatible <basename>.xmp editing for titles, descriptions, creators, copyright, keywords, ratings, and labels while originals stay intact
  • client-selection round trips into standard XMP/Lightroom fields and a versioned Proofing Gallery namespace for workflow fidelity
  • recursive, cursor-paged galleries with folder/type grouping and bounded virtual grids for large photographic deliveries
  • a keyboard-first owner culling desk with ratings, picks/rejects, color labels, conflict-aware XMP synchronization, batch undo, and cross-device saved views
  • multiple independently scoped public links per gallery, each with its own start folder, presentation mode, language, download and feedback policy
  • private per-client star ratings and decisions, owner-side aggregates, and an explicit preview-before-promotion workflow that never writes XMP implicitly
  • a field-selectable, privacy-bounded UTF-8 CSV export composer with preview and clipboard support, plus configurable resource-aware slideshows

Local development

Requirements: Docker with Compose, Node.js 24.11 or newer, npm 11, PHP 8.1 or newer, and Composer 2.

cp .env.example .env
nvm use
npm ci
composer install
make dev-up

Nextcloud is available at http://localhost:8080 and Mailpit at http://localhost:8026. The credentials in .env.example are local-only.

make build
make docs
make lint
make test
npm run test:e2e
make test-compat
make occ CMD="app:list"
make dev-logs
make dev-down

make dev-reset deletes only this Compose project's containers and volumes, including all local development data, and requires CONFIRM_RESET=yes.

Packaging

make appstore
make verify-package

The reproducible unsigned artifact is written to build/artifacts/appstore/proofing_gallery.tar.gz. Signing credentials are deliberately not stored in this repository. Maintainers should follow the App Store publishing runbook for certificate registration, signed package verification, and protected release automation.

Install a GitHub release

Download proofing_gallery.tar.gz and SHA256SUMS from the matching GitHub release. Verify the checksum and, when the GitHub CLI is available, the artifact attestation before extracting the archive:

sha256sum --check SHA256SUMS
gh attestation verify proofing_gallery.tar.gz --repo soerennb/nextcloud-proofing_gallery
tar -xzf proofing_gallery.tar.gz -C /path/to/nextcloud/custom_apps
sudo -u www-data php /path/to/nextcloud/occ app:enable proofing_gallery

Starting with the first App Store release, the protected release workflow publishes the reproducible, Nextcloud-signed package to both GitHub and the Nextcloud App Store.

Documentation

The user guide is available through Help in the app. The administrator guide is embedded in the Proofing Gallery administration settings. Both are built from the same Markdown files as GitHub Pages and work without internet access.

Contributing and support

Use GitHub Discussions for questions and the structured issue forms for bugs and features. Read CONTRIBUTING.md before submitting changes. Suspected vulnerabilities must be reported privately as described in SECURITY.md, never in a public issue.

Compatibility

The automated container matrix covers Nextcloud 31–34 with SQLite, MariaDB, and PostgreSQL. PHP 8.1–8.6 is declared; CI runs the supported baseline and current PHP versions. Browser E2E coverage uses Chromium and includes Axe accessibility and desktop/mobile visual regression checks.

License

AGPL-3.0-or-later. See LICENSE.

About

Branded client galleries and collaborative photo proofing for Nextcloud

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages