Documentação

Guia completo para implantar e gerenciar seu portfólio de fotografia Galleria.

Começando

Galleria é um site moderno de portfólio de fotografia construído com React 19, TypeScript, Express 5 e SQLite. Ele apresenta entrega otimizada de imagens, painel de administração, rastreamento de análises e design responsivo.

Links Rápidos

Configuração do Google OAuth SSO

Ative o Google OAuth Single Sign-On para autenticação segura e sem senha no seu painel de administração da Galleria.

Passo 1: Crie um Projeto no Google Cloud

  1. Vá para o Google Cloud Console
  2. Crie um novo projeto ou selecione um existente
  3. Navegue até APIs e Serviços → Credenciais
  4. Clique em Criar Credenciais → ID do cliente OAuth
  5. Se solicitado, configure a tela de consentimento do OAuth primeiro

Passo 2: Configure o Cliente OAuth

  1. Selecione Aplicativo da Web como o tipo de aplicativo
  2. Adicione seu domínio a Origens JavaScript Autorizadas:
    https://yourdomain.com
  3. Adicione a URL de callback a URIs de redirecionamento autorizadas:
    https://yourdomain.com/api/auth/google/callback
  4. Clique em Criar e salve suas credenciais

Passo 3: Configure nas Configurações da Galleria

  1. Faça login no seu painel de administração da Galleria
  2. Navegue até Configurações → Google OAuth
  3. Digite seu ID de Cliente do Google
  4. Digite seu Segredo do Cliente do Google
  5. Clique em Salvar para habilitar o SSO do Google OAuth

Conversão Automática de Usuários: Usuários existentes com endereços de e-mail correspondentes serão automaticamente convertidos para autenticação do Google OAuth. Eles podem fazer login com o Google imediatamente após a configuração do OAuth.

Dica de Segurança: Adicione apenas endereços de e-mail confiáveis como usuários administradores. Você pode gerenciar o acesso dos usuários a partir do painel administrativo após a configuração inicial.

Configuração do OpenObserve Analytics

O OpenObserve fornece poderosas análises de logs e monitoramento em tempo real para o seu site Galleria com capacidades de geo-enriquecimento.

Passo 1: Instale o OpenObserve com Docker

Execute o OpenObserve usando Docker Compose:

Passo 2: Crie uma Conta de Serviço

  1. Acesse o OpenObserve em http://localhost:5080
  2. Faça login com suas credenciais de administrador
  3. Navegue até Configurações → Contas de Serviço
  4. Clique em Criar Conta de Serviço
  5. Dê um nome (por exemplo, "galleria-analytics") e atribua permissões apropriadas
  6. Copie o token de API gerado para uso posterior

Passo 7: Configurar Galleria

  1. Faça login no seu painel de administração do Galleria
  2. Navegue até Configurações → Análise
  3. Insira sua URL do OpenObserve (por exemplo, http://localhost:5080)
  4. Insira seu ID de Organização
  5. Insira seu Nome de Fluxo (site)
  6. Insira seu Nome de Usuário (do Passo 2)
  7. Insira sua Senha (o token da conta de serviço do Passo 2)
  8. Clique em Salvar para ativar a análise do OpenObserve

Sucesso! Sua análise agora incluirá dados geo-enriquecidos com cidade, região, país, ISP e coordenadas para todos os visitantes.

Codificação de Vídeo por Hardware

O Galleria suporta codificação de vídeo acelerada por hardware para processamento de vídeo de 5 a 10 vezes mais rápido usando sua GPU.

Hardware Suportado

GPUs NVIDIA (NVENC)

Suporte Docker e nativo

Intel Quick Sync (QSV)

Suporte nativo apenas

GPUs AMD (AMF)

Apoio nativo apenas

Apple VideoToolbox

macOS nativo apenas

Habilitar Codificação por Hardware

  1. Vá para Painel de Administração → Configurações → Qualidade de Vídeo
  2. Ative "Transcodificação por Hardware" para habilitado
  3. O processamento de vídeo agora usará aceleração de GPU quando disponível

Implantação em Produção

Usando PM2

Para implantação em produção sem Docker:

npm run build
npm install -g pm2
pm2 start ecosystem.config.cjs
pm2 save
pm2 startup

Implantação Automatizada: Faça push para o branch master e o GitHub Actions implantará automaticamente suas alterações.

Ajude a Melhorar Esta Documentação

Encontrou um erro ou quer contribuir para a documentação? Agradecemos contribuições!

Contribua no GitHub