immich Docker Compose (개발자를 위한 작동 방식)
Immich Docker는 Immich 설치입니다. 이는 오픈 소스이며, 자기 호스팅이 가능한 사진 및 비디오 백업 솔루션으로, Docker 컨테이너 내부에서 운영됩니다. Docker는 물리적 및 가상 서버에서 응용 프로그램을 개발, 배포 및 실행하기 위한 경량이면서 폭넓게 채택된 플랫폼입니다. Docker 덕분에 Immich는 대부분의 시스템에 쉽게 설치될 수 있으며 복잡한 구성 없이 종속성과 관련된 걱정 없이 운영됩니다. 이 컨테이너화된 Immich 관리 접근 방식으로 쉽게 사용자는 미디어 파일을 안전하게 저장, 백업 및 관리할 수 있게 합니다.
또한, Docker는 다양한 환경 간의 일관성을 보장하므로 사용자는 최소한의 번거로움으로 Immich 인스턴스를 쉽게 이동하거나 확장할 수 있습니다. 이는 Immich Docker가 누군가 자신의 미디어 백업 솔루션을 Docker를 사용하여 자기 호스팅하려 한다면 가장 효율적이고 매끄러운 방법을 제공할 것임을 의미합니다.
Immich의 기능
Immich Docker는 Immich 사진 및 비디오 백업 솔루션을 배포하고 관리하는 상당히 쉬운 몇 가지 기본 기능을 설치합니다. 이로 인해 자신의 미디어 파일을 안전하고 효과적으로 자기 호스팅할 사람들에게 매우 매력적입니다. Immich Docker의 주요 기능 중에는 다음이 포함됩니다:
쉽게 배포 가능: Immich Docker는 표준 Docker 이미지를 제공하여 배포를 쉽게 만듭니다. 또한 사용자를 종속 패키지 및 복잡한 구성에서 멀리 떨어지게 합니다; 따라서 사용자는 즉시 Immich를 배포할 수 있습니다.
크로스 플랫폼: 각 Docker 컨테이너는 Linux, macOS 및 Windows OS에서 Docker를 사용하는 대부분의 시스템에서 장치를 실행할 수 있도록 보장합니다. 이는 프로젝트가 다양한 환경에서 매우 휴대 가능하다는 것을 의미합니다.
격리: 또한 Docker 컨테이너에서 실행 중인 Immich 서비스는 호스트 기계의 다른 응용 프로그램 및 서비스와 격리됩니다. 이는 충돌, 호환성 문제를 줄이며, Immich의 운영 환경을 훨씬 더 안정적으로 만듭니다.
일반적으로, Immich Docker 사용자의 대규모 미디어 데이터 배포와 관련하여 확장성은 매우 쉽습니다. Docker는 본질적으로 확장 가능하기 때문에, 자원을 업그레이드하거나 증가시키는 것이 매우 쉽게 가능합니다.
보안: 그 이유는 Docker 컨테이너가 기본 시스템에서 분리된 샌드박스 계층을 소개하여 추가 보안을 제공하기 때문입니다. 이 외에도, Immich 자체 호스팅은 사용자에게 데이터와 데이터베이스 저장소 위치에 대한 완전한 제어를 허용하여 개인정보 및 보안을 향상시킵니다.
자동 업데이트: 컨테이너는 비교적 경량이고, 업데이트가 쉬우며 유지보수에 용이합니다; 따라서 Docker 사용자는 매우 적은 또는 전혀 중단 없이 최신 보안 패치와 함께 새로운 기능으로 쉽게 전환할 수 있습니다.
백업 및 복원: Immich Docker는 미디어 백업과 관련하여 신뢰할 수 있는 하나의 소스를 생성하여 사진과 비디오를 복원할 수 있습니다. Docker는 모든 배포가 동일한 데이터를 갖추도록 보장합니다.
맞춤화 가능: Immich는 자가 호스팅이므로, 사용자는 요구 사항에 맞게 수정하여 다른 서비스와의 보다 효과적인 통합 및 확장 옵션을 가질 수 있습니다.
커뮤니티 지원: 오픈 소스 프로젝트입니다; 따라서 커뮤니티는 지속적인 개선, 버그 수정, 사용자 지원을 제공합니다.
Immich Docker 설치하기
사전 준비
- 시스템에 Docker와 Docker Compose를 설치하세요.
- 기계가 충분한 자원을 가지고 있는지 확인하세요: 4GB 이상의 RAM을 권장합니다.
Immich 저장소 클론
GitHub에서 docker-compose 파일을 다운로드하세요.
git clone https://github.com/immich-app/immich.git
cd immichgit clone https://github.com/immich-app/immich.git
cd immich환경 변수 설정
이를 변경하려면, 샘플 환경 파일과 docker-compose.yml 파일을 복사하세요:
cp .env.example .envcp .env.example .env.env 파일을 열고 변수를 설정하세요 (예: 포트, 저장 위치, 데이터베이스 자격 증명). 대부분의 구성에서 기본 설정이 충분합니다.
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
# The location where your uploaded files are stored
UPLOAD_LOCATION=./library
# The location where your database files are stored
DB_DATA_LOCATION=./postgres
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
# TZ=Etc/UTC
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=postgres
# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=postgresImmich 실행
Docker Compose를 사용하여 Immich 서버를 시작하세요:
docker-compose up -ddocker-compose up -d
이 명령어는 모든 필요한 이미지를 가져오고 필수 컨테이너를 시작합니다:
- 백엔드
- 프론트엔드
- 데이터베이스 (PostgreSQL)
- Redis (캐싱용)
- 머신러닝 모델 (안면 인식 기능 등)

