photoprism

module
Version: v0.0.0-...-7a8b160 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2022 License: AGPL-3.0

README

PhotoPrism: Browse Your Life in Pictures

GitHub contributors Documentation Community Chat GitHub Discussions Twitter Reddit

PhotoPrism® is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way. You can run it at home, on a private server, or in the cloud.

To get a first impression, you are welcome to play with our public demo. Be careful not to upload any private pictures.

Feature Overview

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:

Because we are 100% self-funded and independent, we can promise you that we will never sell your data and that we will always be transparent 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. 🔒

Getting Started

Step-by-step installation instructions for our self-hosted community edition can be found on docs.photoprism.app - all you need is a Web browser and Docker to run the server. It is available for Mac, Linux, and Windows.

The stable version and development preview have been built into a single multi-arch image for 64-bit AMD, Intel, and ARM processors. That means, Raspberry Pi 3 / 4 owners can pull from the same repository, enjoy the exact same functionality, and can follow the regular installation instructions after going through a short list of requirements.

Existing users are advised to update their docker-compose.yml config based on our examples available at dl.photoprism.app/docker.

Support Our Mission 💎

We encourage all of our users to become a sponsor, as this allows us to make more features available to the public and remain independent.

Sponsors enjoy additional features, including access to interactive world maps, and can join our private chat room to connect with our team and other sponsors. We currently have the following sponsorship options:

  • GitHub Sponsors is priced in USD and also offers one-time donations
  • Patreon is priced in Euro and also offers yearly payments
  • Stripe will be available in 2022, so you can sign up directly in the app

You are welcome to contact us for crypto donations, bank account details, and business partnerships. Why your support matters:

  • Your continued support helps us provide regular updates and remain independent, so we can fulfill our mission and protect your privacy
  • Sustained funding is key to quickly releasing new features requested by you and other community members
  • Being 100% 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

Visit photoprism.app/membership to learn more. Also, please leave a star on GitHub if you like this project. It provides additional motivation to keep going.

Getting Support

Visit docs.photoprism.app/user-guide to learn how to sync, organize, and share your pictures. If you need help installing our software at home, you can join us on Reddit, ask in our Community Chat, or post your question in GitHub Discussions.

Common problems can be quickly diagnosed and solved using the Troubleshooting Checklists in Getting Started. Eligible sponsors are also welcome to email us for technical support and personalized advice.

Upcoming Features and Enhancements

Our Project 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.

Be 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.

Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by signing up as a sponsor or purchasing a commercial license. Ultimately, that's what's best for the product and the community.

GitHub Issues ⚠️

We 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!

  • When reporting a problem, always include the software versions you are using and other information about your environment such as browser, browser plugins, operating system, storage type, memory size, and processor
  • Note that all issue subscribers receive an email notification from GitHub for each new comment, so these should only be used for sharing important information and not for personal discussions/questions
  • Contact us or a community member if you need help, it could be a local configuration problem, or a misunderstanding in how the software works
  • This gives our team the opportunity to improve the docs and provide best-in-class support to you, instead of handling unclear/duplicate bug reports or triggering a flood of notifications by responding to comments

Connect with the Community

Follow us on Twitter and join the Community Chat to get regular updates, connect with other users, and discuss your ideas. Our Code of Conduct explains the "dos and don’ts" when interacting with other community members.

Feel free to contact us at hello@photoprism.app with anything that is on your mind. We appreciate your feedback! 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.

Every Contribution Makes a Difference

We welcome contributions of any kind, including blog posts, tutorials, testing, writing documentation, and pull requests. Our Developer Guide contains all the information necessary for you to get started.


PhotoPrism® is a registered trademark. By using the software and services we provide, you agree to our Terms of Service, Privacy Policy, and Code of Conduct. Docs are available under the CC BY-NC-SA 4.0 License; additional terms may apply.

Directories

