Português
Começar

← Todos os templates · Mídia

Faça deploy de PhotoPrism em um clique

Uma biblioteca de fotos com IA: navegue, busque, veja no mapa e compartilhe suas fotos e vídeos

Uma alternativa auto-hospedada para Google Photos e Apple Photos.

O que é PhotoPrism?

O PhotoPrism é um app web para uma biblioteca de fotos e vídeos. Ele lê a data, a câmera e o local de cada arquivo, marca com etiquetas o que uma foto mostra, encontra rostos e os agrupa em pessoas, e detecta duplicatas. A biblioteca pode ser explorada por busca, álbuns, momentos, calendário, um mapa-múndi de lugares, pessoas, etiquetas e pastas, e aceita arquivos RAW, vídeos e Live Photos. Ele se instala no celular como progressive web app e serve os originais por WebDAV, então apps como o PhotoSync enviam sozinhos as fotos da câmera de um celular.

As pessoas auto-hospedam o PhotoPrism para manter as fotos fora do Google Photos e do iCloud. Este template roda a edição Community, gratuita, com MariaDB, as fotos e as miniaturas em volumes, e cria o administrador a partir dos campos antes de o PhotoPrism responder a qualquer pessoa. O porém: outras contas de usuário são adicionadas pela linha de comando, já que a tela de gerenciamento de usuários, mais papéis e os mapas 3D ficam nas assinaturas pagas, e não há apps nativos para celular.

Hospedagem de PhotoPrism no Pethost

  1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
  2. Novo projeto abre em PhotoPrism. Você preenche o que ele pede e clica em Criar projeto: Usuário, Senha do administrador.
  3. Em um ou dois minutos PhotoPrism está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
  4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

Perguntas sobre PhotoPrism

O PhotoPrism é gratuito?

Sim. A edição Community é de código aberto sob a AGPL-3.0 e gratuita. A assinatura Essentials, a partir de € 2 por mês com cobrança anual, adiciona mais papéis de usuário e mapas melhores, e a Plus, a partir de € 6 por mês, adiciona uma tela de gerenciamento de usuários.

PhotoPrism ou Immich?

Os dois são bibliotecas de fotos auto-hospedadas com reconhecimento facial e mapas. O Immich vem com apps nativos que fazem backup do celular, enquanto o PhotoPrism é um app web com o qual os celulares sincronizam por WebDAV.

O PhotoPrism reconhece rostos?

Sim. Ele detecta rostos enquanto indexa, agrupa os da mesma pessoa e, depois que você dá nome a um grupo em “Pessoas”, encontra essa pessoa no resto da biblioteca.

Como envio fotos do celular para o PhotoPrism?

Abra-o no navegador do celular e envie, ou sincronize por WebDAV com um app como o PhotoSync, usando o endereço e a conta que aparecem em Configurações → Conta → Conectar via WebDAV.

Como adiciono usuários ao PhotoPrism?

Na edição Community, pela linha de comando: photoprism users add com um nome de usuário, um papel e uma senha, rodado no shell do serviço photoprism. A tela de gerenciamento de usuários faz parte da assinatura Plus, paga.

De quanta memória e disco PhotoPrism precisa?

O PhotoPrism usa cerca de 300 MB de memória com o MariaDB em repouso e cerca de 550 MB enquanto importa; o disco guarda as fotos no tamanho original delas, mais as miniaturas. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

Arquivo Docker Compose de PhotoPrism

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

Containers: photoprism (photoprism/photoprism:261007), mariadb (mariadb:11.8).

Volumes, no backup noturno: originals, storage, db.

services:
  photoprism:
    image: photoprism/photoprism:261007
    restart: unless-stopped
    stop_grace_period: 15s
    working_dir: /photoprism
    environment:
      PHOTOPRISM_SITE_URL: ${URL}/
      # The administrator is made from these at the first start, before PhotoPrism answers anyone;
      # every page and photo asks to sign in. Later the password is changed in PhotoPrism.
      PHOTOPRISM_AUTH_MODE: password
      PHOTOPRISM_ADMIN_USER: ${ADMIN_USERNAME}
      PHOTOPRISM_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      # The proxy serves HTTPS; requests come from it over the project's network.
      PHOTOPRISM_DISABLE_TLS: "true"
      PHOTOPRISM_DEFAULT_TLS: "false"
      PHOTOPRISM_TRUSTED_PROXY: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
      PHOTOPRISM_DATABASE_DRIVER: mysql
      PHOTOPRISM_DATABASE_SERVER: mariadb:3306
      PHOTOPRISM_DATABASE_NAME: photoprism
      PHOTOPRISM_DATABASE_USER: photoprism
      PHOTOPRISM_DATABASE_PASSWORD: ${MARIADB_PASSWORD}
      PHOTOPRISM_SIDECAR_YAML: "true"
      PHOTOPRISM_BACKUP_ALBUMS: "true"
      PHOTOPRISM_BACKUP_DATABASE: "true"
      PHOTOPRISM_BACKUP_SCHEDULE: daily
      PHOTOPRISM_UPLOAD_NSFW: "true"
    volumes:
      # The photos and videos as they were uploaded.
      - originals:/photoprism/originals
      # The index's thumbnails, sidecar files and backups.
      - storage:/photoprism/storage
    depends_on:
      mariadb:
        condition: service_healthy

  mariadb:
    image: mariadb:11.8
    restart: unless-stopped
    stop_grace_period: 15s
    command: --innodb-buffer-pool-size=256M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    environment:
      MARIADB_AUTO_UPGRADE: "1"
      MARIADB_INITDB_SKIP_TZINFO: "1"
      MARIADB_DATABASE: photoprism
      MARIADB_USER: photoprism
      MARIADB_PASSWORD: ${MARIADB_PASSWORD}
      MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
    volumes:
      - db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 30s

volumes:
  originals:
  storage:
  db:

Mais em Mídia