Ir para o conteúdo do rodapé
USANDO O IRONSECUREDOC

immich Docker Compose (Como funciona para desenvolvedores)

Immich Docker é a configuração do Immich, uma solução de backup de fotos e vídeos de código aberto e auto-hospedada dentro de um contêiner Docker. Docker é uma plataforma leve e amplamente adotada para desenvolver, distribuir e executar aplicações em servidores físicos e virtualizados. Graças ao Docker, o Immich pode ser facilmente instalado na maioria dos sistemas e estar operacional sem configuração complexa e dores de cabeça relacionadas a dependências. Esta abordagem containerizada para gerenciar o Immich torna mais fácil, permitindo que os usuários armazenem, façam backup e gerenciem seus arquivos de mídia com segurança.

Além disso, o Docker garante consistência em diferentes ambientes, e assim, os usuários podem facilmente mover ou escalonar sua instância do Immich com dificuldade mínima. Isso significa que o Immich Docker apresentaria as maneiras mais eficientes e integradas que qualquer pessoa esperando para auto-hospedar sua solução de backup de mídia teria feito usando o Docker.

Características do Immich

O Immich Docker instala várias funcionalidades prontas que tornam mais fácil a implantação e o gerenciamento da solução de backup de fotos e vídeos do Immich. Isso, por sua vez, o torna bastante atraente para aqueles que irão auto-hospedar seus arquivos de mídia de forma segura e eficaz. Entre as principais características do Immich Docker estão as seguintes:

Fácil de implantar: Immich Docker forneceu imagens Docker padrão, tornando a implantação fácil. Além disso, mantém os usuários longe de pacotes dependentes e configurações complicadas; assim, os usuários podem implantar imediatamente o Immich.

Plataforma cruzada: Cada contêiner Docker garante que o dispositivo possa ser executado na maioria dos sistemas com Docker no Linux, macOS e Windows OS. Isso torna o projeto altamente portátil em diferentes ambientes.

Isolamento: Além disso, os serviços Immich executados no contêiner Docker seriam mantidos isolados de outras aplicações e serviços na máquina anfitriã. Isso reduziria conflitos, problemas de compatibilidade e definitivamente tornaria o ambiente operacional muito mais estável para o Immich.

Geralmente, a escalabilidade é muito fácil, principalmente quando muitos volumes de dados de mídia estão envolvidos com a implantação para os usuários do Immich Docker. Como o Docker é inerentemente escalável, atualizar ou aumentar recursos pode ser realmente muito fácil.

Segurança: A razão é que os contêineres Docker introduzem uma camada de sandboxing afastada do sistema subjacente, proporcionando segurança adicional. Além disso, o auto-hospedagem do Immich oferece a possibilidade de permitir aos usuários controle total sobre seus dados, e o local de armazenamento do banco de dados, aumentando assim a privacidade e segurança.

Atualizações Automatizadas: Os contêineres são relativamente leves, fáceis de atualizar e amigos da manutenção; assim, os usuários do Docker facilmente mudam para novos recursos com os patches de segurança mais recentes com poucas ou nenhuma interrupção.

Backup e Restauração: O Immich Docker cria uma única fonte da verdade quando se trata de fazer backup de mídia para que se possa restaurar fotos e vídeos. O Docker garante que todas as implantações tenham os mesmos dados.

Personalizável: O Immich é auto-hospedado, então os usuários podem modificá-lo conforme seus requisitos para uma integração mais eficaz com outros serviços e opções de escalonamento.

Suporte da Comunidade: É um projeto de código aberto; portanto, a comunidade fornece melhoria contínua, correção de bugs e suporte aos seus usuários.

Instalar Immich Docker

Pré-requisitos

  • Instale o Docker e o Docker Compose no seu sistema.
  • Certifique-se de que sua máquina possui recursos suficientes: são recomendados 4GB ou mais de RAM.

Clonar Repositório do Immich

Baixe o arquivo docker-compose do GitHub.

git clone https://github.com/immich-app/immich.git
cd immich
git clone https://github.com/immich-app/immich.git
cd immich
SHELL

Configurar Variáveis de Ambiente

Para alterá-lo, faça uma cópia do arquivo de ambiente de exemplo e arquivos docker-compose.yml:

cp .env.example .env
cp .env.example .env
SHELL

Abra o arquivo .env e configure as variáveis (como porta, local de armazenamento e credenciais do banco de dados). Na maioria das configurações, as configurações padrão são suficientes.

# 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

Lançar Immich

Use o Docker Compose para iniciar o servidor Immich:

