# immich | Immich | Knowledge Base | Instagit

High performance self-hosted photo and video management solution.

GitHub Stars: 93.7k

Repository: https://github.com/immich-app/immich

---

## Articles

### [Debugging Strategies for Immich Background Job Queue Issues: A Complete Guide](/immich-app/immich/debugging-strategies-immich-background-job-queue)

Solve Immich background job queue issues with this guide. Learn debugging strategies by tracing job flow and monitoring events in job.service.ts and job.repository.ts for efficient troubleshooting.

- Tags: how-to-guide
- Published: 2026-02-27

### [How Immich Ensures Data Integrity and Security via StorageService](/immich-app/immich/immich-data-integrity-security-storage-service)

Discover how Immich ensures data integrity and security with its StorageService. Learn about mount point validation, permission checks, and media path migration for robust data protection.

- Tags: internals
- Published: 2026-02-27

### [Performance Bottlenecks in Immich's AssetService During Large-Scale Uploads and Indexing](/immich-app/immich/performance-bottlenecks-immich-asset-service-uploads)

Discover why Immich's AssetService bottlenecks during large uploads. Learn how sequential processing, N+1 queries, and I/O impact scalability and find solutions.

- Tags: performance
- Published: 2026-02-27

### [How `user.service.ts` Manages User Accounts, Roles, and Permissions in Immich](/immich-app/immich/immich-user-account-role-permission-management)

Discover how Immich user.service.ts manages user accounts, roles, and permissions. Learn about access control, admin restrictions, and self-service profile updates to secure your data.

- Tags: internals
- Published: 2026-02-27

### [How Immich Generates Personalized "On This Day" Memories in `memory.service.ts`](/immich-app/immich/immich-memories-generation-personalization-mechanism)

Discover how Immich generates personalized On This Day memories in memory service. Learn about the daily job, asset querying, and memory record creation.

- Tags: internals
- Published: 2026-02-27

### [How Immich Handles Geospatial Data and Map-Based Querying: A Deep Dive into map.service.ts](/immich-app/immich/immich-geospatial-data-map-querying)

Discover how Immich handles geospatial data and map-based querying via map.service.ts. Learn about its two-layer architecture, PostGIS integration, and optimized querying for map markers and reverse geocoding.

- Tags: deep-dive
- Published: 2026-02-27

### [Immich Archive and Trash Service Implementations: A Deep Dive into Asset Visibility States](/immich-app/immich/service-level-implementation-immich-archive-trash)

Explore Immich's archive and trash features. Understand how visibility states and background jobs manage asset deletion and retrieval with AssetService, TimelineService, and TrashService.

- Tags: deep-dive
- Published: 2026-02-27

### [How Immich Workflows Automate Media Management: Definition, Execution, and Use Cases](/immich-app/immich/immich-workflow-definition-execution-use-cases)

Discover how Immich workflows automate media management. Learn about definition, execution via sandboxed WebAssembly, and practical use cases for seamless media processing.

- Tags: how-to-guide
- Published: 2026-02-27

### [Understanding media.service.ts: Immich's Central Hub for Media Processing and Video Transcoding](/immich-app/immich/role-of-media-service-immich-media-transcoding)

Discover media.service.ts, Immich's central hub for media processing. It handles thumbnail generation, FFmpeg video transcoding, and hardware acceleration for your media library.

- Tags: deep-dive
- Published: 2026-02-27

### [How Immich's asset.service.ts Manages the Complete Asset Lifecycle: Upload, Processing, and Deletion](/immich-app/immich/immich-asset-service-lifecycle-management)

Explore how Immichs asset.service.ts manages the complete asset lifecycle from upload and processing to deletion. Understand client and server-side responsibilities for efficient asset management.

- Tags: internals
- Published: 2026-02-27

### [Immich Maintenance Tasks in maintenance.service.ts: Available Methods and Programmatic Triggers](/immich-app/immich/immich-maintenance-tasks-programmatic-trigger)

Explore Immich maintenance tasks in maintenance.service.ts. Discover seven public methods like startMaintenance startRestoreFlow and detectPriorInstall triggered programmatically via NestJS HTTP or internal events.

- Tags: how-to-guide
- Published: 2026-02-27

