Coder Social home page Coder Social logo

photoprism-docs's Introduction

PhotoPrism: Browse Your Life in Pictures

License: AGPL Documentation Community Chat GitHub Discussions Bluesky Social Mastodon

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. Please be careful not to upload any private, unlawful or offensive 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:

Being completely 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 releases and development preview are available as a multi-arch image for 64-bit AMD, Intel, and ARM processors. That means, Raspberry Pi and Apple Silicon users enjoy the exact same functionality and can follow the same installation steps.

See our Getting Started FAQ for alternative installation methods, for example using the tar.gz packages we provide.

Support Our Mission 💎

PhotoPrism is 100% self-funded and independent. Your continued support helps us provide more features to the public, release regular updates, and remain independent!

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

  • You can sign up directly on our website and pay with credit card or SEPA through Stripe, so you don't need to link an external account and can easily upgrade or downgrade at any time
  • Alternatively, Patreon also supports PayPal, additional currencies, and lets you choose between monthly and annual billing for all tiers

If you currently support us through GitHub Sponsors, you can also register on our website and use the Activate GitHub Sponsors Membership button to link your account. For details on this and how to link your Patreon account, see our Activation Guide.

You are welcome to contact us for change requests, membership questions, and business partnerships.

View Membership FAQ ›Sign Up ›

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

Please also leave a star on GitHub if you like this project. It provides additional motivation to keep going.

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!

View Sponsors ›View Credits ›

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 are welcome to post your question in GitHub Discussions or ask in our Community Chat. Common problems can be quickly diagnosed and solved using our Troubleshooting Checklists. Eligible members are also welcome to email us for technical support and 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!

Connect with the Community

Follow us on Mastodon, Bluesky, or 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.

As a contributor, you are also welcome to contact us directly 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.

Every Contribution Makes a Difference

We welcome contributions of any kind, including blog posts, tutorials, translations, 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.

photoprism-docs's People

Contributors

0xflotus avatar aaron-trout avatar alexislefebvre avatar ark- avatar benmccann avatar bochachaner avatar charles-997 avatar cjlarose avatar daniel-h123 avatar davralin avatar dvpfig avatar egodigitus avatar eifinger avatar gokcedilek avatar graciousgrey avatar grooverdan avatar heikogr avatar heikomat avatar huo-ju avatar inthreedee avatar jahanson avatar jinxzy13 avatar lastzero avatar lzap avatar moximoti avatar olliebennett avatar per2jensen avatar rays3t avatar scotws avatar zierbeek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

photoprism-docs's Issues

command line import moving not copying

I read somewhere (here I believe) that said for import, copy is the default, however when I run the import command below, it moves files from the import directory. I tried using --help but it doesn't supply additional options to trigger copy vs. move but indicates it moves files.

I am using the command: docker exec photoprism import
I tried --help and it says that it 'moves' media files to originals.

Is there a flag to copy?

My use case is, that I am uploading photos via the NextCloud app to the NextCloud Photo directory which is set as the import directory. Unfortunately, this does not auto-trigger importing, so I plan to run a cron task to trigger the above command. I would like the option to leave the photos within nextcloud also.

PhotoPrism as Target in PhotoSync only for iOS?

I just bought and installed the full version of PhotoSync for Android and tried to follow the directions under https://docs.photoprism.app/user-guide/sync/mobile-devices/#photosync

I don't have Photoprism with its logo as a target as shown in the pictures.

I don't have Backblaze and Wasabi either but they are shown as options in the pictures too. As these two are iOS only I suspect that the PhotoPrism target is iOS only too.

I don't have an iOS device too confirm this but if this is indeed the case I would also be happy to provide a PR for the documentation.
Just want to be sure its not me being silly.

Step by step set up instructions for Synology (new GUI)

Synology recently introduced GUI changes. Some users had difficulties finding all relevant settings mentioned in the guide we have currently linked on https://docs.photoprism.app/getting-started/nas/synology/#setup-using-docker

Also the tutorial uses SQlite instead of mariadb, which is only recommended for small libraries.

Acceptance Criteria:

  • Write step by step instructions including screenshots explaining how to set up PhotoPrism on a synology device using docker
  • The setup should use mariadb as database

Questions about details in Setup documentation

