logologo
HomeGallery
  • Why?
  • Docs
  • Demo
  • Download
    Start
    Install
    General
    docker-compose
    docker
    Binary
    App Bundle
    Generic Bundle
    Source
    Azure
    Configuration
    CLI
    help
    run
    export meta
    export static
    fetch
    database
    storage
    plugin
    cast
    Webapp
    Search
    FAQ
    API server
    Recipes
    Use Nginx proxy with subpath
    Use Traefik proxy with subpath
    Use IIS Proxy With a Sub-Path
    Internals
    Workflow
    Building Blocks
    Data Structures
    Design Decisions
    Development
    Plugin
    Extractor Plugin
    Database Mapper Plugin
    Query Plugin
    Previous pageWorkflowNext pageData Structures

    #Building Blocks

    #Indexer

    indexer

    Responsibilities:

    • Create and update a file index from a diretory to detect file changes quickly such as new, deleted files and moved files
    • Create unique file identifier for each file (SHA1 sum)

    For the first time the creation of a file index can be time consuming due the calculation of SHA1 checksum where each byte of a file needs to be processed. Depending on the total file size this process can take hours.

    On file index update known files do not need to be updated. Known files are detected by file path and inode. Other strategies are supported, too.

    Note

    The file index is used to have a filtered view on your files of your source directories. The gallery handles only files which are listed in the file index. To exclude files or folders in the gallery it is sufficient to add exclude patterns on the source directories.

    #Extractor

    extractor

    Responsibilities:

    • Calculate preview images and videos based on the file index and the uniq file identifier
    • Extract meta data original files, preview data or other meta data
    • Store all data to the storage directory

    The work of the extractor is explorative and the raw output data from extractors is stored.

    The calculation of preview files and extracting meta data is time consuming. The calculation of preview videos takes also long. Depending on image and video count and used PC this process can take weeks for the intial run. Updates compute only new media (detected by the file index).

    #Database Builder

    builder

    Responsibilities:

    • Create a database from preview files extracted meta data for the WebApp

    The database builder prepares the data for the (mobile) browser and collects the important data for the presentational WebApp

    #Events

    User inputs such as add or remove tags are handled and stored as events. These events are applied on the database entries.

    #Server

    server

    Responsibilities:

    • Serve the WebApp
    • Serve the preview images and videos to the WebApp
    • Handle user events like add or remove tags

    Since the database is loaded into the browser, the server acts mainly as a static webserver. The main logic such as filtering and sorting is executed in the WebApp

    #Export Meta Data

    meta

    Responsibilities:

    • Export meta data to XMP sidecar files

    #Fetch

    fetch

    Responsibilities:

    • Fetch a (subset) of a remote gallery and merge it into the local gallery

    #Export Static Gallery

    static

    Responsibilities:

    • Export static web site from a subset
    • Static export requires only an HTTP server such Apache2 or Nginx