### [How Immich Processes and Extracts Metadata (EXIF and OCR) Using metadata.service.ts and ocr.service.ts](/immich-app/immich/immich-metadata-extraction-exif-ocr-processing)

Discover how Immich extracts EXIF metadata and OCR text using MetadataService and OcrService. Learn about background job processing and data persistence for enhanced search and organization.

- Tags: how-to-guide
- Published: 2026-02-27

### [Shared Link Service Architecture in Immich: How Public Links Are Generated and Managed](/immich-app/immich/architecture-immich-public-shared-links)

Explore the two-layer architecture for generating and managing public shared links in Immich. Learn how the web client and NestJS server collaborate for secure link management.

- Tags: architecture
- Published: 2026-02-27

### [How Partner Sharing Relationships Are Managed in Immich: A Deep Dive into `partner.service.ts`](/immich-app/immich/partner-sharing-relationships-immich-permissions)

Explore how Immich manages partner sharing relationships using PartnerService and understand the four permission scopes for secure access control. Learn to create, read, update, and delete partner connections.

- Tags: deep-dive
- Published: 2026-02-27

### [How Immich Detects Duplicate Assets: Algorithms and Techniques in duplicate.service.ts](/immich-app/immich/algorithms-for-immich-duplicate-asset-detection)

Discover how Immich detects duplicate assets using CLIP embeddings and pgvector ANN search. Learn about the algorithms and techniques that keep your library clean and efficient.

- Tags: internals
- Published: 2026-02-27

### [How the Immich API Is Structured and API Key Authentication Works](/immich-app/immich/immich-api-structure-api-key-management)

Explore the Immich API structure built with NestJS and learn how to authenticate requests using SHA-256 hashed API keys in the x-api-key header or apiKey query parameter.

- Tags: internals
- Published: 2026-02-27

### [How Immich's LibraryService Manages External Library Synchronization and Scanning](/immich-app/immich/library-service-external-library-synchronization-scanning)

Discover how Immich's LibraryService synchronizes and scans external libraries with database locks, file watchers, and multi-phase batch scanning for real-time updates and full library integrity.

- Tags: internals
- Published: 2026-02-27

### [Immich Database Backup System: Implementation and Recovery Options](/immich-app/immich/immich-database-backup-system-implementation-recovery)

Learn how Immich implements its database backup system in database-backup.service.ts, explore recovery options, and ensure safe restores with automatic rollback.

- Tags: internals
- Published: 2026-02-27

### [Immich Search Service Internals and CLIP Integration: How Smart Search Works](/immich-app/immich/internals-immich-search-service-clip-integration)

Discover Immich smart search internals. Learn how CLIP integration with pgvector enables semantic asset search through a dual-layer architecture.

- Tags: internals
- Published: 2026-02-27

### [How to Extend Immich Functionality Using the Plugin System: A WASM Development Guide](/immich-app/immich/extending-immich-functionality-plugin-system)

Learn how to extend Immich functionality using WASM plugins. Compile WebAssembly modules, define filters and actions in manifest.json, and let PluginService load your custom code easily.

- Tags: how-to-guide
- Published: 2026-02-27

### [OAuth 2.0 Authentication in auth.service.ts: Implementation Details in Immich](/immich-app/immich/immich-oauth-20-authentication-implementation)

Explore OAuth 2.0 authentication details in Immichs auth.service.ts. Learn about authorization code flow, PKCE, token exchange, and user provisioning in this technical deep dive.

- Tags: internals
- Published: 2026-02-27

### [Immich Multiple Storage Backends and Storage Service Configuration](/immich-app/immich/immich-multiple-storage-backends-configuration)

Learn how Immich manages multiple storage backends with IMMICH_MEDIA_LOCATION and configures storage.service.ts for mount checks and folder initialization.

- Tags: how-to-guide
- Published: 2026-02-27

### [How the Immich Job Queue System Manages Background Processing: Architecture and Components](/immich-app/immich/how-does-immich-job-queue-system-manage-background-processing)

Explore the Immich job queue system architecture. Learn how QueueService, JobRepository, and the SDK manage background tasks like thumbnail generation and facial recognition asynchronously.

- Tags: architecture
- Published: 2026-02-27