As an end-user with some familiarity with Docker, I have some questions regarding the Setup documentation:

  • Before Step 1, it says We plan to ship the final app as a single binary including all dependencies. This could be understood that the final version will not be available as a Docker container, which sounds unlikely (personally, I'd say "utter madness", but that's just me). Might there be an "as well" missing here?
  • In Step 1, can the line -v ~/Pictures:/home/photoprism/Pictures/Originals have the :ro (read-only) parameter added without ill effects? Or will this mean that (say) thumbnails will not be stored once generated?

  • In Updating, does Photoprism play nice with Watchtower (https://github.com/containrrr/watchtower)? Some of us are too lazy to update their containers by hand.

Possibly missing:

  • Photoprism seems to expose Port 4000 for the database (if I understand the docker-compose.yml correctly). This should probably be documented here, because it conflicts for instance with the Telnet port of Evennia (https://github.com/evennia/evennia). -- It's possible, however, that I've just misunderstood the setup, because the exposure is only in docker-compose.yml and not the script presented here. Is 4000 only exposed for testing/development?

Some further questions I don't see covered yet:

  • Will the Docker container run on ARM? There seems to be no limit to things that people will try to run on their Raspberry Pi.
  • Will the container here run with Podman (https://podman.io/) as well? Some people don't like the daemon setup of Docker for security reasons.

Thank you!

Add Documentation about changing --innodb-buffer-pool-size in mariadb correctly

Sometimes, a user would want to make his --innodb-buffer-pool-size larger for a quicker DB.

Using https://github.com/major/MySQLTuner-perl, which is a tool to check, review and optimize databases, and running it within the mariadb container shows (among other things), that the "innodb_log_file_size" size should be 25% of the "innodb-buffer-pool-size".

Here is part of the output from the tool:

-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[OK] InnoDB File per table is activated
[OK] InnoDB buffer pool / data size: 2.0G/206.9M
[OK] Ratio InnoDB log file size / InnoDB Buffer pool size: 512.0M * 1/2.0G should be equal to 25%
[--] Number of InnoDB Buffer Pool Chunk : 16 for 1 Buffer Pool Instance(s)
[OK] Innodb_buffer_pool_size aligned with Innodb_buffer_pool_chunk_size & Innodb_buffer_pool_instances
[OK] InnoDB Read buffer efficiency: 100.00% (396856174 hits/ 396867174 total)
[!!] InnoDB Write Log efficiency: 575.94% (14145 hits/ 2456 total)
[OK] InnoDB log waits: 0.00% (0 waits / 16601 writes)

-------- Aria Metrics ------------------------------------------------------------------------------
[--] Aria Storage Engine is enabled.
[OK] Aria pagecache size / total Aria indexes: 128.0M/0B
[OK] Aria pagecache hit rate: 99.9% (543K cached / 565 reads)

-------- TokuDB Metrics ----------------------------------------------------------------------------
[--] TokuDB is disabled.

-------- XtraDB Metrics ----------------------------------------------------------------------------
[--] XtraDB is disabled.

-------- Galera Metrics ----------------------------------------------------------------------------
[--] Galera is disabled.

-------- Replication Metrics -----------------------------------------------------------------------
[--] Galera Synchronous replication: NO
[--] No replication slave(s) for this server.
[--] Binlog format: MIXED
[--] XA support enabled: ON
[--] Semi synchronous replication Master: OFF
[--] Semi synchronous replication Slave: OFF
[--] This is a standalone server

-------- Recommendations ---------------------------------------------------------------------------
General recommendations:
We will suggest raising the 'join_buffer_size' until JOINs not using indexes are found.
See https://dev.mysql.com/doc/internals/en/join-buffer-size.html
(specially the conclusions at the bottom of the page).
Performance schema should be activated for better diagnostics
Consider installing Sys schema from https://github.com/mysql/mysql-sys for MySQL
Consider installing Sys schema from https://github.com/FromDual/mariadb-sys for MariaDB
Variables to adjust:
join_buffer_size (> 256.0K, or always use indexes with JOINs)
performance_schema = ON enable PFS
key_buffer_size (~ 24M)

Therefore when changing the inodb-buffer-pool-size to a higher size, the innodb_log_file_size should probably be changed accordingly.

e.g. when changing the buffer pool size to 2G, then innodb_log_file_size should be 512M, if there is one log file (256 if 2 etc.).
So it will look like following in the docker-compose.yaml of the database container:
command: mysqld --innodb-buffer-pool-size=2G --innodb_log_file_size=512M --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

More info about log file:
https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log.html

Maybe info about this can be updated within: https://docs.photoprism.app/getting-started/troubleshooting/performance/

Mkdocs: Links without trailing `/` can break sidebar navigation

STR:

  1. Visit https://github.com/photoprism/photoprism/blob/e7370838221c373a23dc9a09f186a6065e2a5162/CONTRIBUTING.md#submitting-pull-requests
  2. Click the "step-by-step guide" link, which goes to https://docs.photoprism.app/developer-guide/pull-requests
  3. Click AFAICT basically anything in the sidebar (I clicked "Build setup")
  4. 404 Not Found

Adding a / to the URL - e.g. https://docs.photoprism.app/developer-guide/pull-requests/ - makes the sidebar function as intended.

Windows Installation - Recommendation to disable WSL2

The windows Docker Compose Installation recommends to disable WSL2 in order to mount drives other than c:. I am currently using Docker Desktop 4.8.2 with WSL2 on Windows 11 and I can mount drives other than c:
Below is the snippet from my yml
## Storage Folders: use "/" not "" as separator, "~" is a shortcut for C:/user/{username}, "." for the current directory
volumes:
# "C:/user/username/folder:/photoprism/folder" # example
- "E:/Pictures:/photoprism/originals" # original media files (photos and videos)
# - "D:/example/family:/photoprism/originals/family" # additional media folders can be mounted like this
# - "E:/:/photoprism/import" # optional base folder from which files can be imported to originals
- "D:/PhotoPrism/storage:/photoprism/storage" # writable storage folder for cache, database, and sidecar files (never remove)
Is it still recommended to disabled WSL2 ? Docker updates are focused on WSL2 and the memory management is much better in WSL2.

Update in the documentation

(crossposting from photoprism/photoprism#3076)

**Don't use the MariaDB password directly in the migration command **

Since the migration tool to migrate from sqlite to MariaDB offers a mysql-like option to pass the password with -p, it seems sensible to update the docs to use it. Currently, the docs say:

On the host now run sudo sqlite3mysql -f <PATH_TO_STORAGE_MOUNT>/storage/index.db -d photoprism -u root --mysql-password 'insecure'

and it can be improved to

On the host now run sudo sqlite3mysql -f <PATH_TO_STORAGE_MOUNT>/storage/index.db -d photoprism -u root -p

this prevents the usage of raw passwords directly into the command

Additional context

I'd like to create a PR to the docs, but I didn't find the repo of the docs

Data fragmentation and database

The number of images generated by the program is too large, fragmentation is serious, and it has a great impact on the hard disk. Do you want to consider using a database

Add new cloud deployment method [Elestio]

Hey team,
I am Kaiwalya, Developer Advocate at Elestio. Elestio has been providing options of fully deploying and managing Photoprism application as shown here. I think it would be a great idea if we can add it to official readme/documentation here.
In addition to this, if you are interested we provide collaboration opportunities with tools we support by revenue share upon addition of this method in docs. If you would like to collaborate, just shoot me an email at [email protected] :)

image

Get started page has no link to free version

When you come to the photoprism website as a new user and press Get Started you are presented with this:
image

This looks like there is no free option, even though there is. If you go to the documentation, there are detailed instructions on how to set it up without paying. So why is there no link to a simple installation on the get started page?

Connect to WebDav on Windows

I've found a tip for mounting Photoprism over WebDav on Windows
https://docs.photoprism.app/user-guide/sync/webdav/#server-url

There are two sets of examples, one for servers exposed to the internet and another for running Photoprism locally.

The "locally" section is missing an example for Windows. I suggest adding:

\localhost@SSL@2342\originals\

to complete that section.

Furthermore, the publicly accessible server examples should probably include the port
https://[email protected]:443/originals/
https://[email protected]:2342/originals/

\example.com@SSL\originals
\example.com@SSL@2342\originals\

Thanks.

Add Patreon to banner?

I see that there's a banner at the top of the docs mentioning GitHub Sponsors. I thought it might be a good idea to add the Patreon link there as well. A decent fraction of users probably are not software developers and wouldn't have Github accounts and so Patreon might be more widely used outside that demographic.

https://github.com/photoprism/photoprism-docs/blob/b5c033ca47989930d06e9729e8f0cd3cd9df386a/overrides/main.html

Also, another idea might be to add a banner or menu item to the navigation in the product. This could be disabled with an option, but appear by default.

Default Docker password broken

I followed the instructions here but wasn't able to log in.

When I added -e PHOTOPRISM_ADMIN_PASSWORD=<my password> to my docker run command line, I was able to log in.

So I believe the default password is either different or not working.

panic: photo label: label is nil

Version: PhotoPrism version 200505-bc69f22-Linux-x86_64
Running in docker

running "photoprism index" inside the container yields the following error:

panic: photo label: label is nil

goroutine 41 [running]:
github.com/photoprism/photoprism/internal/entity.(*PhotoLabel).ClassifyLabel(...)
/go/src/github.com/photoprism/photoprism/internal/entity/photo_label.go:47
github.com/photoprism/photoprism/internal/entity.(*Photo).ClassifyLabels(0xc000daac00, 0xc000c60a20, 0x4, 0x4)
/go/src/github.com/photoprism/photoprism/internal/entity/photo.go:141 +0x34c
github.com/photoprism/photoprism/internal/photoprism.(*Index).MediaFile(0xc000e7b890, 0xc000fda000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/go/src/github.com/photoprism/photoprism/internal/photoprism/index_mediafile.go:338 +0x189e
github.com/photoprism/photoprism/internal/photoprism.IndexWorker(0xc00004aae0)
/go/src/github.com/photoprism/photoprism/internal/photoprism/index_worker.go:23 +0x5ef
github.com/photoprism/photoprism/internal/photoprism.(*Index).Start.func1(0xc00004aae0, 0xc005788d30)
/go/src/github.com/photoprism/photoprism/internal/photoprism/index.go:86 +0x2b
created by github.com/photoprism/photoprism/internal/photoprism.(*Index).Start
/go/src/github.com/photoprism/photoprism/internal/photoprism/index.go:85 +0x1dc

"Config Options" Mismatch

On the https://docs.photoprism.app, there are at least 2 different links to the "Config Options" page:

Installation and update documentation for Raspberry Pi (arm64) outdated

The instructions on installing (https://docs.photoprism.app/getting-started/raspberry-pi/) and updating (https://docs.photoprism.app/getting-started/updates/) on a Raspberry Pi (arm64) are outdated. They refer to a specific arm64 version of Photoprism, but I noticed that nowadays there is a single multi-architecture image in the docker repository. So instead of pulling photoprism-arm64, one can now just pull the main multi arch image.

I would suggest to update these pages.

Is there a way to reset the database sort of uninstalling photoprism?

I have a complete copy of my photo archive on a Synology box (which has docker / docker-compose) on it.
I've recently installed photoprism on it.
I pointed photoprism at my photo archive and told it to index.
It turns out that most/all the date/shoot/subject information I have is in hierarchical folder naming and photoprism does not pick that info up. Unfair of me to have expected an app to understand that the entire path was the name of the folder. Agreed that 'folders' is not nearly as good as tags, as photos can only be in one folder - but I was hoping to add that post-index.
So... I need to reset the database, so I can import the folders I want to make available.
Are there any pointers on how to do that, short of a full uninstall/reinstall?
Also, is there a way for me to specify a complete folder name to use during an index? And is there a way to tell index to ignore particular folders - or even file types?
Sorry to add this as an issue, but I'm not finding an answer...
Thanks!

Documentation : MariaDB user creation and privileges grant

Hi,

I think there is a mistake with the SQL command for granting rights to the newly created user in file : docs/getting-started/advanced/databases.md

On my setup (MariaDB 10.4.18), I had to change the grant line from:
GRANT ALL PRIVILEGES ON photoprism.* to 'photoprism'@'%';

To:
GRANT ALL PRIVILEGES ON photoprism.* to 'photoprism'@'%' IDENTIFIED BY 'insecure';

And I would end with a:
FLUSH PRIVILEGES;

So that new grant is taken into account.

Thanks,
Mathieu

Export metadata, labels and albums

Hi, I'm new to Photoprism and I had a quick read of back up section in the website. I have a question in regards to exporting and restoring (backing up) metadata, labels, and albums.

Lets say I dumped 15000 images and I labeled and categoriesed them in their appropriate albums...

I have 2 questions:

  1. Does, Photoprism move images around in different folder or etc?

  2. If I spend the time to label and create albums for that many images, will I be able to back up the information about the albums, labels and tags? (in order to restore them)

2.1 if yes, I'd appreciate you link me to appropriate part of documentation.

Edit => also is there a discord, slack or Gitter channel to ask this sort of questions? (I feel bad for raising an issue for this kind of question)

BTW decent UI and features 🌹

Tailscale / Caddy 2.5

Evening,

Just noticed there is a Tailscale guide that's been added. This guide could be expanded to show how to setup https using Caddy 2.5 and Tailscale which would allow users to install the PWA.

See:
https://tailscale.com/blog/caddy/
https://tailscale.com/kb/1153/enabling-https/

Although I can understand if you are waiting for both Tailscale https and caddy 2.5 to come out of beta. I'm not using the supported method of install and my documentation skills are lacking but wasn't sure if people would be aware of this method.

Feel free to close this if it's not relevant.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.