immich Docker Compose (開発者向けの仕組み)
Immich Dockerは、Dockerコンテナ内でのオープンソースのセルフホスト型写真およびビデオバックアップソリューションであるImmichのセットアップです。 Dockerは、物理および仮想化サーバーでのアプリケーション開発、配布、および実行のための軽量で広く採用されているプラットフォームです。 Dockerのおかげで、Immichはほとんどのシステムで簡単にインストールでき、依存関係に関連する複雑な構成や頭痛のない運用が可能です。 このコンテナ化されたImmichの管理アプローチにより、メディアファイルを安全に保存、バックアップ、および管理することが容易になります。
さらに、Dockerは異なる環境間での一貫性を保証し、ユーザーが最小限の手間でImmichインスタンスを簡単に移動またはスケールすることができます。 これは、Dockerを使用して誰もがセルフホスト型メディアバックアップソリューションを最も効率的でシームレスな方法で行えることを意味します。
Immichの機能
Immich Dockerは、Immichの写真およびビデオバックアップソリューションの展開と管理をはるかに簡単にするいくつかの即座に利用可能な機能をインストールします。 これにより、メディアファイルを安全かつ効果的にセルフホストする人々にとって非常に魅力的になります。 Immich Dockerの主な機能には次のものがあります。
展開が簡単: Immich Dockerは標準のDockerイメージを提供しており、展開が簡単です。 さらに、依存パッケージや複雑な設定からユーザーを遠ざけます; したがって、ユーザーは即座にImmichを展開できます。
クロスプラットフォーム: 各Dockerコンテナは、Linux、macOS、およびWindows OSのDockerとともに、ほとんどのシステムでデバイスが実行できることを保証します。 これにより、プロジェクトは異なる環境間で非常に移植性が高くなります。
分離: さらに、Dockerコンテナ内で実行されるImmichサービスはホストマシン上の他のアプリケーションやサービスから分離されます。これにより、競合や互換性の問題が軽減され、Immichの運用環境がより安定します。
一般的に、特に多くのメディアデータ量が関与する場合、スケーラビリティは非常に簡単です。 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.envファイルでポートを変更した場合は、2283を指定されたポートで置き換えます。
Immichアカウントの作成またはログイン
初回使用:Immich URLに初めてアクセスすると、Web UIが表示されます。

管理者アカウントの作成を求められます。

必要な情報を入力すると、Immichがセットアップを案内します。

Webインターフェースでの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:latestDocker 実行コマンドは、IronSecureDoc のコンテナインスタンスを開始します。
Immichから署名をダウンロードし、署名済みのPDF文書を追加する
IronSecureDocのREST APIは、開発者がソフトウェアの文書管理およびPDF処理の機能と安全にやり取りできるモダンなWebインターフェースです。 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を使用することで、Web、モバイル、および企業システムの開発者がアプリケーションに安全な印刷と効率的なPDFの形式と処理を簡単に統合できます。 IronSecureDocのライセンスについて詳しくは、ライセンスページをご確認ください。 Iron Softwareの提供内容について詳しくは、Iron Suiteページをご覧ください。
よくある質問
DockerはImmichのデプロイをどのように簡素化できますか?
Dockerは、さまざまなプラットフォーム全体でのインストールと管理を容易にし、複雑な設定や依存関係の問題を回避するコンテナ化された環境を提供することにより、Immichのデプロイを簡素化します。
メディア管理のためにImmichを使用する利点は何ですか?
Immichは、自己ホスティング、顔認識やオブジェクトタグ付けを含む広範な機能セット、高度なカスタマイズを提供し、データ管理とストレージの制御を強化します。
DockerはImmichのセキュリティをどのように強化しますか?
Dockerは、アプリケーションをコンテナ内で分離することにより、システムの脆弱性のリスクを最小限に抑え、一貫した環境を確保し、メディアファイルを保護します。
Docker Composeを使用したImmichのインストールにどのようなステップが含まれていますか?
Docker Composeを使用してImmichをインストールするには、Immichリポジトリをクローンし、環境変数を設定し、Docker Composeコマンドを実行してImmichサーバーを開始します。
IronSecureDocは文書管理のためにDockerをどのように活用していますか?
IronSecureDocは、コンテナ化されたセットアップ内でPDF操作やデジタル署名などの高度な文書管理とセキュリティ機能を可能にし、シームレスなデプロイメントと統合を実現します。
ImmichとIronSecureDocを統合して機能を強化することは可能ですか?
はい、ImmichはIronSecureDocと統合して、REST APIを使用してImmichから画像をダウンロードし、デジタル署名などのアクションを実行することで、メディアおよび文書管理の全体的な機能を強化できます。
IronSecureDocは文書のセキュリティのためにどのような機能を提供していますか?
IronSecureDocは、強力な暗号化、パスワード保護、高度なPDF操作などの機能を提供し、文書の機密性と整合性を確保します。
Immichの使用においてコミュニティサポートはどのような役割を果たしますか?
コミュニティサポートは、リソース提供やトラブルシューティングでImmichの信頼性を高めます。
開発者はImmichとIronSecureDocを一緒に使用することでどのような利益を得られますか?
開発者は、Immichのメディア管理機能とIronSecureDocの文書セキュリティ機能を組み合わせることで、データ処理の包括的なソリューションを構築することができます。
ImmichとIronSecureDocの主な違いは何ですか?
主な違いは、Immichが個人使用向けのメディア管理とストレージに焦点を当てているのに対し、IronSecureDocは高度な文書管理とセキュリティ機能を提供し、組織のワークフローに適しています。