docker-compose up -d
docker-compose up -d
SHELL

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 2 - Executar Servidor Immich

Este comando puxa todas as imagens necessárias e inicia os contêineres necessários:

  • Backend
  • Frontend
  • Banco de Dados (PostgreSQL)
  • Redis (para cache)
  • Modelos de Aprendizado de Máquina (para características como reconhecimento facial)

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 3 - Comando Docker Compose

Acessar o Immich no seu navegador

Quando todos os arquivos forem baixados, certifique-se de atualizar o ambiente. Uma vez que os contêineres estejam em execução, abra o navegador e insira o URL abaixo.

http://localhost:2283

Substitua 2283 pela porta especificada se você alterou a porta no arquivo .env.

Crie ou faça login na conta do Immich

Primeira utilização: quando você acessar o URL do Immich pela primeira vez, ele exibirá a interface web.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 4 - Immich

Você será solicitado a criar uma conta de administrador.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 5 - Conta de Admin

Preencha as informações necessárias, e o Immich o guiará pelo processo de configuração.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 6 - Configuração

Configurar o Immich na Interface Web

  • Configurações: Acesse as configurações detalhadas do Immich através do painel de administração.
  • Carregar Mídia: Agora carregue algumas fotos/vídeos para teste.
  • Explorar Recursos: Aproveite outros recursos, como detecção de rosto, marcação de objetos e mais.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 7 - Interface Web

Uma vez configurado, você poderá acessar o Immich diretamente do seu navegador e começar a gerenciar sua biblioteca de fotos e vídeos.

O que é IronSecureDoc?

IronSecureDoc é uma ferramenta avançada para gerenciamento e segurança de documentos, com criptografia robusta, manipulação avançada de PDFs e assinatura digital. Ele fornece confidencialidade e integridade de documentos para empresas e desenvolvedores, junto com acesso suave e, portanto, simplifica o processamento de documentos em PDF. Ele também pode ser chamado de uma API de PDF agressiva em casos em que seus recursos permitem que desenvolvedores criem, enviem, manipulem e protejam arquivos e documentos PDF programaticamente.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 8 - IronSecureDoc: O Servidor de Segurança e Conformidade de PDF

Além disso, o IronPDF é uma API de PDF que permite a criação de PDFs a partir de qualquer entrada de dados, adicionando e editando conteúdo com parâmetros como texto, imagens e metadados. Isso inclui a facilidade de mesclar vários PDFs para compor arquivos, dividir documentos e até mesmo anotar comentários, destaques ou marcas d'água.

Entre seus recursos de segurança estão proteção por senha, criptografia AES e controles de acesso baseados em certificados que protegem todas as informações e dados sensíveis. Além disso, permite assinatura digital para autenticar documentos e não-repúdio, um recurso muito importante em indústrias como financeira, médica e jurídica. A funcionalidade de trilha de auditoria permite acompanhar todas as atividades realizadas nos documentos para melhor conformidade e responsabilidade.

Instalar e Executar o IronSecureDoc

Puxe a imagem Docker do IronSecureDoc do repositório abaixo executando este comando no Prompt de Comando ou em uma janela de terminal aberta.

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 9 - Imagem Docker do IronSecureDoc

Use outro comando para iniciar o IronSecureDoc, um contêiner operacional.

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
SHELL

O comando de execução do Docker acima iniciará uma instância de contêiner do IronSecureDoc.

Baixe a Assinatura do Immich e adicione o documento PDF assinado

A API REST no IronSecureDoc é uma interface web moderna que permite que desenvolvedores interajam com segurança com as funcionalidades de gerenciamento de documentos e processamento de PDF do software. Usando princípios RESTful, esta API permite que os usuários compreendam facilmente e padronizem a integração das funcionalidades do IronSecureDoc em suas aplicações customizadas, independentemente do stack tecnológico usado.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 10 - REST API

Baixe a imagem do Immich

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 11 - Imagem

Abaixo está um arquivo de assinatura de exemplo que é enviado para o 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
    }
}
$vbLabelText   $csharpLabel

O código nos permite baixar a imagem do servidor Immich. Certifique-se de gerar uma chave API do servidor Immich.

Enviar Imagem para o 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());
    }
}
$vbLabelText   $csharpLabel

Chamando o Immich e o IronSecureDoc

O código abaixo nos ajudará a integrá-lo.

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);
    }
}
$vbLabelText   $csharpLabel

