關(guān)于immich?docker-compose.yml配置文件詳解
前言
Immich是一個(gè)自托管的照片和視頻備份解決方案,允許用戶在私有服務(wù)器上存儲、管理和分享他們的媒體文件。
這個(gè)項(xiàng)目旨在提供一個(gè)類似于Google照片或iCloud照片庫的體驗(yàn),但是用戶可以完全控制自己的數(shù)據(jù)。通過自托管,用戶不需要依賴第三方云服務(wù)提供商來存儲私人照片和視頻,這增加了隱私保護(hù)和數(shù)據(jù)所有權(quán)。
Immich的主要特點(diǎn)包括:
- 自托管:所有數(shù)據(jù)都存儲在用戶自己的服務(wù)器上。
- 照片和視頻備份:提供自動的媒體文件備份功能。
- 易于訪問:通過Web界面和移動應(yīng)用,用戶可以輕松訪問、管理和分享他們的媒體庫。
- 數(shù)據(jù)控制:用戶完全擁有和控制自己的數(shù)據(jù),而不是存儲在第三方的云服務(wù)中。
- 隱私保護(hù):由于是自托管解決方案,用戶的照片和視頻不會被未經(jīng)授權(quán)的第三方訪問。
Immich通常通過Docker容器化部署,使得安裝和維護(hù)變得簡單。項(xiàng)目在GitHub上開源,社區(qū)驅(qū)動,不斷更新和改進(jìn)。
使用Immich,用戶需要具備一定的技術(shù)背景,特別是關(guān)于如何部署和維護(hù)自托管服務(wù)的知識。
但對于希望提高個(gè)人數(shù)據(jù)隱私和安全性的用戶來說,Immich提供了一個(gè)很好的解決方案。
docker-compose.yml 配置文件解釋
# 指定Docker Compose文件的版本為3.8 version: "3.8" # 定義項(xiàng)目的名稱為immich name: immich # 定義多個(gè)服務(wù) services: # 定義一個(gè)服務(wù)名為immich-server immich-server: # 設(shè)置容器的名稱為immich_server container_name: immich_server # 從GitHub Container Registry拉取immich-server的鏡像,版本由IMMICH_VERSION環(huán)境變量指定,默認(rèn)為release image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # 容器啟動后執(zhí)行的命令 command: [ "start.sh", "immich" ] # 指定掛載的卷 volumes: # 將宿主機(jī)的UPLOAD_LOCATION目錄掛載到容器的/usr/src/app/upload - ${UPLOAD_LOCATION}:/usr/src/app/upload # 將宿主機(jī)的/etc/localtime掛載到容器中,以只讀方式同步時(shí)間 - /etc/localtime:/etc/localtime:ro # 指定環(huán)境變量文件 env_file: # 使用當(dāng)前目錄下的.env文件 - .env # 指定端口映射 ports: # 將容器的3001端口映射到宿主機(jī)的2283端口 - 2283:3001 # 定義服務(wù)依賴 depends_on: # immich-server依賴于redis和database服務(wù) - redis - database # 設(shè)置容器的重啟策略為始終重啟 restart: always # 定義另一個(gè)服務(wù)名為immich-microservices immich-microservices: # 設(shè)置容器的名稱為immich_microservices container_name: immich_microservices # 使用相同的鏡像和版本控制策略 image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} # 啟動微服務(wù)的命令 command: [ "start.sh", "microservices" ] # 同樣指定掛載的卷 volumes: - ${UPLOAD_LOCATION}:/usr/src/app/upload - /etc/localtime:/etc/localtime:ro # 使用相同的環(huán)境變量文件 env_file: - .env # 同樣依賴于redis和database服務(wù) depends_on: - redis - database # 也設(shè)置為始終重啟 restart: always # 以下是定義volumes的部分,用于指定所需的Docker卷 volumes: # 定義一個(gè)卷名為pgdata,用于持久化PostgreSQL數(shù)據(jù)庫數(shù)據(jù) pgdata: # 定義一個(gè)卷名為model-cache,用于緩存機(jī)器學(xué)習(xí)模型數(shù)據(jù) model-cache:
這個(gè)docker-compose.yml文件為Immich應(yīng)用定義了一系列服務(wù),包括主應(yīng)用服務(wù)器、微服務(wù)、機(jī)器學(xué)習(xí)服務(wù)、Redis緩存和PostgreSQL數(shù)據(jù)庫服務(wù)。
通過這個(gè)配置文件,可以一次性啟動Immich應(yīng)用的所有組成部分,實(shí)現(xiàn)服務(wù)之間的依賴管理和自動重啟策略等功能。
環(huán)境變量 .env文件解釋
# 你可以在這個(gè)URL找到所有支持的環(huán)境變量的文檔:https://immich.app/docs/install/environment-variables # 上面這一行是注釋,說明了如何找到關(guān)于所有支持的環(huán)境變量的官方文檔。 # 你上傳的文件將被存儲在這個(gè)位置 UPLOAD_LOCATION=./library # 設(shè)置`UPLOAD_LOCATION`環(huán)境變量,定義了上傳文件的存儲位置。這里設(shè)置為當(dāng)前目錄下的`library`文件夾。 # 使用的Immich版本。你可以將其固定在特定版本,比如 "v1.71.0" IMMICH_VERSION=release # 設(shè)置`IMMICH_VERSION`環(huán)境變量,指定Immich使用的版本。這里設(shè)置為`release`,意味著將使用最新的發(fā)布版本。 # 用于Postgres的連接密碼。你應(yīng)該將其更改為一個(gè)隨機(jī)密碼 DB_PASSWORD=postgres # 設(shè)置`DB_PASSWORD`環(huán)境變量,定義連接PostgreSQL數(shù)據(jù)庫的密碼。默認(rèn)設(shè)置為`postgres`,建議更改為更安全的密碼。 # 以下這行不需要更改 ################################################################################### # 上面這行是注釋,表示以下的環(huán)境變量通常不需要修改。 DB_HOSTNAME=immich_postgres # 設(shè)置`DB_HOSTNAME`環(huán)境變量,指定PostgreSQL數(shù)據(jù)庫服務(wù)的主機(jī)名。這里使用的是`docker-compose.yml`文件中定義的服務(wù)名稱`immich_postgres`。 DB_USERNAME=postgres # 設(shè)置`DB_USERNAME`環(huán)境變量,定義連接PostgreSQL數(shù)據(jù)庫的用戶名。默認(rèn)設(shè)置為`postgres`。 DB_DATABASE_NAME=immich # 設(shè)置`DB_DATABASE_NAME`環(huán)境變量,指定PostgreSQL數(shù)據(jù)庫的名稱。這里設(shè)置為`immich`。 REDIS_HOSTNAME=immich_redis # 設(shè)置`REDIS_HOSTNAME`環(huán)境變量,指定Redis服務(wù)的主機(jī)名。這里使用的是`docker-compose.yml`文件中定義的服務(wù)名稱`immich_redis`。
這個(gè).env文件提供了Immich服務(wù)和它所依賴的數(shù)據(jù)庫(PostgreSQL)以及Redis服務(wù)的基本配置。
通過這些環(huán)境變量,Immich服務(wù)能夠正確地連接到數(shù)據(jù)庫和Redis,同時(shí)指定了文件上傳的位置。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- docker常用容器啟動docker-compose.yml配置文件使用
- 在docker-compose.yml文件中配置容器的環(huán)境變量方式
- docker-compose.yml參數(shù)的用法(配置文件)
- 使用docker?compose快速配置一組容器服務(wù)詳解
- Springboot使用docker-compose實(shí)現(xiàn)動態(tài)配置過程
- docker-compose配置并部署redis服務(wù)的實(shí)現(xiàn)
- 詳解Docker Compose配置文件參數(shù)
- Docker compose配置文件寫法及命令使用示例
- docker-compose安裝yml文件配置方式
- docker compose 一鍵部署分布式配置中心Apollo的過程詳解
- docker-compose部署配置jenkins的詳細(xì)教程
- Docker Compose 配置指南小結(jié)
相關(guān)文章
elasticsearch?組件基于單機(jī)的多實(shí)例集群部署方法
es 作為搜索引擎,應(yīng)用場景不乏日志分析、網(wǎng)絡(luò)安全、搜索引擎等,有時(shí)也會用作日志數(shù)據(jù)庫使用,畢竟其出色的搜索查詢性能,不是同等量級 關(guān)系型數(shù)據(jù)庫可以比擬的,這篇文章主要介紹了elasticsearch?組件基于單機(jī)的多實(shí)例集群,需要的朋友可以參考下2024-03-03docker-compose網(wǎng)絡(luò)設(shè)置之networks的使用
本文詳細(xì)解釋了在使用 Docker Compose時(shí)如何配置網(wǎng)絡(luò),包括創(chuàng)建、使用和問題解決等方面,介紹了如何通過docker-compose.yml文件快速編排和部署應(yīng)用服務(wù),同時(shí)解決網(wǎng)絡(luò)隔離問題,感興趣的可以了解一下2024-10-10docker中容器的網(wǎng)絡(luò)配置常用命令詳解
這篇文章主要介紹了docker中容器的網(wǎng)絡(luò)配置常用命令詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Windows系統(tǒng)下裝Docker至D盤/其他盤最新方法(最準(zhǔn)確,直接裝)
這篇文章主要介紹了Windows系統(tǒng)下裝Docker至D盤/其他盤的相關(guān)資料,為了避免C盤空間不足的問題,通過修改安裝路徑,可以將Docker的數(shù)據(jù)存儲在D盤的特定文件夾中,從而有效地管理磁盤空間,需要的朋友可以參考下2025-04-04Docker容器實(shí)現(xiàn)MySQL多源復(fù)制場景分析
這篇文章主要介紹了Docker容器實(shí)現(xiàn)MySQL多源復(fù)制,通過本文學(xué)習(xí)可以掌握多源復(fù)制的好處,通過使用場景分析給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06