브라우저에서 Immich 액세스
모든 파일이 다운로드되면 환경을 새로 고치세요. 컨테이너가 실행되면, 브라우저를 열고 아래 URL을 입력하세요.
http://localhost:2283포트를 2283로 변경한 경우 .env 파일에 지정된 포트로 대체하세요.
Immich 계정 생성 또는 로그인
첫 사용 시: 처음 Immich URL에 접근할 때, 웹 UI가 표시됩니다.

관리자 계정을 생성하라는 요청을 받을 것입니다.

필요한 정보를 입력하고, Immich는 설정 과정을 안내할 것입니다.

웹 인터페이스에서 Immich 설정
- 설정: 관리자 대시보드를 통해 Immich의 세부 설정에 접근하세요.
- 미디어 업로드: 테스트용으로 이제 몇몇 사진/비디오를 업로드하세요.
- 기능 탐색: 얼굴 감지, 객체 태그 지정 등과 같은 다른 기능을 즐기세요.

설정이 완료되면 브라우저에서 바로 Immich에 액세스하고 사진 및 비디오 라이브러리를 관리하기 시작할 수 있습니다.
IronSecureDoc란?
IronSecureDoc는 문서 관리와 보안을 위한 고급 유틸리티로, 강력한 암호화, 고급 PDF 조작 및 디지털 서명을 자랑합니다. 이는 문서 기밀성과 무결성을 제공하고 회사 및 개발자가 PDF 문서를 원활하게 접근하고 처리할 수 있게 하여 단순화합니다. 이 기능을 통해 개발자가 프로그래밍 방식으로 PDF 파일과 문서를 생성, 업로드, 조작 및 보호할 수 있으면, 공격적인 PDF API라고도 할 수 있습니다.

