IRONSECUREDOCの使用

immich Docker Compose(開発者向けの仕組み)

公開済み 2025年1月14日
共有:

イントロダクション

ImmichDockerはImmichのセットアップです。オープンソースDockerコンテナ内での自己ホスト型の写真およびビデオバックアップソリューション。 Dockerは、物理および仮想サーバーの両方でアプリケーションを開発、配布、および実行するための軽量で広く採用されているプラットフォームです。 Dockerのおかげで、Immichはほとんどのシステムに簡単にインストールでき、依存関係に関連した複雑な設定や頭痛の種なしに運用可能です。 このコンテナ化されたアプローチにより、Immichの管理が容易になり、ユーザーはメディアファイルを安全に保存、バックアップ、管理することができます。

さらに、Dockerは異なる環境間での一貫性を保証するため、ユーザーは手間を最小限に抑えてImmichインスタンスを簡単に移動またはスケールすることができます。 これは、Immich Docker が、Docker を使用して自分のメディアバックアップソリューションをセルフホストしようとする人にとって、最も効率的でシームレスな方法を提供することを意味しています。

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

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 immich
git clone https://github.com/immich-app/immich.git
cd immich
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'git clone https: cd immich
VB   C#

環境変数を設定する

環境ファイルとdocker compose.ymlファイルのサンプルをコピーして変更します。

cp .env.example .env
cp .env.example .env
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'cp.env.example.env
VB   C#

.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=postgres
# 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=postgres
#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
#The location where your database files are stored
#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"
#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
#The values below this line do not need to be changed
###################################################################################
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'UPLOAD_LOCATION=./library DB_DATA_LOCATION=./postgres IMMICH_VERSION=release DB_PASSWORD=postgres DB_USERNAME=postgres DB_DATABASE_NAME=postgres
VB   C#

Immichを起動

Docker Composeを使用してImmichサーバーを起動します。

docker-compose up -d
docker-compose up -d
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker-compose up -d
VB   C#

immich Docker Compose(開発者向けの動作方法):図2 - Immichサーバーを実行

このコマンドは、必要なすべてのイメージをプルし、必要なコンテナを開始します。

  • バックエンド
  • フロントエンド
  • データベース(ポストグレスキューエル)
  • Redis(キャッシング用)
  • 機械学習モデル(顔認識のような機能)

    immich Docker Compose(開発者向けの仕組み):図3 - Docker Compose コマンド

ブラウザでImmichにアクセスする

すべてのファイルをダウンロードしたら、必ず環境を再起動してください。 コンテナが稼働したら、ブラウザを開き、以下のリンクを入力してください。

http://localhost:2283
http://localhost:2283
http: 'localhost:2283
VB   C#

.envファイルでポートを変更した場合は、指定されたポートで2283を置き換えてください。

Immichアカウントを作成またはログイン

初めて使用する際: 初めてImmichのURLにアクセスすると、Web UIが表示されます。

immich Docker Compose(開発者向けの仕組み):図4 - Immich

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

immich Docker Compose(開発者向けの仕組み): 図5 - 管理者アカウント

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

immich Docker Compose(開発者向けの動作方法): 図6 - 設定

WebインターフェースでImmichを設定する

  • 設定: 管理者ダッシュボードを通じて、Immichの詳細設定に入ります。
  • メディアをアップロード: テスト用に写真や動画をアップロードしてください。
  • 機能を探索: 顔検出、オブジェクトタグ付けなど、他の機能もお楽しみください。

    immich Docker Compose(開発者向け動作原理):図7 - Webインターフェース

    セットアップが完了すると、ブラウザーから直接Immichにアクセスして、写真およびビデオライブラリの管理を開始できます。

IronSecureDocとは何ですか?

IronSecureDocは、強力な暗号化、高度なPDF操作、デジタル署名を備えた文書管理とセキュリティのための高度なユーティリティです。 それは、企業や開発者にドキュメントの機密性と整合性を提供し、スムーズなアクセスを可能にすることで、PDFドキュメントの処理を簡素化します。 それは、開発者がプログラムでPDFファイルやドキュメントを作成、アップロード、操作、そしてセキュリティを設定できる機能を持っている場合に、攻撃的なPDF APIと呼ばれることもあります。

immich Docker Compose(開発者向けの仕組み):図8 - IronSecureDoc: PDFセキュリティとコンプライアンスサーバー

それ以外にも、IronPDFは、任意のデータ入力からPDFを作成し、テキスト、画像、メタデータなどのパラメータでコンテンツを追加および編集することができるPDF APIです。 これには、複数のPDFを結合してファイルを構成する機能、文書を分割する機能、さらにコメント、ハイライト、またはウォーターマークを注釈として追加する機能が含まれています。

そのセキュリティ機能には、パスワード保護、AES暗号化、証明書ベースのアクセス制御が含まれており、すべての機密情報とデータを保護します。 これに加えて、デジタル署名による文書の認証と否認防止を可能にし、金融、医療、法務などの業界で非常に重要な機能です。 監査証跡機能により、ドキュメント上で実行されたすべての活動を追跡し、コンプライアンスと説明責任を向上させることができます。

IronSecureDocのインストールと実行

以下のコマンドをコマンドプロンプトまたは開いたターミナルウィンドウで実行して、次のリポジトリからIronSecureDocのDockerイメージを取得します。

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker pull ironsoftwareofficial/ironsecuredoc
VB   C#

immich Docker Compose(開発者向けの仕組み):図9 - IronSecureDocのDockerイメージ

Dockerコンテナからイメージをプルし、別のコマンドを使用して動作中のコンテナであるIronSecureDocを起動します。

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
VB   C#

上記のDocker実行コマンドは、IronSecureDocのコンテナインスタンスを開始します。

