Starsky Documentation

website·Indexed 31 days ago

https://docs.qdraw.nl

Starsky is a social media publishing workflow for pictures designed for simplicity and ease of use. It features photo uploading with real-time updates, synchronization, geolocation management, IPTC and XMP metadata support, and timezone shifting. The software can be installed via Docker on various operating systems, including FreeBSD, Raspberry Pi, and NAS devices, and offers native desktop clients for macOS and Windows.

Tokens
79.5K
Snippets
361
Records
690
Agent score
59%

What's inside Starsky

  1. Overview of Starsky Project Components

    Starsky is a database photo index and import system consisting of several interconnected components:

    • Core Applications:
      • starsky: The main Web API application and interface.
      • clientapp: The React-based front-end application.
      • Starsky Desktop: A desktop application available for Windows and macOS.
    • Command Line Interfaces (CLIs):
      • starskyImporterCli: Handles data import.
      • starskyGeoCli: Manages GPX synchronization and reverse geo-tagging.
      • starskyWebHtmlCli: Publishes web images to a content package.
      • starskyWebFtpCli: Copies content packages to an FTP service.
      • starskyAdminCli: Manages user accounts.
      • starskySynchronizeCli: Verifies if disk changes are updated in the database.
      • starskyThumbnailCli: Generates smaller images to improve web performance.
    • Supporting Tools:
      • starsky-tools: Node.js tools for add-on tasks.
      • starskyTest: MSTest unit tests for the .NET business logic.
  2. Overview of Starsky macOS architecture

    Starsky for macOS is a native Swift and AppKit application located in the mac/ folder. It acts as a desktop shell for the Starsky web interface using WKWebView. The application manages the native lifecycle, windows, menus, and settings, while the core business logic resides in a .NET backend (which can be bundled locally or hosted on a remote server).
  3. Overview of OpenTelemetry for observability

    OpenTelemetry provides a standardized framework for cloud-native observability, focusing on two primary pillars:

    • Distributed Tracing: Tracks requests across multiple services to identify bottlenecks and dependencies in microservices architectures.
    • Metrics Collection: Captures quantitative data (latency, error rates, resource utilization) for proactive monitoring and capacity planning. It integrates with backends such as Prometheus, Jaeger, and Grafana.
  4. Overview of Starsky Project Components

    Starsky consists of a suite of tools for database photo indexing and import. The ecosystem includes:

    • starsky: The core Web API application and interface.
    • clientapp: A React-based front-end application.
    • starskyImporterCli: Command line interface for importing.
    • starskyGeoCli: Tool for GPX sync and reverse geo-tagging.
    • starskyWebHtmlCli: Publishes web images to a content package.
    • starskyWebFtpCli: Copies content packages to an FTP service.
    • starskyAdminCli: Manages user accounts.
    • starskySynchronizeCli: Synchronizes disk changes with the database.
    • starskyThumbnailCli: Generates smaller images for web performance.
    • Starsky Business Logic: .NET business logic libraries.
    • starsky-tools: Node.js add-on tools.
    • Starsky Desktop: A standalone desktop application for Windows and macOS.
  5. Overview of Starsky project components

    The Starsky ecosystem consists of several interconnected components for database photo indexing and import:

    • starsky: The core Web API application and interface.
    • clientapp: A React-based front-end application.
    • starskyImporterCli: Command line interface for imports.
    • starskyGeoCli: Handles GPX sync and reverse geo-tagging.
    • starskyWebHtmlCli: Publishes web images to a content package.
    • starskyWebFtpCli: Copies content packages to an FTP service.
    • starskyAdminCli: Manages user accounts.
    • starskySynchronizeCli: Verifies if disk changes are updated in the database.
    • starskyThumbnailCli: Generates smaller images to improve web performance.
    • Starsky Business Logic: .NET libraries containing the core business logic.
    • starskyTest: MSTest unit tests for the C# application.
    • starsky-tools: Node.js tools for add-on tasks.
    • Starsky Desktop: A desktop application available for Windows and macOS.
  6. Overview of Starsky Project Components

    Starsky consists of a database photo index and import index project with various specialized components:

    • starsky: Web API application and interface.
    • clientapp: React front-end application.
    • starskyImporterCli: Command line interface for imports.
    • starskyMountWatcherCli: Monitors SD cards.
    • starskyDemoSeedCli: Generates demo seed data.
    • starskyDependenciesDownloadCli: Ensures external dependencies are installed.
    • starskyGeoCli: Handles GPX sync and reverse geo-tagging.
    • starskyWebHtmlCli: Publishes web images to a content package.
    • starskyWebFtpCli: Copies content packages to FTP services.
    • starskyAdminCli: Manages user accounts.
    • starskySynchronizeCli: Syncs disk changes to the database.
    • starskyThumbnailCli: Generates smaller images for web performance.
    • Starsky Business Logic: .NET business logic libraries.
    • starskyTest: .NET MSTest unit tests.
  7. Overview of Starsky Project Ecosystem

    Starsky consists of a suite of tools for managing photo indexes and imports. Key components include:

    • starsky: Web API application and interface.
    • clientapp: React front-end application.
    • starskyImporterCli: Import command line interface.
    • starskyMountWatcherCli: SD card watcher.
    • starskyGeoCli: GPX sync and reverse geo-tagging.
    • starskyWebHtmlCli: Publishes web images to a content package.
    • starskyWebFtpCli: Copies content packages to FTP services.
    • starskyAdminCli: User account management.
    • starskyThumbnailCli: Generates smaller images for web performance.
    • starskySynchronizeCli: Syncs disk changes to the database.
  8. Overview of Starsky Project Components

    Starsky is a database photo index and import system consisting of several components:

    • starsky: The core web API application and interface.
    • clientapp: A React-based front-end application.
    • starskyImporterCli: Command line interface for importing photos.
    • starskyMountWatcherCli: Background service to watch for SD card mounts.
    • starskyGeoCli: Handles GPX synchronization and reverse geo-tagging.
    • starskyWebHtmlCli & starskyWebFtpCli: Tools for publishing web images to content packages and FTP services.
    • starskyAdminCli: Management tool for user accounts.
    • starskySynchronizeCli: Verifies if disk changes are updated in the database.
    • starskyThumbnailCli: Generates smaller images to improve web performance.
    • starskyDependenciesDownloadCli: Ensures external dependencies are installed.
    • starskyDemoSeedCli: Provides demo seed data.
    • Starsky Business Logic: .NET libraries containing the core business logic.
    • Starsky Desktop: A standalone desktop application for Windows and macOS.
  9. Overview of Starsky Project Components

    The Starsky ecosystem consists of several interconnected components for managing photo indexes, imports, and web publishing:

    • Core Application: starsky (Web API and interface) with a React-based client app front-end.
    • CLI Tools:
      • starskyImporterCli: Handles data import.
      • starskyGeoCli: Manages GPX synchronization and reverse geotagging.
      • starskyWebHtmlCli: Publishes web images to a content package.
      • starskyWebFtpCli: Copies content packages to FTP services.
      • starskyAdminCli: Manages user accounts.
      • starskySynchronizeCli: Synchronizes disk changes with the database.
      • starskyThumbnailCli: Generates smaller images to improve web performance.
    • Development & Logic: Starsky Business Logic (.NET internal libraries) and starskyTest (MSTest unit tests).
    • Additional Tooling: starsky-tools (Node.js add-on tasks).
    • Desktop Application: Starsky Desktop (Available for Windows and macOS).
  10. Overview of Snyk for Static Application Security Testing

    Snyk is a security platform used to identify, prioritize, and mitigate vulnerabilities within open source dependencies. It integrates into the development workflow to provide actionable insights and remediation guidance across various programming languages, offering continuous monitoring to ensure software robustness throughout the development lifecycle.
  11. Overview of the Starsky thumbnail generation pipeline

    The thumbnail generation pipeline is designed for efficiency and quality across various source types (images, RAW files, and videos) using the following logic:

    • Preflight: Checks for existing thumbnail sizes before processing to avoid redundant work.
    • Largest-first Strategy: Generates the largest requested thumbnail from the original source first, then derives all smaller sizes from that large thumbnail. This reduces CPU usage and avoids repeated decoding of the original file.
    • Pluggable Generators: Uses a ThumbnailGeneratorFactory to select a specialized generator based on the file extension and capabilities.
    • Composite Strategy: For certain formats (like JPEGs), the factory may attempt multiple generators in a specific order (e.g., Embedded RAW preview → Native preview → ImageSharp) to find the fastest or highest quality method.
    • Hash-based Storage: Thumbnails are stored and retrieved using a file-hash based naming scheme.
    • Result Tracking: Each target size produces a GenerationResultModel containing success/failure status, warnings, and messages.
  12. Overview of Starsky Project Components

    The Starsky ecosystem consists of several specialized tools and applications for photo indexing, importing, and management:

    • starsky: Web API application and interface.
    • clientapp: React front-end application.
    • starskyImporterCli: Command line interface for importing.
    • starskyMountWatcherCli: Tool to watch SD cards.
    • starskyDemoSeedCli: Generates demo seed data.
    • starskyDependenciesDownloadCli: Ensures external dependencies are installed.
    • starskyGeoCli: Handles GPX sync and reverse geo-tagging.
    • starskyWebHtmlCli: Publishes web images to a content package.
    • starskyWebFtpCli: Copies content packages to an FTP service.
    • starskyAdminCli: Manages user accounts.
    • starskySynchronizeCli: Verifies if disk changes are updated in the database.
    • starskyThumbnailCli: Generates smaller images for web performance.
    • Starsky Business Logic: .NET business logic libraries.
    • starskyTest: .NET MSTest unit tests.
    • starsky-tools: Node.js add-on task tools.
    • Starsky Desktop: Desktop application for Windows and macOS.