그 외에도, IronPDF는 모든 데이터 입력으로부터 PDF를 생성하고 텍스트, 이미지, 메타데이터 등의 매개변수를 추가 및 편집할 수 있는 PDF API입니다. 여기에는 여러 PDF를 병합하여 파일을 구성하고, 문서를 분할하거나 주석, 강조 표시, 또는 워터마크를 추가하는 기능이 포함됩니다.
보안 기능에는 암호 보호, AES 암호화, 인증서 기반 접근 제어가 있어 모든 민감한 정보와 데이터를 보호합니다. 이 외에도 디지털 서명을 통해 문서를 인증하고 부인 방지 기능을 제공하여 금융, 의료, 법률 같은 산업에 매우 중요한 특징입니다. 감사 추적 기능을 통해 문서에서 수행된 모든 활동을 추적하여 더 나은 준수성과 책임성을 제공합니다.
IronSecureDoc 설치 및 실행
아래 커맨드 프롬프트 또는 열린 터미널 창에서 이 명령을 실행하여 아래의 저장소에서 IronSecureDoc의 Docker 이미지를 가져옵니다.
docker pull ironsoftwareofficial/ironsecuredocdocker pull ironsoftwareofficial/ironsecuredoc
다른 명령을 사용하여 IronSecureDoc, 작동 중인 컨테이너를 시작합니다.
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latestdocker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest위 Docker 실행 명령은 IronSecureDoc의 컨테이너 인스턴스를 시작합니다.
Immich에서 서명을 다운로드하고 서명된 PDF 문서를 추가하세요
IronSecureDoc의 REST API는 문서 관리 및 PDF 처리 기능과 안전하게 상호 작용할 수 있게 하는 현대적 웹 인터페이스입니다. RESTful 원칙을 사용하여, 이 API는 사용자가 IronSecureDoc의 기능을 기술 스택과 상관없이 자신만의 애플리케이션에 쉽게 이해하고 표준화하여 통합할 수 있게 합니다.

Immich에서 이미지를 다운로드하세요