Immichからシグネチャをダウンロードし、署名付きPDFドキュメントを追加します。

IronSecureDocのREST APIは、開発者がソフトウェアのドキュメント管理およびPDF処理機能と安全に対話することを可能にする、現代的なウェブインターフェースです。 RESTfulの原則を使用して、このAPIユーザーが使用する技術スタックに関係なく、IronSecureDocの機能をカスタムアプリケーションに統合しやすく理解し、標準化することを可能にします。

immich Docker Compose(開発者向けの仕組み):図10 - REST API

Immichから画像をダウンロードする

immich Docker Compose(開発者向けの仕組み):図11 - 画像

上記は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)
    {
        client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
        var response = await client.GetAsync($"{immichBaseUrl}/api/media/{imageId}");
        response.EnsureSuccessStatusCode();
        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)
    {
        client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
        var response = await client.GetAsync($"{immichBaseUrl}/api/media/{imageId}");
        response.EnsureSuccessStatusCode();
        var responseData = await response.Content.ReadAsStringAsync();
        Console.WriteLine("Image data retrieved successfully!");
        return responseData; // Contains image metadata or downloadable URL
    }
}
Imports System
Imports System.Net.Http
Imports System.Threading.Tasks
Friend Class ImmichIntegration
	Private Shared ReadOnly client As New HttpClient()
	Public Async Function GetImageFromImmich(ByVal imageId As String, ByVal immichBaseUrl As String, ByVal apiKey As String) As Task(Of String)
		client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}")
		Dim response = Await client.GetAsync($"{immichBaseUrl}/api/media/{imageId}")
		response.EnsureSuccessStatusCode()
		Dim responseData = Await response.Content.ReadAsStringAsync()
		Console.WriteLine("Image data retrieved successfully!")
		Return responseData ' Contains image metadata or downloadable URL
	End Function
End Class
VB   C#

このコードは、Immichサーバーから画像をダウンロードすることを可能にします。 ImmichサーバーからAPIキーを必ず生成してください。

IronSecureDocに画像をアップロード

using System.IO;
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=Ibrahim%4021&certificate_permissions=1");
    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");
    var content = new MultipartFormDataContent();
    content.Add(new StreamContent(File.OpenRead(imagePath)), "signature_image_file", 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;
    var response = await client.SendAsync(request);
    response.EnsureSuccessStatusCode();
    //save the file as required
    Console.WriteLine(await response.Content.ReadAsStringAsync());
    }
}
using System.IO;
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=Ibrahim%4021&certificate_permissions=1");
    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");
    var content = new MultipartFormDataContent();
    content.Add(new StreamContent(File.OpenRead(imagePath)), "signature_image_file", 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;
    var response = await client.SendAsync(request);
    response.EnsureSuccessStatusCode();
    //save the file as required
    Console.WriteLine(await response.Content.ReadAsStringAsync());
    }
}
Imports System.IO
Friend Class IronSecureDocIntegration
	Private Shared ReadOnly client As New HttpClient()
	Public Async Function UploadImageToIronSecureDoc(ByVal imagePath As String) As Task
	Dim 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=Ibrahim%4021&certificate_permissions=1")
	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")
	Dim content = New MultipartFormDataContent()
	content.Add(New StreamContent(File.OpenRead(imagePath)), "signature_image_file", 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
	Dim response = Await client.SendAsync(request)
	response.EnsureSuccessStatusCode()
	'save the file as required
	Console.WriteLine(Await response.Content.ReadAsStringAsync())
	End Function
End Class
VB   C#

Immich と IronSecureDoc を呼び出す

以下のコードは統合に役立ちます。

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);
    }
}
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);
    }
}
Friend Class Integration
	Public Async Function IntegrateImmichWithIronSecureDoc(ByVal immichImageId As String, ByVal immichBaseUrl As String, ByVal immichApiKey As String, ByVal imagePath As String) As Task
		Dim immich = New ImmichIntegration()
		Dim ironSecureDoc = New IronSecureDocIntegration()
		' Step 1: Fetch image metadata or download from Immich
		Dim imageData As String = 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)
	End Function
End Class
VB   C#

IronSecureDoc の API を使用して写真を添付し、デジタル署名を適用します。 IronSecureDocIntegrationクラスに必要なAPIコールを追加して、ドキュメントを完成させてください。 以下は、署名を追加した後にIronSecureDocから生成されたサンプルPDFです。

immich Docker Compose(開発者向けの動作方法):図12 - PDF出力

結論

ImmichとIronSecureDocのどちらも特定のニーズにうまく対応していますが、それぞれ異なるユースケースに最適です。Immichは自己ホスト型で、顔認識、物体検出、多媒体ファイルの効率的な整理など、機能豊富な写真およびビデオ管理を得意としています。 個人または小規模のメディアストレージ場所管理に最適で、ニーズに正確に合わせたソリューションを求める場合には理想的です。

IronSecureDocは、組織全体にわたる安全な文書と署名ソリューションであり、ワークフローの統合を通じて信頼性のある暗号化の素晴らしい利点と統合のシンプルさを組み合わせて、セキュリティ、スケーラビリティ、そしてプロフェッショナル品質の文書処理を実現します。

信頼性とコンプライアンス性: 強力なセキュリティを備えた完全な監査機能を提供しているため、信頼性が高く、コンプライアンスに対応しています。 IronSecureDoc REST APIを使用することで、Web、モバイル、および企業システムの開発者は、セキュアな印刷と効率的なPDF形式および処理をアプリケーションに簡単に統合できるようになりました。 IronSecureDocのライセンスについて詳しく知るには、以下を確認してください。ライセンスページ. Iron Softwareの提供内容について詳しく知るには、次のサイトをご覧くださいIronSuiteページ.

次へ >
Haproxy Docker Compose(開発者向けの仕組み)