Personal Photo Management powered by Go and Google TensorFlow

Overview

PhotoPrism: Browse Your Life in Pictures

License: AGPL Code Quality Build Status GitHub contributors Documentation Community Chat Twitter

PhotoPrism® is a privately hosted app for browsing, organizing, and sharing your photo collection. It makes use of the latest technologies to tag and find pictures automatically without getting in your way. Say goodbye to solutions that force you to upload your visual memories to the cloud!

To get a first impression, you're welcome to play with our public demo at demo.photoprism.org.

Key Features

  • Our intuitive user interface makes browsing and organizing your photo collection as easy as it should be — whether it’s on a phone, tablet, or desktop computer.
  • Index everything without worrying about duplicates or RAW to JPEG conversion.
  • Automatic image classification based on Google TensorFlow. In addition, our indexer detects colors, chroma, luminance, quality, panoramic projection, location type, and many other properties.
  • Includes four high-resolution world maps to see where you've been, and for rediscovering long-forgotten shots.
  • WebDAV clients, like Microsoft’s Windows Explorer or Apple's Finder, may connect directly to PhotoPrism so that you to can open, edit, and delete files from your computer or phone as if they were local. You may easily sync your pictures with PhotoSync as well.
  • Because PhotoPrism is built as a progressive web app, it provides a native app-like experience, and you may install it on your home screen. There's also a community-maintained native app in development.

Getting Started

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

We recommend hosting PhotoPrism on a server with at least 2 cores and 4 GB of memory. Beyond these minimum requirements, the amount of RAM should match the number of cores. Indexing large photo and video collections significantly benefits from fast, local SSD storage.

Roadmap

Our vision is to provide the most user-friendly solution for browsing, organizing, and sharing your photo collection. The roadmap shows what tasks are in progress, what needs testing, and which feature requests are going to be implemented next.

Please give ideas you like a thumbs-up 👍 , so that we know what is most popular. Ideas backed by one or more eligible sponsors will be prioritized as well.

Contributions

We welcome contributions of any kind. If you have a bug or an idea, read our guide before opening an issue. Issues labeled help wanted / easy can be good (first) contributions.

Follow us on Twitter to receive regular project updates and discuss development related topics. Don't be afraid to ask stupid questions.

Funding

You're welcome to support us via GitHub Sponsors, especially if you have feature requests or need help with using our software. In addition, you can find us on Patreon and PayPal.

Your continuous support helps...

  • pay for operating expenses and external services like satellite maps
  • developing new features and keeping them free for everyone 🌈

Also, please leave a star on GitHub if you like this project. It provides additional motivation to keep going.

Thank you very much! <3

Ideas backed by one or more eligible sponsors are marked with a golden sponsor label. Let us know if we mistakenly label an idea as unfunded.

Trademarks

PhotoPrism® is a registered trademark of Michael Mayer. You may use it as required to describe our software, run your server, for educational purposes, but not for offering commercial goods, products, or services without prior written permission. In other words, please ask.