Use a API do IronSecureDoc para anexar fotos e aplicar assinaturas digitais. Adicione a chamada de API necessária na classe IronSecureDocIntegration para completar o documento. Abaixo está o arquivo PDF de exemplo gerado pelo IronSecureDoc após adicionar a assinatura.

immich Docker Compose (Como Funciona para Desenvolvedores): Figura 12 - Saída em PDF

Conclusão

Enquanto tanto o Immich quanto o IronSecureDoc fazem um ótimo trabalho em responder a necessidades específicas, eles atendem melhor a diferentes casos de uso. O Immich faz bem o gerenciamento de fotos e vídeos autohospedado e rico em recursos, como reconhecimento facial, detecção de objetos e organização simplificada de arquivos multimídia. É ideal para gestão de local de armazenamento de mídia pessoal ou de pequena escala, onde se deseja uma solução adaptada exatamente às suas necessidades.

O IronSecureDoc é uma solução de documentos seguros e assinaturas para toda a organização que integra os fantásticos benefícios da criptografia avançada com a simplicidade de integrar fluxos de trabalho, permitindo que segurança, escalabilidade e manuseio de documentos de nível profissional se integrem.

Confiável e Compatível: Como oferece capacidades de auditoria completas com forte segurança, é confiável e compatível. Usando a API REST do IronSecureDoc, desenvolvedores de sistemas web, móveis e corporativos agora podem integrar facilmente impressão segura e eficiente manuseio e formato de PDF com suas aplicações. Para saber mais sobre o licenciamento do IronSecureDoc, verifique a página de licenciamento. Para saber mais sobre as ofertas da Iron Software, visite a página do Iron Suite.

Perguntas frequentes

Como o Docker pode simplificar a implantação do Immich?

O Docker simplifica a implantação do Immich ao fornecer um ambiente conteinerizado, o que permite fácil instalação e gerenciamento em diversas plataformas, sem configurações complexas ou problemas de dependência.

Quais são os benefícios de usar o Immich para gerenciamento de mídia?

O Immich oferece benefícios como hospedagem própria, um extenso conjunto de recursos, incluindo reconhecimento facial e marcação de objetos, e um alto nível de personalização, permitindo maior controle sobre o gerenciamento e armazenamento de dados.

Como o Docker aprimora a segurança do Immich?

O Docker aprimora a segurança do Immich ao isolar o aplicativo em contêineres, o que minimiza o risco de vulnerabilidades do sistema e garante um ambiente consistente, protegendo assim os arquivos de mídia.

Quais são os passos envolvidos na instalação do Immich usando o Docker Compose?

Para instalar o Immich usando o Docker Compose, você precisa clonar o repositório do Immich, configurar as variáveis de ambiente e executar o comando Docker Compose para iniciar o servidor Immich.

Como o IronSecureDoc utiliza o Docker para gerenciamento de documentos?

O IronSecureDoc utiliza o Docker para facilitar a implantação e integração perfeitas, permitindo recursos avançados de gerenciamento de documentos e segurança, como manipulação de PDFs e assinatura digital em um ambiente conteinerizado.

É possível integrar o Immich e o IronSecureDoc para obter funcionalidades aprimoradas?

Sim, o Immich pode ser integrado ao IronSecureDoc para baixar imagens do Immich e executar ações como assinatura digital usando APIs REST, aprimorando a funcionalidade geral do gerenciamento de mídia e documentos.

Quais recursos o IronSecureDoc oferece para segurança de documentos?

O IronSecureDoc oferece recursos como criptografia robusta, proteção por senha e manipulação avançada de PDFs, garantindo altos níveis de confidencialidade e integridade dos documentos.

Qual o papel do apoio da comunidade na utilização do Immich?

O suporte da comunidade desempenha um papel crucial na utilização do Immich, fornecendo aos usuários recursos, ajuda na resolução de problemas e atualizações, aumentando assim a confiabilidade desta solução de backup de mídia auto-hospedada.

Como os desenvolvedores podem se beneficiar do uso conjunto do Immich e do IronSecureDoc?

Os desenvolvedores podem se beneficiar do uso conjunto do Immich e do IronSecureDoc, aproveitando os recursos de gerenciamento de mídia do Immich juntamente com os recursos de segurança de documentos do IronSecureDoc, criando uma solução abrangente para o tratamento de dados.

Quais são as principais diferenças entre Immich e IronSecureDoc?

As principais diferenças são que o Immich se concentra no gerenciamento e armazenamento de mídia para uso pessoal, enquanto o IronSecureDoc oferece recursos avançados de segurança e gerenciamento de documentos, adequados para fluxos de trabalho organizacionais.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me