Path Synopsis
cmd
pkg
capture
Package capture provides profiling functions for testing and debugging.
Package capture provides profiling functions for testing and debugging.
clean
Package clean provides validation, sanitation, and normalization of input values.
Package clean provides validation, sanitation, and normalization of input values.
clusters
Package clusters provides abstract definitions of clusterers as well as their implementations.
Package clusters provides abstract definitions of clusterers as well as their implementations.
colors
Package colors provides types and functions for color classification.
Package colors provides types and functions for color classification.
dummy
Package dummy provides dummy implementations for common interfaces.
Package dummy provides dummy implementations for common interfaces.
env
Package env provides runtime environment information.
Package env provides runtime environment information.
fastwalk
Package fastwalk provides a faster version of filepath.Walk for file system scanning tools.
Package fastwalk provides a faster version of filepath.Walk for file system scanning tools.
fs
Package fs provides filesystem related constants and functions.
Package fs provides filesystem related constants and functions.
geo
Package geo provides earth geometry functions and constants.
Package geo provides earth geometry functions and constants.
list
Package list provides a string slice abstraction.
Package list provides a string slice abstraction.
media
Package media provides general content types and maps them to file formats.
Package media provides general content types and maps them to file formats.
pluscode
Package pluscode provides an abstraction for Google's Open Location Code package.
Package pluscode provides an abstraction for Google's Open Location Code package.
projection
Package projection provides visual projection types and methods.
Package projection provides visual projection types and methods.
react
Package react facilitates the processing of user feedback expressed by an emoji.
Package react facilitates the processing of user feedback expressed by an emoji.
report
Package report provides rendering of report results, for example as Markdown.
Package report provides rendering of report results, for example as Markdown.
rnd
Package rnd provides random token generation and validation.
Package rnd provides random token generation and validation.
s2
Package s2 encapsulates Google's S2 library.
Package s2 encapsulates Google's S2 library.
sev
Package sev provides event importance levels and parsers.
Package sev provides event importance levels and parsers.
txt
Package txt provides text and linguistics related functionality.
Package txt provides text and linguistics related functionality.
video
Package video provides video file related types and functions.
Package video provides video file related types and functions.
internal
acl
Package acl provides access control lists for authorization checks.
Package acl provides access control lists for authorization checks.
api
Package api provides REST API authentication and request handlers.
Package api provides REST API authentication and request handlers.
auto
Package auto provides workers for background indexing and import operations.
Package auto provides workers for background indexing and import operations.
classify
Package classify encapsulates image classification using TensorFlow.
Package classify encapsulates image classification using TensorFlow.
commands
Package commands provides the CLI commands of PhotoPrism.
Package commands provides the CLI commands of PhotoPrism.
config
Package config provides global options, command-line flags, and user settings.
Package config provides global options, command-line flags, and user settings.
crop
Package crop provides image crop data structures and helpers.
Package crop provides image crop data structures and helpers.
customize
Package customize provides user settings to customize the app.
Package customize provides user settings to customize the app.
entity
Package entity provides entity models based on the GORM library.
Package entity provides entity models based on the GORM library.
entity/legacy
Package legacy provides legacy entity models to be used in migrations.
Package legacy provides legacy entity models to be used in migrations.
event
Package event provides a publish-subscribe event hub and a global logger.
Package event provides a publish-subscribe event hub and a global logger.
face
Package face provides face recognition.
Package face provides face recognition.
ffmpeg
Package ffmpeg provides FFmpeg video transcoding related types and functions.
Package ffmpeg provides FFmpeg video transcoding related types and functions.
form
Package form contains tagged structs for input value validation.
Package form contains tagged structs for input value validation.
get
Package get provides a registry for common services.
Package get provides a registry for common services.
hub
Package hub provides privacy-preserving reverse geocoding and other backend services.
Package hub provides privacy-preserving reverse geocoding and other backend services.
hub/places
Package places provides global location information to enrich metadata with location details.
Package places provides global location information to enrich metadata with location details.
i18n
Package i18n provides translatable notification and error messages.
Package i18n provides translatable notification and error messages.
maps
Package maps provides a location lookup abstraction including a normalized list of countries.
Package maps provides a location lookup abstraction including a normalized list of countries.
meta
Package meta provides XMP and Exif metadata parsing and normalization.
Package meta provides XMP and Exif metadata parsing and normalization.
migrate
Package migrate provides database schema migrations.
Package migrate provides database schema migrations.
mutex
Package mutex provides concurrency control for index workers and database operations.
Package mutex provides concurrency control for index workers and database operations.
nsfw
Package nsfw provides detection of images that are "not safe for work" based on various categories.
Package nsfw provides detection of images that are "not safe for work" based on various categories.
photoprism
Package photoprism provides the core functionality of PhotoPrism®.
Package photoprism provides the core functionality of PhotoPrism®.
query
Package query provides frequently used database queries for use in commands and API.
Package query provides frequently used database queries for use in commands and API.
remote
Package remote provides detection of remote services for file sharing and synchronization.
Package remote provides detection of remote services for file sharing and synchronization.
remote/webdav
Package webdav provides WebDAV file sharing and synchronization.
Package webdav provides WebDAV file sharing and synchronization.
search
Package search provides search queries to find photos, albums, labels, and subjects.
Package search provides search queries to find photos, albums, labels, and subjects.
server
Package server provides REST and web server routing, request handling and logging.
Package server provides REST and web server routing, request handling and logging.
server/header
Package header provides common response header names and default values.
Package header provides common response header names and default values.
server/limiter
Package limiter provides an IP request rate limiter with Gin middleware.
Package limiter provides an IP request rate limiter with Gin middleware.
session
Package session provides session storage and management.
Package session provides session storage and management.
thumb
Package thumb provides JPEG resampling and thumbnail generation.
Package thumb provides JPEG resampling and thumbnail generation.
viewer
Package viewer provides photo viewer data structures and utility functions.
Package viewer provides photo viewer data structures and utility functions.
workers
Package workers provides index, sync, and metadata optimization background workers.
Package workers provides index, sync, and metadata optimization background workers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL