# ── Global Site Settings ────────────────────────────────────────── # This file controls the visual identity, global behavior, and legal info. # Structure is separated from gallery.yaml (album IDs) for clarity. # Public site title and subtitle (overrides .env if set) title: "My Portfolio" subtitle: "A visual journal" # Interface language of the visitor-facing site: "en" or "de". # Any other value still sets and date formatting, but the # interface stays English. The admin panel is always English. lang: "en" # ── SEO & Metadata ─────────────────────────────────────────────── # Optional: Overrides global title/subtitle for search engines and social cards # seo: # title: "My Portfolio | Photography" # description: "A curated selection of my best photography work." # titleTemplate: "%s | My Portfolio" # Template for subpages (%s is replaced with subpage/album title) # noIndex: false # Set to true to hide from search engines # noFollow: false # Set to true to prevent search engines from following links # ── Site password (optional) ───────────────────────────────────── # Puts the WHOLE public site behind one password — useful while a portfolio # is still being built, or for a folio only ever shown to clients. # Log in once and the server log prints a scrypt: hash to paste back here. # The SITE_PASSWORD environment variable overrides this value. # /admin keeps its own password and is never behind this gate. # sitePassword: "scrypt:..." # What a first-time visitor sees: dark (default), light, or auto to follow # their operating system. Their own choice from the header toggle overrides it. mode: dark # Show the EXIF summary overlay on photo grid hover exifOnHover: true # Which EXIF groups the site may publish at all — the grid overlay, the # lightbox info panel and the album header all follow this. # caption is the description written in Immich; turn it off if you use that # field for private notes. # exif: # camera: true # body, lens, focal length # settings: true # aperture, shutter speed, ISO # location: true # city and country # caption: true # the Immich description # Enable the interactive world map view (/map) map: true # Enable smooth page transitions between routes transitions: true # Show the floating back-to-top arrow on long pages scrollToTop: true # Client proofing & favorite photo selections # proofing: # enabled: true # allowMailto: true # Watermark overlay on the lightbox. opacity is a fraction: 0.5 = 50%. # watermark: # enabled: true # text: "© Your Name" # opacity: 0.5 # position: "bottom-right" # bottom-right | bottom-left | center # ── Theme configuration ────────────────────────────────────────── # Presets: studio-modern (default), studio, minimal, editorial, classic, # noir, monograph theme: preset: "studio-modern" # accent: "#e60012" # photoFrame: "passepartout" # none, passepartout, shadow # grain: true # heroStyle: "split" # split, fullbleed, minimal, stacked, typographic, mosaic, cover (EXPERIMENTAL) # Note: "mosaic" needs at least 3 hero images in gallery.yaml (optimal: 6) # ── Grid configuration ─────────────────────────────────────────── grid: columns: 3 gap: 12 aspectRatio: "1" # "1" (square), "3/2", "2/3", "16/9", "auto" layout: "masonry" # masonry, uniform, showcase, filmstrip, editorial-flow, justified (EXPERIMENTAL) # ── Navigation ──────────────────────────────────────────────────── # EXPERIMENTAL: external links appended to the header navigation. # Only http(s) URLs are allowed; they open in a new tab. # navLinks: # - label: "Shop" # url: "https://shop.example.com" # - label: "Instagram" # url: "https://instagram.com/your-handle" # ── Footer & Social ────────────────────────────────────────────── footer: name: "My Photography" instagram: "https://instagram.com/your-handle" email: "hello@example.com" website: "https://example.com" # ── Legal / Impressum (German Law compliance) ──────────────────── # If enabled: true, a link to /impressum will appear in the footer. legal: enabled: false name: "Your Full Name" address: "Street and House Number" zipCity: "ZIP Code and City" country: "Germany" email: "legal@example.com" phone: "+49 123 456789" # taxId: "DE123456789" # vatId: "12/345/67890" extraInfo: "Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV: Max Mustermann"