Comments
  • People: Facial Recognition

    People: Facial Recognition

    Issuehunt badges

    As a user, I want to tag familiar human faces so that I can find all photos of these persons.

    PhotoPrism must be able to detect and recognize faces. There are existing libraries for this, so we should try those first. See Face Recognition in our Wiki.

    Here is a complete howto: https://hackernoon.com/face-recognition-with-go-676a555b8a7e

    Acceptance Criteria:

    • [x] You SHOULD use go-face (unless you find a better library)
    • [x] A unit test demonstrating face recognition with real images and faces MUST be delivered
    • [x] A user interface MAY be developed and gives extra karma
    • [x] You MUST update our Docker images in /docker as needed (go-face requires dlib as external dependency); let us know when we shall push new images to Docker Hub
    • [x] Documentation MUST be updated so that other developers know everything to continue working on this task

    IssueHunt Summary

    lastzero lastzero has been rewarded.

    Backers (Total: $900.00)

    Submitted pull Requests


    Tips

    enhancement released 
    opened by lastzero 192
  • Videos: Add transcoding config options

    Videos: Add transcoding config options

    Anytime I browse the library and hit new live photos taken with an iPhone, I end up with gray squares, spinners, and then many (4-8?) ffmpeg processes start up and completely choke my modest PC home server's CPU for 5-15 minutes. Even when uncached thumbnail generation is turned off, processing live photo videos seems to always happen on-demand. This has made a previously satisfactory PhotoPrism instance barely usable.

    According to @lastzero in Gitter:

    When photoprism doesn't know the codec it transcodes via ffmpeg which needs a lot of cpu If we do this upfront, users will complain because of the storage it uses.

    Proposal 1 - two new config options

    Assuming there are two potential issues with live video transcoding (extra disk space used if up-front, and CPU bottleneck on less powerful servers if generated on the spot), a pair of new config options, along with default the live photo feature to "off", might fit most consistently with the existing options.

    PHOTOPRISM_LIVE_PHOTO_TRANSCODE- decides whether these videos are transcoded at all. If true, converts and caches them during indexing/importing. Default: false (saves disk for those who don't need the live photo feature at all)

    PHOTOPRISM_LIVE_PHOTO_TRANSCODE_UNCACHE- if true, transcodes on demand (and either saves them or not? Don't know what's best here). Default: false (saves CPU for those who don't need the feature at all)

    Setting either to true would enable live photos, depending on whether disk or CPU is more important, while avoiding the performance and disk space issues if left off. Open to any feedback on this idea!

    Proposal 2 - live photo transcoding should respect workers option

    It seems like the values of the WORKERS option didn't affect how many ffmpeg processes I saw started at once. If it did, I could set it to 1, and my dual-core server may continue to respond to requests even while slowly generating live videos on demand.

    idea please-test sponsor video 
    opened by tommcc 157
  • Videos: Enable hardware transcoding for Intel GPUs

    Videos: Enable hardware transcoding for Intel GPUs

    Hi., How do I use an Intel GPU for transcoding within the PhotoPrism container?

    I added: devices: - /dev/dri:/dev/dri but I didn't understand what else I should do.

    Thanks

    enhancement released video 
    opened by ameralzarouni 87
  • Docker container support for Raspberry Pi

    Docker container support for Raspberry Pi

    Hi guys,

    I love where this project is going and I'm eager to try it on my Raspberry Pi 3b+. Are you planning on making the docker container suitable for ARM devices?

    Greetings, Thomas

    enhancement released 
    opened by tjaadvd 78
  • Configure thumbnail types and sizes

    Configure thumbnail types and sizes

    first up.. thanks for such a great new app.. I have been looking for something to replace google photos with and tried piwigo, but i like how photoprism is moving along

    I built to run on OSX 10.15 and its running great.

    I tested 150 photos to import, and the originals are 188mb, but the cache thumbs folder is 400mb

    will there in future be a way of limiting the number of created thumbs to a set of sizes? In reality, i would possibly just like one thumb file for grid view, and then if clicked loads the full version image.

    Oz

    idea released sponsor 
    opened by oziee 68
  • Faces: Error

    Faces: Error "Failed removing merged clusters for subject" seems to cause tagging of faces to become slow

    Under certain conditions, inconsistent face assignments cannot be automatically resolved by the background worker, which can result in an unusually high CPU load when it is running:

    • if you use multiple browser tabs or windows for assigning faces and don't wait until saving the changes is complete, the likelihood of this problem increases, especially if you accidentally enter different names for the same face
    • another possible cause is running multiple instances (for example, parallel indexing workers started by a scheduler in the background) or modifying database content directly, as this may also lead to inconsistent faces, markers and subjects

    Running the following command in a terminal can resolve problems with inconsistent data:

    docker compose exec photoprism photoprism faces audit --fix
    

    It can also be helpful to manually check for inconsistent assignments and fix them in the user interface. Alternatively, you can use the photoprism faces reset command for a clean start if you haven't invested much time in assigning faces yet.

    Advanced users affected by this are welcome to privately provide us with a SQL dump of their subjects, faces, and markers database tables for debugging. Thank you very much!


    1. What is not working as documented?

    If there is an error of "faces: failed removing merged clusters for subject (ID)", tagging any new faces becomes incredibly slow normally 1-3 seconds, now 2-5 minutes. This behavior happens wether tagging a random photo through photo browser or a "new face" collection under People.

    2. How can we reproduce it?

    I don't know how to reproduce this error, but this is the second time that it has occurred.

    The first time, I tried a bunch of a few recommendations like increasing the innodb buffersize but they didn't fix the problem.

    Resetting the Face ID allowed me to tag quickly again (although it meant starting over) and it worked great over the next 60,000 photos.

    Now the same error is back and the same lag is back.

    Steps to reproduce the behavior:

    I don't know how to FORCE the error to be created.

    3. What behavior do you expect?

    Some way to undo or stop the merge attempt. If a single failed removing merged cluster for a single subject can cause this much of a performance issue, make an undo button or better yet just automatically undo it. I don't know I'm just making up suggestions because I don't really know what the error means.

    4. What could be the cause of your problem?

    People have said this might be caused by Tagging the same person with a similar but different name. If that's true, great! It would be nice if Photo Prism stopped me from creating the conflict. or reverted the action once it realizes it is going to cause a conflict.

    5. Can you provide us with example files for testing, error logs, or screenshots?

    Here is a video I gave @lastzero when it happened the first time. https://1drv.ms/v/s!AjcUU9ZDJWosuu9yj-2Sf0U2_tD2tA?e=6r1SXm

    6. Which software versions do you use?

    (a) PhotoPrism Build Number: 220901-f493607b0

    (b) Database Type & Version: MariaDB

    (c) Operating System Types & Versions: Linux (Unraid + Docker)

    help wanted incomplete 
    opened by chansearrington 65
  • Index: Rescan doesn't remove deleted folders

    Index: Rescan doesn't remove deleted folders

    I have about 1000 folders (400k photos) in my originals directory, and I deleted (actually moved) about 200 of those to another drive which I don't want to be displayed in Photoprism.

    The folders have been removed, but still show up in the gallery, including the ability to view them.

    How can I remove these from Photoprism altogether? I realize a complete rescan may work, but the first scan took about two weeks! So I don't want to do that again..

    Any advice?

    bug released 
    opened by maltokyo 61
  • Nextcloud: Adding local server yields error 400

    Nextcloud: Adding local server yields error 400

    I am looking to test the PhotoPrism Backup functionality with my local Nextcloud server. Both services are running in Docker containers, and both are exposed and accessible. I am utilizing HTTP rather than the HTTPS, as the endpoints are both contained within my local network.

    When adding the Nextcloud server to PhotoPrism, I am informed that a connection could not be established. Looking over the Logs, I am presented with the following information. I attempted a connection twice

    2020-09-10 11:17:18 DEBU POST /api/v1/accounts (400) [55.223016ms]
    2020-09-10 11:17:18 DEBU api: abort /api/v1/accounts with code 400 (Could not connect, please try again)
    2020-09-10 11:17:18 ERRO could not connect
    2020-09-10 11:17:09 DEBU GET /api/v1/status (200) [43.564µs]
    2020-09-10 11:16:36 DEBU POST /api/v1/accounts (400) [53.83915ms]
    2020-09-10 11:16:36 DEBU api: abort /api/v1/accounts with code 400 (Could not connect, please try again)
    2020-09-10 11:16:36 ERRO could not connect
    2020-09-10 11:16:07 DEBU GET /api/v1/status (200) [50.171µs]
    

    Using Cyberduck, I am able to connect to both PhotoPrism and Nextcloud using WebDAV, confirming that both instances are accessible.

    Cyberduck_2020-09-10_11-29-25 Cyberduck_2020-09-10_11-29-36 image 2020-09-10_12-13-19 2020-09-10_12-14-28 2020-09-10_12-15-11

    bug released 
    opened by Jimmyson 54
  • Synology: Simplify installation

    Synology: Simplify installation

    Issue 1: Despite having a storage folder configured, it still saves into the orignals folder, these are my mounts image

    (also tried just /storage)

    Issue 2: Password does not work, tried admin and "photoprism" as the password, just tells me its invalid. image

    I assume most of these issues stem from synology's version of docker, any help would be appreciated!

    idea released 
    opened by Bitwolfies 50
  • Implement proof-of-concept Web upload / import

    Implement proof-of-concept Web upload / import

    It should not be required to use the command-line interface to start importing. Users should also be able to upload photos instead of putting them in the import directory directly.

    important enhancement released 
    opened by lastzero 48
  • HEIF: heif-convert must be updated to prevent empty JPEGs

    HEIF: heif-convert must be updated to prevent empty JPEGs

    It would be awesome if someone could help us compile heif-convert with libjpeg80 as mentioned in this issue comment. If that fixes the problem, we don't have to spend time on a workaround! 💎💖

    A bash script that we can drop into https://github.com/photoprism/photoprism/tree/develop/scripts/dist will do. It can then be run when building Docker images, but also by people who don't use Docker.


    1. What is not working as documented?

    Uploaded HEIC pictures can't be converted into JPEG.

    2. How can we reproduce it?

    Steps to reproduce the behavior:

    1. Go into any album
    2. Click on upload (top-right corner)
    3. Upload HEIC picture
    4. See error (Docker logs below)

    Album is empty. Using current docker preview build.

    3. What behavior do you expect?

    PhotoPrism should create a JPEG version in addition to the original HEIC file.

    4. What could be the cause of your problem?

    Looks like the HEIC converter doesn't generate any output.

    5. Can you provide us with example files for testing, error logs, or screenshots?

    time="2022-09-21T22:41:23Z" level=debug msg="server: POST /api/v1/upload/1663800083546 (200) [47.557105ms]" time="2022-09-21T22:41:23Z" level=debug msg="covers: updated 0 folders [537.901µs]" time="2022-09-21T22:41:23Z" level=debug msg="removed folder:import:true:false from cache" time="2022-09-21T22:41:23Z" level=info msg="moving files from 1663800083546" time="2022-09-21T22:41:23Z" level=debug msg="import: adding files to album arikzl9131rb3gls" time="2022-09-21T22:41:23Z" level=info msg="classify: loading nasnet" time="2022-09-21T22:41:25Z" level=info msg="classify: loading labels from labels.txt" time="2022-09-21T22:41:25Z" level=info msg="import: found no .ppignore file" time="2022-09-21T22:41:25Z" level=info msg="import: added folder /upload/1663800083546" time="2022-09-21T22:41:25Z" level=debug msg="exiftool: extracting metadata from upload/1663800083546/IMG_20201116_185837.HEIC" time="2022-09-21T22:41:26Z" level=debug msg="import: created f7fa4a5305d9d9463d9bb7cd6621037450f57279_exiftool.json" time="2022-09-21T22:41:26Z" level=info msg="media: IMG_20201116_185837.HEIC was taken at 2020-11-16 17:58:38 +0000 UTC (meta)" time="2022-09-21T22:41:26Z" level=info msg="folder: added album 'November 2020' (path:2020/11 public:true)" time="2022-09-21T22:41:26Z" level=info msg="import: created folder /2020/11" time="2022-09-21T22:41:26Z" level=info msg="import: moving main heif file IMG_20201116_185837.HEIC to 2020/11/20201116_175838_21A8D266.heic" time="2022-09-21T22:41:26Z" level=debug msg="failed renaming file, fallback to copy and delete: rename /photoprism/import/upload/1663800083546/IMG_20201116_185837.HEIC /photoprism/originals/2020/11/20201116_175838_21A8D266.heic: invalid cross-device link" time="2022-09-21T22:41:26Z" level=info msg="convert: converting 20201116_175838_21A8D266.heic to 20201116_175838_21A8D266.heic.jpg (heif-convert)" time="2022-09-21T22:41:26Z" level=error msg="import: Bogus marker length\ncould not write image\nWarning: File is empty - /photoprism/storage/sidecar/2020/11/20201116_175838_21A8D266.heic.jpg\nError: Format error in file - /photoprism/storage/sidecar/2020/11/20201116_175838_21A8D266.heic.jpg\n in 2020/11/20201116_175838_21A8D266.heic (convert to jpeg)" time="2022-09-21T22:41:26Z" level=debug msg="faces: found no orphan markers [894.017µs]" time="2022-09-21T22:41:26Z" level=debug msg="markers: found no invalid references [977.108µs]" time="2022-09-21T22:41:26Z" level=debug msg="markers: found no missing subjects [314.67µs]" time="2022-09-21T22:41:26Z" level=debug msg="faces: found no ambiguous subjects [239.481µs]" time="2022-09-21T22:41:26Z" level=debug msg="faces: found no clusters to be merged [248.855µs]" time="2022-09-21T22:41:26Z" level=debug msg="faces: found no existing clusters" time="2022-09-21T22:41:26Z" level=debug msg="faces: skipped clustering" time="2022-09-21T22:41:26Z" level=debug msg="faces: found no new faces [480.439µs]" time="2022-09-21T22:41:26Z" level=debug msg="faces: found no unmatched markers" time="2022-09-21T22:41:26Z" level=debug msg="faces: updated 0 markers, recognized 0 faces, 0 unknown [639.677µs]" time="2022-09-21T22:41:26Z" level=debug msg="index: updating counts" time="2022-09-21T22:41:26Z" level=debug msg="counts: updated 0 places [335.667µs]" time="2022-09-21T22:41:26Z" level=debug msg="counts: updated 0 subjects [368.457µs]" time="2022-09-21T22:41:26Z" level=debug msg="counts: updated 0 labels [325.041µs]" time="2022-09-21T22:41:26Z" level=info msg="import: deleted empty folder /photoprism/import/upload/1663800083546" time="2022-09-21T22:41:26Z" level=debug msg="moments: analyzing 0 photos and 0 videos, with threshold 3" time="2022-09-21T22:41:26Z" level=debug msg="moments: not enough files" time="2022-09-21T22:41:26Z" level=info msg="import completed in 3 s" time="2022-09-21T22:41:26Z" level=debug msg="index: updating covers" time="2022-09-21T22:41:26Z" level=debug msg="covers: updated 0 albums [391.642µs]" time="2022-09-21T22:41:26Z" level=debug msg="covers: updated 1 folder [2.99018ms]" time="2022-09-21T22:41:26Z" level=debug msg="covers: updated 0 months [379.994µs]" time="2022-09-21T22:41:26Z" level=debug msg="covers: updated 0 labels [435.439µs]" time="2022-09-21T22:41:26Z" level=debug msg="covers: updated 0 subjects [293.05µs]" time="2022-09-21T22:41:26Z" level=debug msg="server: POST /api/v1/import/upload/1663800083546 (200) [3.155598728s]" time="2022-09-21T22:41:26Z" level=debug msg="server: GET /api/v1/albums?q=&count=1000&offset=0&type=album (200) [810.043µs]" time="2022-09-21T22:41:26Z" level=debug msg="photos: found 0 results for dist:20 album:arikzl9131rb3gls camera:0 count:120 order:oldest merged:true [701.695µs]"

    6. Which software versions do you use?

    (a) Build 220919-cc8bab446 / AMD64

    (b) Database Type & Version: mariadb:10.6

    (c) Operating System Types & Versions: Docker (photoprism/photoprism:preview)

    (d) Browser Types & Versions: Any browser tested. (Mainly tested Brave for Windows v1.43.93)

    (e) Ad Blockers, Browser Plugins, and/or Firewall Software?: Everything disabled.

    7. On what kind of device is PhotoPrism installed?

    This is especially important if you are reporting a performance, import, or indexing issue. You can skip this if you're reporting a problem you found in our public demo, or if it's a completely unrelated issue, such as incorrect page layout.

    (a) Device / Processor Type: 8 x Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz (1 Socket)

    (b) Physical Memory & Swap Space in GB: image

    (c) Storage Type: Containers installed on SSDs, NAS Storage mounted (original pictures)

    (d) Anything else that might be helpful to know?: All types of images work except HEIC

    bug released docker 
    opened by MoweME 46
  • People:New page counts Hidden faces in the ~50 it shows

    People:New page counts Hidden faces in the ~50 it shows

    PLEASE PROCEED ONLY IF YOU ARE ABSOLUTELY SURE THAT THIS IS NOT A TECHNICAL SUPPORT INCIDENT AND/OR POSSIBLY A PROBLEM WITH SOME OTHER SOFTWARE YOU ARE USING. VISIT https://photoprism.app/kb/getting-support TO LEARN MORE ABOUT OUR SUPPORT OPTIONS. THANK YOU FOR YOUR CAREFUL CONSIDERATION!


    1. What is not working as documented?

    The /library/people/new page appears to be designed to show about 50 face clusters of unnamed faces. Unfortunately, it includes HIDDEN faces in that count, so once you have 50 hidden faces you can't get any new face clusters.

    If it were possible to delete a face cluster entirely that would be an acceptable workaround for my particular problem. I have random background people cluttering dozens or hundreds of photos. But it appears a face can only be deleted one picture at a time, there is no way to delete the face cluster.

    But the full fix should include ignoring hidden faces when displaying the New tab. With an option to include hidden faces in the list, of course.

    2. How can we reproduce it?

    Steps to reproduce the behavior:

    1. Access a library with more than 50 unknown face clusters.
    2. Hide a face, several or all of them.
    3. Note that no additional face clusters are displayed.
    4. This remains true when the page is refreshed, even refreshed nocache

    When reporting an import, indexing, or performance issue, please include the number and type of pictures in your library, as well as any configuration options you have changed, such as for thumbnail quality.

    • about 30,000 pictures.

    3. What behavior do you expect?

    Bottom line, the display is capped at the number of faces you see when you select "show hidden." The desired behavior is to show at least that many clusters when the "exclude hidden" option is selected.

    5. Can you provide us with example files for testing, error logs, or screenshots?

    If it becomes necessary. But I think this behavior will prove universal.

    6. Which software versions do you use?

    (a) PhotoPrism Architecture & Build Number: AMD64, ARM64, ARMv7,...

    [PhotoPrism® Plus]) Build [221118-e58fee0fb] x64 QNAP NAS, which runs a Debian variant.

    (b) Database Type & Version: MariaDB, MySQL, SQLite,... MariaDB

    (c) Operating System Types & Versions: Linux, Windows, Android,... QNAP Debian variant uname -a Linux NAS01 5.10.60-qnap #1 SMP Thu Dec 15 01:02:36 CST 2022 x86_64 GNU/Linux

    (d) Browser Types & Versions: Firefox, Chrome, Safari on iPhone,... Chrome 108.0.5359.125

    (e) Ad Blockers, Browser Plugins, and/or Firewall Software? Nothing relevant, but AdBlock, Windows 10 Defender firewall

    7. On what kind of device is PhotoPrism installed?

    QNAP TS-464, 32GB. This is an x64 device.

    (a) Device / Processor Type: Raspberry Pi 4, Intel Core i7-3770, AMD Ryzen 7 3800X,... Intel Celeron N5105/N5095 quad core

    (b) Physical Memory & Swap Space in GB 32GB, not swapping

    (c) Storage Type: HDD, SSD, RAID, USB, Network Storage,... RAID-5

    (d) Anything else that might be helpful to know? Installed Docker version.

    8. Do you use a Reverse Proxy, Firewall, VPN, or CDN?

    Yes, but same behavior when proxy bypassed.

    bug 
    opened by rfortier 0
  • CI Feature Request: Integrate pull request preview environments

    CI Feature Request: Integrate pull request preview environments

    I would like to support Photoprism by implementing Uffizzi preview environments. Disclaimer: I work on Uffizzi.

    Uffizzi is a Open Source full stack previews engine and our platform is available completely free for Photoprism (and all open source projects). This will provide maintainers with preview environments of every PR in the cloud, which enables faster iterations and reduces time to merge. You can see the open source repos which are currently using Uffizzi over here

    Uffizzi is purpose-built for the task of previewing PRs and it integrates with your workflow to deploy preview environments in the background without any manual steps for maintainers or contributors.

    We can go ahead and create an Initial PoC for you right away if you think there is value in this proposal.

    idea 
    opened by waveywaves 0
  • Better Moments

    Better Moments

    Describe what problem this solves and why this would be valuable to many users

    Moments don't seem very useful at the moment. They group unrelated photos as "Parks", but that's a location categorization, not a moment. Those photos weren't taken during the same trip or near one another or even in the same year. That's just a label based on a very loose location keyword. Or Moments are created like "USA 2021" but an entire year is not a moment and the USA is a huge area. That's just a date.

    Describe the solution you'd like

    Something closer to how an iPhone decides on Moments so that they are useful for grouping together photos closely-related in time AND location with smaller granularity on both time and location. Like "New Year's in Canada" or "Trip to Chicago" or "Museum, December 12, 2022". This is probably not an exact science and AI is likely involved to make iPhone moments so good, but these are a couple hard and fast rules that all useful Moments should likely follow without requiring AI.

    Describe alternatives you've considered

    Hmm?

    Additional context

    Examples of current Moments created by PhotoPrism:

    • Bays, Capes, & Beaches
    • Nature & Landscape
    • Outdoor Adventures
    • Parks & Gardens (noticing a pattern here?)
    • Water, Ships & Boats
    • USA 2019
    • USA 2020
    • USA 2021
    • USA 2022
    • USA 2023
    enhancement 
    opened by melyux 3
  • Api for slideshow on tv using ptobably a raspberry pi

    Api for slideshow on tv using ptobably a raspberry pi

    It would be nice if there is an endpoint to randomly generate a photo when hit from a raspberry pi so that users can run a slide show on the TV, something similar to ambient mode on chromecast

    needs-analysis 
    opened by hari2m 1
  • Search: Ignore deleted albums when using the

    Search: Ignore deleted albums when using the "unsorted" filter

    1. What is not working as documented?

    Using the "Unsorted" feature photoprism/library/unsorted we are moving photos into albums.

    An album was accidentally created with the wrong name. Since being in an album is just a 'tag' on a photo, it felt safe to delete the album (and yes, we know that albums can be renamed).

    The photos were no longer in "Unsorted". In our panic, it also felt like they were missing from "Search" (but we may have been mistaken). They were not in the archive either (but we initially suspected the photos in the album were also deleted)

    After hunting around, we located the photos in the Folders photoprism/library/folders

    This allowed us to recreate the album and all is well.

    This still feels like a bug.

    2. How can we reproduce it?

    Steps to reproduce the behavior:

    1. Start in the "Unsorted" album view photoprism/library/unsorted
    2. Select some photos to add to an album.
    3. Create the album with these photos.
    4. Go to the "Albums" view photoprism/library/albums
    5. Delete the newly created album.
    6. Return to the "Unsorted" view - note that the photos have not re-appeared in this view

    3. What behavior do you expect?

    When an Album is deleted, assuming those photos only were in a single album, those photos should return to the unsorted view.

    4. What could be the cause of your problem?

    I'm guessing - but I suspect the Album delete is just removing the Album, and does no clean up of any photos in that album. Thus the photo is still in an Album - but there is no Album to be in.

    5. Can you provide us with example files for testing, error logs, or screenshots?

    This should be simple to reproduce with the steps in (2)

    6. Which software versions do you use?

    (a) PhotoPrism Architecture & Build Number: AMD64, ARM64, ARMv7,...

    AMD64 PhotoPrism® CE Build 221118-e58fee0fb

    (b) Database Type & Version: MariaDB, MySQL, SQLite,...

    MariaDB - mariadb:10.5 from: https://hub.docker.com/_/mariadb

    (c) Operating System Types & Versions: Linux, Windows, Android,...

    Firefox (latest) on M1 OSX (Mac Air) Linux AMD64 hosting docker containers for photoprism

    (d) Browser Types & Versions: Firefox, Chrome, Safari on iPhone,...

    Firefox (latest)

    (e) Ad Blockers, Browser Plugins, and/or Firewall Software?

    pi-hole network wide ad blocker

    7. On what kind of device is PhotoPrism installed?

    (a) Device / Processor Type: Raspberry Pi 4, Intel Core i7-3770, AMD Ryzen 7 3800X,...

    Intel Pentium

    (b) Physical Memory & Swap Space in GB

    16GB with 4GB swap

    Tasks: 389 total,   1 running, 333 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 14.5 us,  9.4 sy,  0.0 ni, 75.2 id,  0.2 wa,  0.0 hi,  0.7 si,  0.0 st
    KiB Mem : 16311680 total,  1640044 free,  7842576 used,  6829060 buff/cache
    KiB Swap:  4194300 total,  3206140 free,   988160 used.  8336272 avail Mem 
    

    (c) Storage Type: HDD, SSD, RAID, USB, Network Storage,...

    Mix of RAID1 SSDs + snapraid on large mixed spinning disks

    (d) Anything else that might be helpful to know?

    No. Thank you for your work on this project.

    Always provide device, memory, and storage details if you have a backend, performance, import, or indexing issue.

    8. Do you use a Reverse Proxy, Firewall, VPN, or CDN?

    Yes. Fronted by nginx https://hub.docker.com/r/linuxserver/nginx setup with 'local only' http:// access. This is not a proxy issue

    bug tested 
    opened by andrewlow 6
Releases(221118-e58fee0fb)
Owner
PhotoPrism
Browse Your Life in Pictures
PhotoPrism
Go package for fast high-level image processing powered by libvips C library

bimg Small Go package for fast high-level image processing using libvips via C bindings, providing a simple programmatic API. bimg was designed to be

Tom 2.1k Jan 2, 2023
Graphics-go - back for code.google.com/p/graphics-go

This is a Graphics library for the Go programming language. Unless otherwise noted, the graphics-go source files are distributed under the BSD-style

fish 0 Jan 1, 2022
Boundary enables identity-based access management for dynamic infrastructure.

Boundary Please note: We take Boundary's security and our users' trust very seriously. If you believe you have found a security issue in Boundary, ple

HashiCorp 3.5k Jan 9, 2023
Go bindings for audio capture and playback with ALSA and libasound

Go ALSA bindings These bindings allow capture and playback of audio via ALSA using the alsa-lib library. Installation go get github.com/cocoonlife/goa

null 38 Nov 26, 2022
This is old and unmaintained code, ignore it. starfish is a simple, SDL based, 2D graphics and user input library for Go. If you intend to work on it, please fork from the 'devel' branch, not 'master'. Current release: 0.12.0

What is starfish? What starfish is: starfish is a simple 2D graphics and user input library for Go built on SDL. What starfish is not: While it is bui

Gary Talent 12 Jun 4, 2019
darkroom - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency.

Darkroom - Yet Another Image Proxy Introduction Darkroom combines the storage backend and the image processor and acts as an Image Proxy on your image

Gojek 203 Dec 6, 2022
Go package captcha implements generation and verification of image and audio CAPTCHAs.

Package captcha ⚠️ Warning: this captcha can be broken by advanced OCR captcha breaking algorithms. import "github.com/dchest/captcha" Package captch

Dmitry Chestnykh 1.7k Dec 30, 2022
Fast and secure standalone server for resizing and converting remote images

imgproxy imgproxy is a fast and secure standalone server for resizing and converting remote images. The main principles of imgproxy are simplicity, sp

imgproxy 6.8k Jan 1, 2023
Publish Your GIS Data(Vector Data) to PostGIS and Geoserver

GISManager Publish Your GIS Data(Vector Data) to PostGIS and Geoserver How to install: go get -v github.com/hishamkaram/gismanager Usage: testdata fol

Hisham waleed karam 48 Sep 26, 2022
General purpose library for reading, writing and working with OpenStreetMap data

osm This package is a general purpose library for reading, writing and working with OpenStreetMap data in Go (golang). It has the ability to read OSM

Paul Mach 246 Dec 30, 2022
Real-time Geospatial and Geofencing

Tile38 is an open source (MIT licensed), in-memory geolocation data store, spatial index, and realtime geofence. It supports a variety of object types

Josh Baker 8.4k Jan 4, 2023
Image processing library and rendering toolkit for Go.

blend Image processing library and rendering toolkit for Go. (WIP) Installation: This library is compatible with Go1. go get github.com/phrozen/blend

Guillermo Estrada 61 Nov 11, 2022
Struct for marshaling and unmarshaling glTF

glTF Struct for marshaling and unmarshaling glTF go get github.com/sturfeeinc/glTF/model It's autogenerated code from official work group's specs. Don

null 17 Apr 5, 2020
A lightning fast image processing and resizing library for Go

govips A lightning fast image processing and resizing library for Go This package wraps the core functionality of libvips image processing library by

David Byttow 816 Jan 8, 2023
Go bindings for libVLC and high-level media player interface

Go bindings for libVLC 2.X/3.X/4.X and high-level media player interface. The package can be useful for adding multimedia capabilities to applications

Adrian-George Bostan 328 Dec 31, 2022
Read and write Netpbm images from Go programs

netpbm Introduction netpbm is a package for the Go programming language that implements image decoders and encoders for the Netpbm image formats. The

Scott Pakin 17 Dec 29, 2022
A repository for plotting and visualizing data

Gonum Plot gonum/plot is the new, official fork of code.google.com/p/plotinum. It provides an API for building and drawing plots in Go. Note that this

null 2.3k Dec 27, 2022
A library to read, write, and transform Stereolithography (.stl) files in Go.

stl A library to read, write, and transform Stereolithography (.stl) files in Go. It is used in the command line STL manipulation tool stltool. Featur

Hagen Schendel 65 Sep 26, 2022
ID3, MP4 and OGG/FLAC metadata parsing in Go

MP3/MP4/OGG/FLAC metadata parsing library This package provides MP3 (ID3v1,2.{2,3,4}) and MP4 (ACC, M4A, ALAC), OGG and FLAC metadata detection, parsi

David Howden 443 Jan 7, 2023