{"id":13393139,"url":"https://github.com/photoprism/photoprism","last_synced_at":"2026-10-20T20:25:51.358Z","repository":{"id":37249941,"uuid":"119160553","full_name":"photoprism/photoprism","owner":"photoprism","description":"AI-Powered Photos App 🌈💎✨","archived":false,"fork":false,"pushed_at":"2026-10-18T17:47:01.000Z","size":412385,"stargazers_count":40321,"open_issues_count":464,"forks_count":2333,"subscribers_count":320,"default_branch":"develop","last_synced_at":"2026-10-19T01:31:48.264Z","etag":null,"topics":["ai","golang","google-photos","machine-learning","photography","private-cloud","self-hosted","tensorflow"],"latest_commit_sha":null,"homepage":"https://www.photoprism.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/photoprism.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":"FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","accessibility":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":"AGENTS.md","claude":null,"gemini":null,"cursor":null,"copilot":".github/copilot-instructions.md","dco":null,"cla":null,"disclosure":null},"funding":{"custom":"https://www.photoprism.app/editions/#compare","github":"photoprism","patreon":"photoprism"}},"created_at":"2018-01-27T12:00:15.000Z","updated_at":"2026-10-19T00:09:27.000Z","dependencies_parsed_at":"2026-10-18T20:26:39.143Z","dependency_job_id":null,"html_url":"https://github.com/photoprism/photoprism","commit_stats":{"total_commits":9148,"total_committers":176,"mean_commits":51.97727272727273,"dds":0.5721469173589856,"last_synced_commit":"75e001af68b0f5a52298be13c9de252938211c47"},"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/photoprism/photoprism","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/photoprism%2Fphotoprism","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/photoprism%2Fphotoprism/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/photoprism%2Fphotoprism/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/photoprism%2Fphotoprism/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/photoprism","download_url":"https://codeload.github.com/photoprism/photoprism/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/photoprism%2Fphotoprism/sbom","scorecard":{"id":114104,"data":{"date":"2025-08-04","repo":{"name":"github.com/photoprism/photoprism","commit":"6655a66e8f0c6a0778d6593bf9c14adef0df02d7"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.3,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 14 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 1/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":9,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:12","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:13","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 250707-d28b3101e not signed: https://api.github.com/repos/photoprism/photoprism/releases/230503955","Warn: release artifact 250426-27ec7a128 not signed: https://api.github.com/repos/photoprism/photoprism/releases/214944764","Warn: release artifact 250425-21ddba459 not signed: https://api.github.com/repos/photoprism/photoprism/releases/214756852","Warn: release artifact 250321-57590c48b not signed: https://api.github.com/repos/photoprism/photoprism/releases/207203769","Warn: release artifact 250228-43447fa38 not signed: https://api.github.com/repos/photoprism/photoprism/releases/203039289","Warn: release artifact 250707-d28b3101e does not have provenance: https://api.github.com/repos/photoprism/photoprism/releases/230503955","Warn: release artifact 250426-27ec7a128 does not have provenance: https://api.github.com/repos/photoprism/photoprism/releases/214944764","Warn: release artifact 250425-21ddba459 does not have provenance: https://api.github.com/repos/photoprism/photoprism/releases/214756852","Warn: release artifact 250321-57590c48b does not have provenance: https://api.github.com/repos/photoprism/photoprism/releases/207203769","Warn: release artifact 250228-43447fa38 does not have provenance: https://api.github.com/repos/photoprism/photoprism/releases/203039289"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":3,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'develop'","Info: 'allow deletion' disabled on branch 'release'","Info: 'force pushes' disabled on branch 'develop'","Info: 'force pushes' disabled on branch 'release'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'develop'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'release'","Warn: 'stale review dismissal' is disabled on branch 'develop'","Warn: 'stale review dismissal' is disabled on branch 'release'","Warn: branch 'develop' does not require approvers","Warn: branch 'release' does not require approvers","Warn: codeowners review is not required on branch 'develop'","Warn: codeowners review is not required on branch 'release'","Warn: 'last push approval' is disabled on branch 'develop'","Warn: 'last push approval' is disabled on branch 'release'","Warn: no status checks found to merge onto branch 'develop'","Warn: no status checks found to merge onto branch 'release'","Info: PRs are required in order to make changes on branch 'develop'","Info: PRs are required in order to make changes on branch 'release'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 1 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/photoprism/photoprism/codeql-analysis.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/photoprism/photoprism/codeql-analysis.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/photoprism/photoprism/codeql-analysis.yml/develop?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:2: pin your Docker image by updating photoprism/develop:250808-plucky to photoprism/develop:250808-plucky@sha256:3a23512a1182c459687102beb63dcd4390af1a2ba79e7152091f316e2fa73133","Warn: containerImage not pinned by hash: docker/ddns/Dockerfile:1: pin your Docker image by updating golang:1.22-alpine to golang:1.22-alpine@sha256:1699c10032ca2582ec89a24a1312d986a3f094aed3d5c1147b19880afe40e052","Warn: containerImage not pinned by hash: docker/demo/Dockerfile:1","Warn: containerImage not pinned by hash: docker/demo/debian/Dockerfile:1","Warn: containerImage not pinned by hash: docker/demo/ubuntu/Dockerfile:1","Warn: containerImage not pinned by hash: docker/demo/unstable/Dockerfile:1","Warn: containerImage not pinned by hash: docker/develop/armv7/Dockerfile:2: pin your Docker image by updating ubuntu:noble to ubuntu:noble@sha256:a08e551cb33850e4740772b38217fc1796a66da2506d312abe51acda354ff061","Warn: containerImage not pinned by hash: docker/develop/bookworm-slim/Dockerfile:2: pin your Docker image by updating debian:bookworm-slim to debian:bookworm-slim@sha256:2424c1850714a4d94666ec928e24d86de958646737b1d113f5b2207be44d37d8","Warn: containerImage not pinned by hash: docker/develop/bookworm/Dockerfile:2: pin your Docker image by updating debian:bookworm-slim to debian:bookworm-slim@sha256:2424c1850714a4d94666ec928e24d86de958646737b1d113f5b2207be44d37d8","Warn: containerImage not pinned by hash: docker/develop/bullseye-slim/Dockerfile:2: pin your Docker image by updating debian:bullseye-slim to debian:bullseye-slim@sha256:c2c58af6e3ceeb3ed40adba85d24cfa62b7432091597ada9b76b56a51b62f4c6","Warn: containerImage not pinned by hash: docker/develop/bullseye/Dockerfile:2: pin your Docker image by updating golang:1-bullseye to golang:1-bullseye@sha256:637f45ef9f8fb4228406268d544df3f1251703cda025f706902c3627fa621c54","Warn: containerImage not pinned by hash: docker/develop/buster/Dockerfile:2: pin your Docker image by updating golang:1-buster to golang:1-buster@sha256:eb3f9ac805435c1b2c965d63ce460988e1000058e1f67881324746362baf9572","Warn: containerImage not pinned by hash: docker/develop/impish/Dockerfile:2: pin your Docker image by updating ubuntu:impish to ubuntu:impish@sha256:ff46b78279f207db3b8e57e20dee7cecef3567d09489369d80591f150f9c8154","Warn: containerImage not pinned by hash: docker/develop/jammy-slim/Dockerfile:2: pin your Docker image by updating ubuntu:jammy to ubuntu:jammy@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb","Warn: containerImage not pinned by hash: docker/develop/jammy/Dockerfile:2: pin your Docker image by updating ubuntu:jammy to ubuntu:jammy@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb","Warn: containerImage not pinned by hash: docker/develop/lunar-slim/Dockerfile:2: pin your Docker image by updating ubuntu:lunar to ubuntu:lunar@sha256:5a828e28de105c3d7821c4442f0f5d1c52dc16acf4999d5f31a3bc0f03f06edd","Warn: containerImage not pinned by hash: docker/develop/lunar/Dockerfile:2: pin your Docker image by updating ubuntu:lunar to ubuntu:lunar@sha256:5a828e28de105c3d7821c4442f0f5d1c52dc16acf4999d5f31a3bc0f03f06edd","Warn: containerImage not pinned by hash: docker/develop/mantic-slim/Dockerfile:2: pin your Docker image by updating ubuntu:mantic to ubuntu:mantic@sha256:fd7fe639db24c4e005643921beea92bc449aac4f4d40d60cd9ad9ab6456aec01","Warn: containerImage not pinned by hash: docker/develop/mantic/Dockerfile:2: pin your Docker image by updating ubuntu:mantic to ubuntu:mantic@sha256:fd7fe639db24c4e005643921beea92bc449aac4f4d40d60cd9ad9ab6456aec01","Warn: containerImage not pinned by hash: docker/develop/noble-slim/Dockerfile:2: pin your Docker image by updating ubuntu:noble to ubuntu:noble@sha256:a08e551cb33850e4740772b38217fc1796a66da2506d312abe51acda354ff061","Warn: containerImage not pinned by hash: docker/develop/noble/Dockerfile:2: pin your Docker image by updating ubuntu:noble to ubuntu:noble@sha256:a08e551cb33850e4740772b38217fc1796a66da2506d312abe51acda354ff061","Warn: containerImage not pinned by hash: docker/develop/oracular-slim/Dockerfile:2: pin your Docker image by updating ubuntu:oracular to ubuntu:oracular@sha256:cdf755952ed117f6126ff4e65810bf93767d4c38f5c7185b50ec1f1078b464cc","Warn: containerImage not pinned by hash: docker/develop/oracular/Dockerfile:2: pin your Docker image by updating ubuntu:oracular to ubuntu:oracular@sha256:cdf755952ed117f6126ff4e65810bf93767d4c38f5c7185b50ec1f1078b464cc","Warn: containerImage not pinned by hash: docker/develop/plucky-slim/Dockerfile:2: pin your Docker image by updating ubuntu:plucky to ubuntu:plucky@sha256:95a416ad2446813278ec13b7efdeb551190c94e12028707dd7525632d3cec0d1","Warn: containerImage not pinned by hash: docker/develop/plucky/Dockerfile:2: pin your Docker image by updating ubuntu:plucky to ubuntu:plucky@sha256:95a416ad2446813278ec13b7efdeb551190c94e12028707dd7525632d3cec0d1","Warn: containerImage not pinned by hash: docker/dummy/oidc/Dockerfile:1: pin your Docker image by updating golang:1 to golang:1@sha256:2c89c41fb9efc3807029b59af69645867cfe978d2b877d475be0d72f6c6ce6f6","Warn: containerImage not pinned by hash: docker/dummy/webdav/Dockerfile:1: pin your Docker image by updating golang:1 to golang:1@sha256:2c89c41fb9efc3807029b59af69645867cfe978d2b877d475be0d72f6c6ce6f6","Warn: containerImage not pinned by hash: docker/goproxy/Dockerfile:2","Warn: containerImage not pinned by hash: docker/goproxy/Dockerfile:12: pin your Docker image by updating golang:alpine to golang:alpine@sha256:c8c5f95d64aa79b6547f3b626eb84b16a7ce18a139e3e9ca19a8c078b85ba80d","Warn: containerImage not pinned by hash: docker/photoprism/armv7/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/armv7/Dockerfile:23: pin your Docker image by updating ubuntu:noble to ubuntu:noble@sha256:a08e551cb33850e4740772b38217fc1796a66da2506d312abe51acda354ff061","Warn: containerImage not pinned by hash: docker/photoprism/bookworm/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/bookworm/Dockerfile:22: pin your Docker image by updating photoprism/develop:bookworm-slim to photoprism/develop:bookworm-slim@sha256:8ae59bbfe8be0d07b332ee2b25e2a780dc87589404df114bdf3f04153398430b","Warn: containerImage not pinned by hash: docker/photoprism/bullseye/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/bullseye/Dockerfile:22: pin your Docker image by updating photoprism/develop:bullseye-slim to photoprism/develop:bullseye-slim@sha256:f1caf46ec4e94ca0aadcd7e9e7d379f645fe155d9fcb1faf0246fd6902ef8284","Warn: containerImage not pinned by hash: docker/photoprism/buster/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/buster/Dockerfile:22: pin your Docker image by updating debian:buster-slim to debian:buster-slim@sha256:bb3dc79fddbca7e8903248ab916bb775c96ec61014b3d02b4f06043b604726dc","Warn: containerImage not pinned by hash: docker/photoprism/impish/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/impish/Dockerfile:22: pin your Docker image by updating ubuntu:impish to ubuntu:impish@sha256:ff46b78279f207db3b8e57e20dee7cecef3567d09489369d80591f150f9c8154","Warn: containerImage not pinned by hash: docker/photoprism/jammy/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/jammy/Dockerfile:23: pin your Docker image by updating photoprism/develop:jammy-slim to photoprism/develop:jammy-slim@sha256:5d66a8772369d57596ce1365a98fc2aa540e52f6159737b7a9df508baa9d5605","Warn: containerImage not pinned by hash: docker/photoprism/lunar/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/lunar/Dockerfile:23: pin your Docker image by updating photoprism/develop:lunar-slim to photoprism/develop:lunar-slim@sha256:3d4a66e5b347c4e41513a393534d4b2bbe4dc27db74d7ca05c57d5593ab0bf8f","Warn: containerImage not pinned by hash: docker/photoprism/mantic/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/mantic/Dockerfile:23: pin your Docker image by updating photoprism/develop:mantic-slim to photoprism/develop:mantic-slim@sha256:1efeba358b331d476701aad6bf1087038826d4bf49a14c75372491647d317472","Warn: containerImage not pinned by hash: docker/photoprism/noble/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/noble/Dockerfile:23: pin your Docker image by updating photoprism/develop:noble-slim to photoprism/develop:noble-slim@sha256:7578a11b922b9a5511e98ab976e2851211c44a6410f80840ab060f95d9fe871b","Warn: containerImage not pinned by hash: docker/photoprism/oracular/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/oracular/Dockerfile:23: pin your Docker image by updating photoprism/develop:oracular-slim to photoprism/develop:oracular-slim@sha256:f10feecd3f13603b79179b2a2822494065c734908459b3ad9283d94af786ac7f","Warn: containerImage not pinned by hash: docker/photoprism/plucky/Dockerfile:2","Warn: containerImage not pinned by hash: docker/photoprism/plucky/Dockerfile:23: pin your Docker image by updating photoprism/develop:plucky-slim to photoprism/develop:plucky-slim@sha256:bd5f0677d906df80279371418852e34751b943d2af9e903cd1aee13eb08ffe96","Warn: containerImage not pinned by hash: docker/tensorflow/Dockerfile:1: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb","Warn: containerImage not pinned by hash: docker/tensorflow/arm64/Dockerfile:1: pin your Docker image by updating ubuntu:22.04 to ubuntu:22.04@sha256:1ec65b2719518e27d4d25f104d93f9fac60dc437f81452302406825c46fcc9cb","Warn: containerImage not pinned by hash: docker/tensorflow/cross/Dockerfile:2","Warn: goCommand not pinned by hash: docker/ddns/Dockerfile:6","Warn: goCommand not pinned by hash: docker/dummy/webdav/Dockerfile:8","Warn: downloadThenRun not pinned by hash: docker/tensorflow/Dockerfile:36-45","Warn: downloadThenRun not pinned by hash: docker/tensorflow/arm64/Dockerfile:36-45","Warn: goCommand not pinned by hash: scripts/dist/install-admin-tools.sh:19","Warn: goCommand not pinned by hash: scripts/dist/install-admin-tools.sh:23","Warn: goCommand not pinned by hash: scripts/dist/install-admin-tools.sh:26","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:43","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:44","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:45","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:46","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:51","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:52","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:53","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:54","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:55","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:56","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:57","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:58","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:59","Warn: goCommand not pinned by hash: scripts/dist/install-go-tools.sh:60","Warn: goCommand not pinned by hash: scripts/dist/install-k8s-tools.sh:16","Warn: goCommand not pinned by hash: scripts/dist/install-k8s-tools.sh:19","Warn: npmCommand not pinned by hash: scripts/dist/install-nodejs.sh:45","Warn: npmCommand not pinned by hash: scripts/dist/install-nodejs.sh:47","Warn: npmCommand not pinned by hash: scripts/dist/install-nodejs.sh:49","Warn: npmCommand not pinned by hash: scripts/dist/install-nodejs.sh:51","Warn: npmCommand not pinned by hash: scripts/dist/install-nodejs.sh:56","Warn: goCommand not pinned by hash: scripts/dist/install-nuclei.sh:23","Warn: downloadThenRun not pinned by hash: setup/cloud/digitalocean/install_photoprism.sh:24","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  54 containerImage dependencies pinned","Info:   0 out of  22 goCommand dependencies pinned","Info:   0 out of   3 downloadThenRun dependencies pinned","Info:   0 out of   5 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"28 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-2958 / GHSA-3669-72x9-r9p3","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2025-3488 / GHSA-6v2p-p543-phr9","Warn: Project is vulnerable to: GO-2024-2611 / GHSA-8r3f-844c-mc37","Warn: Project is vulnerable to: GO-2024-2631 / GHSA-c5q2-7r4c-mv6g","Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx","Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-fvqr-27wr-82fm","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-hxm2-r34f-qmc5","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-q7pp-wcgr-pffx"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T22:45:11.935Z","repository_id":37249941,"created_at":"2025-08-15T22:45:11.935Z","updated_at":"2025-08-15T22:45:11.935Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38345271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","golang","google-photos","machine-learning","photography","private-cloud","self-hosted","tensorflow"],"created_at":"2024-07-30T17:00:43.955Z","updated_at":"2026-10-20T20:25:51.344Z","avatar_url":"https://github.com/photoprism.png","language":"Go","funding_links":["https://www.photoprism.app/editions/#compare","https://github.com/sponsors/photoprism","https://patreon.com/photoprism","https://www.patreon.com/pledges"],"categories":["Go","武器库","Popular","HarmonyOS","File Sync \u0026 Backup","Multimedia","\u003cimg src=\"./assets/satellite.svg\" width=\"16\" height=\"16\" style=\"vertical-align: middle;\"\u003e Satellites","Apps","Media","Application Recommendation","💬 Chat UIs \u0026 Local Runtimes (14)","tensorflow","ai","golang","Linux生态圈用户工具","Image Generation \u0026 Editing","🤖 AI \u0026 Machine Learning","Privacy/Security","Table of Contents","Photos \u0026 videos","Design \u0026 Multimedia","Other"],"sub_categories":["人工智能","Windows Manager","Image and pictures","PhotoManagement","📽️ Media Management","Photo Management","Other","Media Management","General Purpose Libraries"],"readme":"PhotoPrism: Browse Your Life in Pictures\n========================================\n\n[![License: AGPL](https://img.shields.io/badge/license-AGPL%203.0-454377.svg)](https://docs.photoprism.app/license/agpl/)\n[![Documentation](https://img.shields.io/badge/read-the%20docs-4d6a91.svg)](https://docs.photoprism.app/)\n[![Community Chat](https://img.shields.io/badge/chat-on%20gitter-4d6a91.svg)](https://link.photoprism.app/chat)\n[![GitHub Discussions](https://img.shields.io/badge/ask-%20on%20github-4d6a91.svg)](https://link.photoprism.app/discussions)\n[![Bluesky Social](https://dl.photoprism.app/img/badges/badge-bluesky.svg)](https://bsky.app/profile/photoprism.app)\n[![Mastodon](https://dl.photoprism.app/img/badges/badge-floss-social.svg)](https://floss.social/@photoprism)\n\nPhotoPrism® is an AI-powered, privacy-first app for browsing, organizing, and sharing photos and videos. It helps tag, search, and rediscover media without getting in your way, whether self-hosted or in the cloud.\n\n![](https://dl.photoprism.app/img/ui/2025/desktop-search.jpg)\n\nTo get a first impression, you are welcome to play with our [public demo](https://try.photoprism.app/). Please be careful not to upload any private, unlawful or offensive pictures.\n\n## Feature Overview ##\n\n**Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.** That's why PhotoPrism was built from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality:\n\n\u003cimg align=\"right\" height=\"270\" src=\"https://dl.photoprism.app/img/ui/2025/iphone-crocus-540px.png\"\u003e\n\n* Browse [all your pictures](https://docs.photoprism.app/user-guide/organize/browse/) without worrying about [RAW images](https://www.photoprism.app/kb/file-formats/) or [video formats](https://docs.photoprism.app/user-guide/organize/video/)\n* Whether you're using a phone, tablet, or desktop computer, our [intuitive PWA](https://try.photoprism.app/) provides a native app-like experience and can be [easily installed](https://docs.photoprism.app/user-guide/pwa/) on your home screen\n* Quickly find specific photos and videos with [powerful search filters](https://docs.photoprism.app/user-guide/search/filters/) that can be combined and are available for [many different properties](https://docs.photoprism.app/user-guide/search/filters/#filter-reference), including [labels](https://try.photoprism.app/library/labels), [location](https://try.photoprism.app/library/places?q=s2:47a85a63f764), [resolution](https://try.photoprism.app/library/browse?view=cards\u0026q=mp:4), [color](https://try.photoprism.app/library/browse?view=cards\u0026q=color:red), [chroma](https://try.photoprism.app/library/browse?view=cards\u0026q=mono%3Atrue), and [quality](https://try.photoprism.app/library/review)\n* [Automatically labels your pictures](https://try.photoprism.app/library/labels) based on content and location, and recognizes the faces of [your family and friends](https://try.photoprism.app/library/people/new)\n* [Live Photos](https://try.photoprism.app/library/live) start playing when you [hover over them](https://try.photoprism.app/library/browse?view=cards\u0026q=type%3Alive) and when viewing a slideshow\n* Six high-resolution [World Maps](https://try.photoprism.app/library/places) and our [privacy-preserving geocoding service](https://docs.photoprism.app/getting-started/#maps-places) help bring back memories of your favorite trips and let you explore the world\n* Metadata can be extracted and merged from Exif, XMP, and other sources like Google Photos\n* [Use compatible apps](https://docs.photoprism.app/user-guide/native-apps/) like [PhotoSync](https://link.photoprism.app/photosync) to back up iOS and Android phones in the background\n* WebDAV clients such as [Microsoft's Windows Explorer](https://docs.photoprism.app/user-guide/sync/webdav/#__tabbed_1_2) and [Apple's Finder](https://docs.photoprism.app/user-guide/sync/webdav/#connect-to-a-webdav-server) can [connect directly to PhotoPrism](https://docs.photoprism.app/user-guide/sync/webdav/), allowing you to open, edit, and delete files from your computer as if they were local\n\nBeing completely [**self-funded and independent**](https://link.photoprism.app/membership), we can promise you that we will [never sell your data](https://www.photoprism.app/privacy/) and that we will [always be transparent](https://www.photoprism.app/terms/) about our software and services. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services. 🔒\n\n## Getting Started ##\n\nStep-by-step [installation instructions](https://docs.photoprism.app/getting-started/) for our self-hosted [community edition](https://link.photoprism.app/personal-editions) can be found on [docs.photoprism.app](https://docs.photoprism.app/getting-started/) - all you need is a Web browser and [Docker](https://docs.docker.com/get-docker/) to run the server. It is available for Mac, Linux, and Windows.\n\nThe [stable releases](https://docs.photoprism.app/release-notes/) and [development preview](https://docs.photoprism.app/getting-started/updates/#development-preview) are available as a [multi-arch image](https://link.photoprism.app/docker-hub) for 64-bit AMD, Intel, and ARM processors.\nThat means, [Raspberry Pi](https://docs.photoprism.app/getting-started/raspberry-pi/) and Apple Silicon users enjoy the exact same functionality and can follow the same [installation steps](https://docs.photoprism.app/getting-started/docker-compose/).\n\nSee our [Getting Started FAQ](https://docs.photoprism.app/getting-started/faq/#how-can-i-install-photoprism-without-docker) for alternative installation methods, for example using the [*tar.gz* packages](https://dl.photoprism.app/pkg/linux/README.html) we provide.\n\n## Support Our Mission 💎 ##\n\n**PhotoPrism is 100% self-funded and independent.** Your [continued support](https://link.photoprism.app/membership) helps us [provide more features to the public](https://www.photoprism.app/oss/faq/#what-functionality-is-generally-available), release [regular updates](https://docs.photoprism.app/release-notes/), and remain independent!\n\nOur members [enjoy additional features](https://www.photoprism.app/kb/personal/), including access to [interactive world maps](https://try.photoprism.app/library/places), and can join our private chat room to [connect with our team](https://www.photoprism.app/about/team/). We currently have the following membership options:\n\n- You can [sign up directly on our website](https://link.photoprism.app/membership) and pay with credit card or SEPA through Stripe, so you don't need to [link an external account](https://www.photoprism.app/kb/activation/) and can easily upgrade or downgrade at any time\n- Alternatively, [Patreon](https://link.photoprism.app/patreon) also supports PayPal, additional currencies, and lets you choose between monthly and annual billing for all tiers\n\nIf you currently support us through [GitHub Sponsors](https://link.photoprism.app/sponsor), you can also [register on our website](https://my.photoprism.app/register) and use the *Activate GitHub Sponsors Membership* button to link your account. For details on this and how to [link your Patreon account](https://www.patreon.com/pledges), see our [Activation Guide](https://www.photoprism.app/kb/activation/).\n\nYou are [welcome to contact us](https://www.photoprism.app/contact/) for change requests, membership questions, and business partnerships.\n\n[View Membership FAQ ›](https://www.photoprism.app/membership/faq/) [Sign Up ›](https://link.photoprism.app/membership)\n\n### Why Your Support Matters ###\n\n- Your continued support helps us provide regular updates and remain independent, so we can fulfill our mission and protect your privacy\n- Sustained funding is key to quickly releasing new features requested by you and other community members\n- Being self-funded and independent, we can personally promise you that we will never sell your data and that we will always be transparent about our software and services\n\nPlease also leave [a star](https://github.com/photoprism/photoprism/stargazers) on GitHub if you like this project. It provides additional motivation to keep going.\n\n**A big thank you to all current and past sponsors, whose generous support has been and continues to be essential to the success of the project!**\n\n[View Sponsors ›](SPONSORS.md) [View Credits ›](https://docs.photoprism.app/credits/)\n\n## Getting Support ##\n\nVisit [docs.photoprism.app/user-guide](https://docs.photoprism.app/user-guide/) to learn how to [sync](https://docs.photoprism.app/user-guide/sync/webdav/), [organize](https://docs.photoprism.app/user-guide/library/), and [share](https://docs.photoprism.app/user-guide/share/) your pictures. If you need help installing our software at home, you are welcome to post your question in [GitHub Discussions](https://link.photoprism.app/discussions) or ask in our [Community Chat](https://link.photoprism.app/chat).\nCommon problems can be quickly diagnosed and solved using our [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/). Eligible [members](https://link.photoprism.app/membership) are also welcome to email us for technical support and advice.\n\n## Upcoming Features and Enhancements ##\n\n\u003ca href=\"https://github.com/orgs/photoprism/projects/5\"\u003e\u003cimg align=\"right\" height=\"240\" src=\"https://dl.photoprism.app/img/ui/2025/upcoming-features-240px.png\"\u003e\u003c/a\u003e\n\nOur [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are in progress and what features will be implemented next. You are invited to give ideas you like a thumbs-up, so we know what's most popular.\n\nBe aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price though, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, enhancements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.\n\n**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up for a personal membership](https://link.photoprism.app/membership) or [purchasing a commercial license](https://www.photoprism.app/teams/#compare).**\n\n[Become a Member ›](https://link.photoprism.app/membership)\n\n## GitHub Issues ⚠️ ##\n\nWe kindly ask you not to report bugs via GitHub Issues **unless you are certain to have found a fully reproducible and previously unreported issue** that must be fixed directly in the app. Thank you for your careful consideration!\n\n- When browsing issues, please note that **our team and all issue subscribers receive an email notification** from GitHub whenever a new comment is added, so these should only be used for sharing important information and not for [discussions, questions](https://github.com/photoprism/photoprism/discussions), or [expressing personal opinions](https://www.photoprism.app/code-of-conduct/)\n- In order for us to investigate [new bug reports](https://www.photoprism.app/kb/reporting-bugs/), they must include **a complete list of steps to reproduce the problem**, the software versions used and information about the environment in which the problem occurred, such as [browser type, browser version, browser plug-ins](https://docs.photoprism.app/getting-started/troubleshooting/browsers/), operating system, [storage type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#storage), [processor type](https://docs.photoprism.app/getting-started/troubleshooting/performance/#server-cpu), and [memory size](https://docs.photoprism.app/getting-started/troubleshooting/performance/#memory)\n- [Contact us](https://www.photoprism.app/contact/) or [a community member](https://link.photoprism.app/discussions) if you need help, it could be a local configuration problem, or a misunderstanding in how the software works\n- This gives us the opportunity to [improve our documentation](https://docs.photoprism.app/getting-started/troubleshooting/) and provide best-in-class support instead of dealing with unclear/duplicate bug reports or triggering a flood of notifications by replying to comments\n\n## Connect with the Community ##\n\n\u003ca href=\"https://link.photoprism.app/chat\"\u003e\u003cimg align=\"right\" width=\"144\" height=\"144\" src=\"https://dl.photoprism.app/img/brands/element-logo.svg\"\u003e\u003c/a\u003e\n\nFollow us on [Mastodon](https://floss.social/@photoprism), [Bluesky](https://bsky.app/profile/photoprism.app), or join the [Community Chat](https://link.photoprism.app/chat) to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct/) explains the \"dos and don’ts\" when interacting with other community members.\n\nAs a [contributor](CONTRIBUTING.md), you are also welcome to [contact us directly](https://www.photoprism.app/contact/) if you have something on your mind that you don't want to discuss publicly. Please note, however, that due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less.\n\n## Every Contribution Makes a Difference ##\n\nWe welcome [contributions](CONTRIBUTING.md) of any kind, including blog posts, tutorials, translations, testing, writing documentation, and pull requests. Our [Developer Guide](https://docs.photoprism.app/developer-guide/) contains all the information necessary for you to get started.\n\n----\n\n*PhotoPrism® is a [registered trademark](https://www.photoprism.app/trademark/). By using the software and services we provide, you agree to our [Terms of Service](https://www.photoprism.app/terms/), [Privacy Policy](https://www.photoprism.app/privacy/), and [Code of Conduct](https://www.photoprism.app/code-of-conduct/). Docs are [available](https://link.photoprism.app/github-docs) under the [CC BY-NC-SA 4.0 License](https://creativecommons.org/licenses/by-nc-sa/4.0/); [additional terms](https://github.com/photoprism/photoprism/blob/develop/assets/README.md) may apply.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphotoprism%2Fphotoprism","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphotoprism%2Fphotoprism","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphotoprism%2Fphotoprism/lists"}