580de58346
* virtualize mosaic-view * start virtualizing parts of the list view * drastically improve mosaic component updating performance by not rendering cards if not necessary * speed up list view virtualization by preventing the rendering of vue-components * start virtualizing cards view * continue virtualizing card view * finish virtualizing cards * start moving common virtualization logic into shared file * try speeding up access to calculated photo details * remove console.log * improve accuracy of cards-placeholder elements * remove console.log * start fixing memoized values not updating on change * fixing memoized values not updating on change * remove console.logs * fix getting location info after memoizing the function * remove obsolete comment * start rendering of only visible icons in mosaic-view * continue rendering of only visible icons in mosaic-view * implement rendering of only visible icons in cards-view * implement rendering of only visible icons in list-view * memoize some photo-model functions that are called when rendering mosaic- or cards-view * fix cards sometimes getting smaller when scrolling * improve fix for cards sometimes getting smaller when scrolling * prevent rendering of no-photos-alert if photos are present * fix selection issues after implementing conditional button-rendering * speedup mosaic rendering by replacing vue components with html components * speedup cards rendering by replacing vue components with html components * speedup list rendering by replacing vue components with html components * fix removed elements leaving behind placeholders in view * speedup photo view rendering by replacing vue buttons and icons with regular html components * fix positioning of card-title in placeholder elements * fix missing icons after multiselect or select via touch * prevent flickering of favourite button on click * prevent flickering of favourite button on click * use div instead of v-flex * replace inline styles with css classes * re-add actually necessary css-classes * add size-containment to mosaic-elements to reduce re-layouting costs when virtualization replaces children * fix typo in comment * use plain html instead of components and css-classes instead of inline styles in cards.vue * improve list scrolling by not using v-data-table for a static table * fix icon-color on card-details in light-theme * fix card-details showing wrong icons with wrong height on pixel 3 * fix animated gif-previews getting out of image-bounds when hovering in firefox * fix closing brackets in mosaic view not matching opening brackets * fix live-photo icon in mosaic- cards and list components * improve render performance by replacing v-hover vue-component with css-hidden button * prevent unnecessary rerenders * prevent unnecessary rerenders * undo "prevent unnecessary rerender" because the real-world-effect is negligable * load next batch earlier to reduce change of scrolling to the end before the load finished * add explanation on why the selection-button isnt removed via v-if * remove console.log * speed up rendering by reducing amount of observed items * fix favourite-buttons in non-search views * prevent unnecessary observeItems-calls by only observing items when photos changed Co-authored-by: Heiko Mathes <heiko@pop-os.localdomain> |
||
---|---|---|
.github | ||
assets | ||
cmd/photoprism | ||
docker | ||
frontend | ||
internal | ||
pkg | ||
scripts | ||
.clabot | ||
.dockerignore | ||
.drone.yml | ||
.fossa.yml | ||
.gitignore | ||
.my.cnf | ||
CODE_OF_CONDUCT.md | ||
codecov.yml | ||
CONTRIBUTING.md | ||
docker-compose.ci.yml | ||
docker-compose.latest.yml | ||
docker-compose.local.yml | ||
docker-compose.mariadb.yml | ||
docker-compose.postgres.yml | ||
docker-compose.yml | ||
Dockerfile | ||
FUNDING.yml | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
NOTICE | ||
README.md | ||
SECURITY.md | ||
SPONSORS.md |
PhotoPrism: Browse Your Life in Pictures
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. PhotoPrism was designed from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality:
- Browse all your photos and videos without worrying about RAW conversion, duplicates or video formats
- Easily find specific pictures using powerful search filters
- Recognizes the faces of your family and friends
- Automatic classification of pictures based on their content and location
- Play Live Photos by hovering over them in albums and search results
- Since the User Interface is a Progressive Web App, it provides a native app-like experience, and you can conveniently install it on the home screen of all major operating systems and mobile devices
- Includes four high-resolution World Maps to bring back the memories of your favorite trips
- Metadata is extracted and merged from Exif, XMP, and other sources such as Google Photos
- Many more image properties like Colors, Chroma, and Quality can be searched as well
- Use PhotoSync to securely backup iOS and Android phones in the background
- WebDAV clients such as Microsoft's Windows Explorer and Apple's Finder can connect directly to PhotoPrism, allowing you to open, edit, and delete files from your computer as if they were local
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 also never be shared with Google, Amazon, Facebook, 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 Improvements
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, improvements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.
Because sustained funding is key to releasing new features in a timely manner, 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.