아래는 Immich에 업로드된 샘플 서명 파일입니다.
using System;
using System.Net.Http;
using System.Threading.Tasks;
class ImmichIntegration
{
private static readonly HttpClient client = new HttpClient();
public async Task<string> GetImageFromImmich(string imageId, string immichBaseUrl, string apiKey)
{
// Add authorization header
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
// Make a GET request to the Immich server
var response = await client.GetAsync($"{immichBaseUrl}/api/media/{imageId}");
response.EnsureSuccessStatusCode();
// Read and return the response data
var responseData = await response.Content.ReadAsStringAsync();
Console.WriteLine("Image data retrieved successfully!");
return responseData; // Contains image metadata or downloadable URL
}
}using System;
using System.Net.Http;
using System.Threading.Tasks;
class ImmichIntegration
{
private static readonly HttpClient client = new HttpClient();
public async Task<string> GetImageFromImmich(string imageId, string immichBaseUrl, string apiKey)
{
// Add authorization header
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
// Make a GET request to the Immich server
var response = await client.GetAsync($"{immichBaseUrl}/api/media/{imageId}");
response.EnsureSuccessStatusCode();
// Read and return the response data
var responseData = await response.Content.ReadAsStringAsync();
Console.WriteLine("Image data retrieved successfully!");
return responseData; // Contains image metadata or downloadable URL
}
}코드는 Immich 서버에서 이미지를 다운로드할 수 있도록 합니다. Immich 서버에서 API 키를 생성해야 합니다.
IronSecureDoc에 이미지 업로드하기
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class IronSecureDocIntegration
{
private static readonly HttpClient client = new HttpClient();
public async Task UploadImageToIronSecureDoc(string imagePath)
{
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:8080/v1/document-services/pdfs/sign?sign_specific_page=0&signature_image_x=100&signature_image_y=150&signature_image_w=300&signature_image_h=400&certificate_password=********&certificate_permissions=1");
// Set headers to simulate a browser request
request.Headers.Add("sec-ch-ua-platform", "\"Windows\"");
request.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36");
request.Headers.Add("accept", "*/*");
request.Headers.Add("sec-ch-ua", "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"");
request.Headers.Add("sec-ch-ua-mobile", "?0");
request.Headers.Add("Sec-Fetch-Site", "same-origin");
request.Headers.Add("Sec-Fetch-Mode", "cors");
request.Headers.Add("Sec-Fetch-Dest", "empty");
request.Headers.Add("host", "localhost");
// Create and add image and certificate files to the request content
var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.OpenRead(imagePath)), "signature_image_file", Path.GetFileName(imagePath));
content.Add(new StreamContent(File.OpenRead("IronsecureDoc.pfx")), "certificate_file", "IronsecureDoc.pfx");
content.Add(new StreamContent(File.OpenRead("Input.pdf")), "pdf_file", "Input.pdf");
request.Content = content;
// Send the request and ensure success
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
// Output the result of the PDF signing
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
}using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class IronSecureDocIntegration
{
private static readonly HttpClient client = new HttpClient();
public async Task UploadImageToIronSecureDoc(string imagePath)
{
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:8080/v1/document-services/pdfs/sign?sign_specific_page=0&signature_image_x=100&signature_image_y=150&signature_image_w=300&signature_image_h=400&certificate_password=********&certificate_permissions=1");
// Set headers to simulate a browser request
request.Headers.Add("sec-ch-ua-platform", "\"Windows\"");
request.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36");
request.Headers.Add("accept", "*/*");
request.Headers.Add("sec-ch-ua", "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"");
request.Headers.Add("sec-ch-ua-mobile", "?0");
request.Headers.Add("Sec-Fetch-Site", "same-origin");
request.Headers.Add("Sec-Fetch-Mode", "cors");
request.Headers.Add("Sec-Fetch-Dest", "empty");
request.Headers.Add("host", "localhost");
// Create and add image and certificate files to the request content
var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.OpenRead(imagePath)), "signature_image_file", Path.GetFileName(imagePath));
content.Add(new StreamContent(File.OpenRead("IronsecureDoc.pfx")), "certificate_file", "IronsecureDoc.pfx");
content.Add(new StreamContent(File.OpenRead("Input.pdf")), "pdf_file", "Input.pdf");
request.Content = content;
// Send the request and ensure success
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
// Output the result of the PDF signing
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
}Immich 및 IronSecureDoc 호출하기
아래 코드는 우리에게 통합을 도와줄 것입니다.
using System.Threading.Tasks;
class Integration
{
public async Task IntegrateImmichWithIronSecureDoc(string immichImageId, string immichBaseUrl, string immichApiKey, string imagePath)
{
var immich = new ImmichIntegration();
var ironSecureDoc = new IronSecureDocIntegration();
// Step 1: Fetch image metadata or download from Immich
string imageData = await immich.GetImageFromImmich(immichImageId, immichBaseUrl, immichApiKey);
// Step 2: Optionally download the image locally using imageData URL (not shown here)
// Assume imagePath is the downloaded image file path
// Step 3: Upload the image to IronSecureDoc
await ironSecureDoc.UploadImageToIronSecureDoc(imagePath);
}
}using System.Threading.Tasks;
class Integration
{
public async Task IntegrateImmichWithIronSecureDoc(string immichImageId, string immichBaseUrl, string immichApiKey, string imagePath)
{
var immich = new ImmichIntegration();
var ironSecureDoc = new IronSecureDocIntegration();
// Step 1: Fetch image metadata or download from Immich
string imageData = await immich.GetImageFromImmich(immichImageId, immichBaseUrl, immichApiKey);
// Step 2: Optionally download the image locally using imageData URL (not shown here)
// Assume imagePath is the downloaded image file path
// Step 3: Upload the image to IronSecureDoc
await ironSecureDoc.UploadImageToIronSecureDoc(imagePath);
}
}IronSecureDoc의 API를 사용하여 사진을 첨부하고 디지털 서명을 적용하세요. IronSecureDocIntegration 클래스에 필요한 API 호출을 추가하여 문서를 완성하세요. 아래는 서명을 추가한 후 IronSecureDoc에서 생성된 샘플 PDF입니다.

결론
Immich와 IronSecureDoc 모두 특정 요구에 잘 응답하지만, 각각 다른 용도에 가장 적합합니다. Immich는 자체 호스팅, 기능이 풍부한 사진과 비디오 관리에 뛰어나며, 얼굴 인식, 객체 탐지, 그리고 멀티미디어 파일의 간편한 조직화를 포함합니다. 이는 개인 또는 소규모 미디어 저장장소 관리가 필요한 곳에서 맞춤형 솔루션을 원할 때 이상적입니다.
IronSecureDoc는 조직 전체의 안전한 문서 및 서명 솔루션으로, 고급 암호화의 멋진 이점과 보안, 확장성, 전문적인 문서 처리를 하나로 결합하는 간편한 워크플로우 통합을 제공합니다.
신뢰성과 준수성: 강력한 보안과 완전한 감사 기능을 제공하므로 신뢰할 수 있고 준수에 적합합니다. IronSecureDoc REST API를 사용하여 웹, 모바일, 기업 시스템 개발자는 이제 애플리케이션에 보안 인쇄 및 효율적인 PDF 형식 및 처리를 쉽게 통합할 수 있습니다. IronSecureDoc의 라이선스에 대해 더 알아보려면 라이선스 페이지를 확인하세요. Iron Software의 제공에 대해 더 알아보려면 Iron Suite 페이지를 방문하세요.
자주 묻는 질문
Docker가 Immich의 배포를 어떻게 간소화할 수 있습니까?
Docker는 다양한 플랫폼에서 복잡한 설정이나 종속 없이는 쉽게 설치 및 관리할 수 있는 컨테이너화된 환경을 제공하여 Immich의 배포를 간소화합니다.
미디어 관리에 Immich를 사용했을 때의 이점은 무엇입니까?
Immich는 자체 호스팅, 얼굴 인식 및 객체 태그 지정 등의 광범위한 기능 세트, 데이터 관리 및 저장소에 대한 더 많은 제어를 제공합니다.
Docker가 Immich의 보안을 어떻게 강화합니까?
Docker는 Immich를 컨테이너 내에 격리하여 시스템 취약성의 위험을 최소화하고 일관된 환경을 보장하며 미디어 파일을 보호합니다.
Docker Compose를 사용하여 Immich를 설치하는 데 필요한 단계는 무엇입니까?
Docker Compose를 사용하여 Immich를 설치하려면 Immich 저장소를 복제하고 환경 변수를 구성한 후 명령을 실행하여 Immich 서버를 시작해야 합니다.
IronSecureDoc가 문서 관리에 Docker를 어떻게 활용합니까?
IronSecureDoc는 컨테이너화된 설정 내에서 PDF 조작 및 디지털 서명과 같은 고급 문서 관리 및 보안 기능을 제공하여 원활한 배포 및 통합을 지원합니다.
Immich와 IronSecureDoc는 기능을 향상시키기 위해 통합될 수 있습니까?
네, Immich는 IronSecureDoc와 통합되어 Immich에서 이미지 다운로드 및 REST API를 사용한 디지털 서명 같은 작업을 수행할 수 있어 보다 향상된 미디어 및 문서 관리 기능을 제공합니다.
문서 보안을 위한 IronSecureDoc의 기능은 무엇입니까?
IronSecureDoc는 강력한 암호화, 비밀번호 보호 및 고급 PDF 조작을 제공하여 높은 수준의 문서 기밀성과 무결성을 보장합니다.
Immich 사용에 있어 커뮤니티 지원의 역할은 무엇입니까?
커뮤니티 지원은 사용자에게 리소스, 문제 해결 도움 및 업데이트를 제공하여 이 자체 호스팅 미디어 백업 솔루션의 신뢰성을 향상시키는 중요한 역할을 합니다.
개발자가 Immich와 IronSecureDoc를 함께 사용하여 얻을 수 있는 이점은 무엇입니까?
개발자는 Immich의 미디어 관리 기능과 IronSecureDoc의 문서 보안 기능을 활용하여 데이터 처리에 대한 포괄적인 솔루션을 만들 수 있습니다.
Immich와 IronSecureDoc의 주요 차이점은 무엇입니까?
주요 차이점은 Immich는 개인 용도의 미디어 관리 및 저장에 중점을 두고, IronSecureDoc는 조직적 워크플로우에 적합한 고급 문서 보안 및 관리 기능을 제공합니다.







