PhotoPrism has become one of the most powerful projects To create your own private AI-powered photo gallery at home, without relying on Google Photos or other commercial cloud services. It's a solution designed for those who want to keep everything locally, with complete control over their images, but without sacrificing smart search, facial recognition, maps, or convenient mobile access.
In this guide you will see step by step what PhotoPrism offers, and how to fit it into a home server. (whether with Docker on Linux, Fedora, Unraid, OpenMediaVault, Raspberry Pi or NAS), what security requirements and best practices should be applied, what external apps improve the experience and how it compares with alternatives such as Immich, Synology Photos, Nextcloud, Plex Photos or PhotoStructure so you can make an informed choice.
What is PhotoPrism and why is it of so much interest?
PhotoPrism is a modern web application for organizing photos and videos It uses machine learning techniques to analyze your image library, detect what appears in each image, identify people, scenes, and places, and group everything in a very granular way. It's designed to run on your own server, but you use it from your browser as if it were an online service.
The interface works like a PWA (progressive web application)This allows you to "install" it on your desktop or mobile home screen for a near-native experience. It runs smoothly in Chrome, Chromium, Firefox, Safari, and Edge, and adapts to both large screens and mobile phones and tablets.
It doesn't fall short in terms of formats: it supports RAW, JPEG, PNG and many others.So it's especially interesting if you work with serious cameras. It incorporates duplicate detection and management to prevent your photo library from becoming cluttered with unnecessary copies, and includes basic editing functions like cropping and resizing, as well as advanced tools for manipulating EXIF metadata, tags, star ratings, and more.
PhotoPrism can operate purely locally or be combined with external cloud services.If you want, you can connect Dropbox, Google Drive, or Amazon S3 storage, but the main focus remains that your library "lives" on your own disk, with your database and your control.
Who is PhotoPrism especially suited for?
The typical user who gets the most out of PhotoPrism is usually very demanding when it comes to their photos. And with order. It's not just for hobbyists: the project is clearly geared towards large collections, heavy formats, and fine cataloging needs.
Some groups that are a great fit for PhotoPrism These are the following, although they are not the only ones:
- Professional photographers who work with large catalogs of RAW files and need quick searches by date, camera, lens, location, or content.
- Graphic designers and creatives who continuously handle visual materials and require a well-labeled repository of resources, mockups, backgrounds, textures, etc.
- real estate agents or similar professionals who take photos of properties and need to classify them by property, neighborhood, type of stay and condition.
- Marketing and advertising managers who accumulate campaigns, product sessions, and corporate material and need to reuse it without wasting time searching.
- Inveterate travelers who especially value maps, timelines, and automatic tagging by places and scenes to relive trips without going crazy.
- Web developers and technical teams that require a clean library of screenshots, icons, front-end assets, or documentation material.
- Digital archivists and "guardians" of family memory who want to preserve historical or personal photographic collections, arrange them carefully and keep them away from third parties.
Even if you're not a professional, if you have a large photo library, PhotoPrism can save you countless hours. Thanks to automatic tagging, advanced search, and chronological organization, it's a huge leap forward for anyone used to years of "YYMMDD - Description" folders on a NAS.
Installation: Docker, supported systems, and cloud
The recommended way to deploy PhotoPrism today is with Docker ComposeThe project team publishes official ready-to-use examples on Linux, macOS, and Windows, and there are also regular deployments on FreeBSD, Raspberry Pi, and various NAS devices.
If you prefer not to maintain your own hardware, you can deploy it in the cloud. Using solutions like PikaPods or a droplet on DigitalOcean, where you basically pay for the resources you use and forget about the physical device. Even so, the project's philosophy leans more towards having it on your home network or a dedicated server.
After lifting the containers, the "First Steps" assistant It guides you through the initial setup: language, original library paths, indexing options, recognition, caching, etc. This phase is important because it determines how the analyzer will behave and what load it will place on your machine.
PhotoPrism developers boast a “zero errors” policyThey prioritize stability, invest heavily in testing before releasing versions, and are careful not to promise firm dates for major features. Community funding—through memberships and donations—is what accelerates the development of new features.
System, database, and performance requirements
Not just anything will do for PhotoPrism to work properly.Especially if you have hundreds of gigabytes of photos and videos. The official recommendations for a stable server are clear: a 64-bit system, at least 2 CPU cores, and 3 GB of RAM.
From that minimum, memory should scale with the number of cores.If you're building a system with 4 or 8 cores, allocating only 3 GB of RAM is asking for trouble when you start indexing large panoramas or very large batches. Indexer performance improves significantly with sufficient RAM and, above all, with a fast hard drive.
Local SSD storage for the database and cache makes a huge difference. in terms of indexing and interface response times. If possible, keep the MariaDB database and cache directories on an SSD and use the HDD only for bulk photo storage.
Swap space also comes into playWith less than 4 GB of swap space (or if you limit memory/swapping in containers), you may experience restarts or process crashes when the indexer consumes peak amounts of RAM, especially with high-resolution panoramas. On systems with 1 GB or less, PhotoPrism automatically disables RAW conversion and TensorFlow because there simply isn't enough processing power.
Regarding the database, PhotoPrism is compatible with SQLite 3 and MariaDB 10.5.12 or higher.Technically you can start with SQLite in a small environment, but if you aspire to scale and have good performance, the sensible thing to do is to go directly to MariaDB.
Support for MySQL 8 was withdrawn due to low demand and a lack of specific features.So, currently, MariaDB is the top choice. The documentation is usually based on the current stable version, and the authors recommend avoiding the `:latest` tag in Docker for MariaDB: it's better to specify a particular version and update only after they have thoroughly tested it.
As for browsers, being a modern PWA, it works especially well in Chrome/Chromium, Safari, Firefox, and Edge.You can pin it to your desktop or home screen on virtually any modern device. The only thing to keep in mind is that video and audio codec support depends on the browser and operating system: for example, AAC is supported by default in Chrome, Safari, and Edge, but in Firefox or Opera it depends on what the operating system offers.
Security, HTTPS, firewalls, and maps

If you're going to expose PhotoPrism outside your local network, you need to take HTTPS seriously.The recommendation is clear: always place it behind a TLS reverse proxy like Traefik or Caddy when installing it on a public server.
If you don't use HTTPS, both passwords and photos travel in plain text.This means that your ISP, attackers along the way, or any actor with access to your traffic can see what you're doing. Furthermore, many sync and backup apps (like FolderSync) refuse to connect to unencrypted servers.
With an active firewall, you must explicitly allow the necessary traffic.These are the ports for accessing the web, the geocoding API used by PhotoPrism, and—if applicable—Docker or the internal network where your containers reside. It's easy to forget this and think "it's not working," when the problem is actually with the firewall.
The maps and reverse geocoding rely on the project's own services and on MapTiler AG, a Swiss company. PhotoPrism has chosen this platform precisely because of its strong focus on privacy and confidentiality. You're not required to sign up for external APIs or deal with arbitrary usage limits.
The use of these maps is covered by the projectAnd in many scenarios, it's much more cost-effective than providers where you pay per request and can't even properly cache the data. In those cases, performance and privacy end up being worse than with the integrated solution that PhotoPrism offers.
Official support, community and best practices
The community around PhotoPrism is very active and it is key to resolving doubts about home deployment, performance problems or advanced configuration issues.
If you need help, the first place to look is usually GitHub Discussions.where users and developers exchange experiences and solutions; in parallel, you have a community chat where people are usually quite helpful in guiding you through typical configurations with Docker, NAS, Raspberry, etc.
The project offers troubleshooting checklists These help rule out common causes: folder permissions, incorrectly configured environment variables, closed ports, incorrect volume paths, database driver problems, etc. Following these steps usually saves a lot of time.
They only recommend opening issues on GitHub when you detect a reproducible bugCheck that the issue hasn't already been reported. In many cases, what seems like an app bug is actually a matter of environment or expectations, and it's best to ask the community or support first.
Users with subscription plans (Silver, Gold, Platinum) They also offer direct email support with the team, which is useful for companies or organizations that rely on the service and want more formal answers.
PhotoPrism on mobile: unofficial apps and useful options
Although PhotoPrism works perfectly from the mobile browser, specific apps have emerged to make the experience more comfortable on Android and iOS and to fill specific gaps that the web does not cover as well.
Stream for iOS: convenient management without touching the originals
For iPhone there is an app called Stream that integrates with your PhotoPrism server and mixes the phone's local photos and those stored on the server into a single gallery, providing a fairly practical unified view.
Stream can detect and group duplicates, and apply batch actions. (mark favorites, archive, delete many at once) and even offers natural language search, something that brings the experience closer to what the big commercial clouds offer.
One important detail: Stream acts only as a client and does not store your photos or modify the originals.If you decide to uninstall it one day, your library remains intact in PhotoPrism. The developer is usually open to suggestions and distributes the app directly from the App Store.
Unofficial Android client: gallery, timeline and TV
On Android, there is a free client designed to offer a native gallery experience for PhotoPrism.designed for those who prefer a dedicated app instead of always using the browser.
Its features include a timeline with different grid densitiesGrouped by days and months, a side time scroll to quickly jump to a date, configurable search with filters, and the ability to save searches as "bookmarks" for later use.
It also includes an improved viewer for iPhone and Samsung live photos., a full-screen presentation mode with different speeds, support for sending photos to other apps (Gmail, Telegram, etc.), direct deletion without going through a file, and the ability to import photos to the server using Android's own sharing function.
For environments with enhanced security, it supports mTLS, HTTP Basic Authentication, and SSO solutions such as Authelia or Cloudflare Access.Furthermore, it maintains long sessions without constantly asking for the password, which is appreciated in everyday use.
As an added bonus, it offers basic TV compatibility.You can explore the timeline with the remote control if you manually install the APK on Android TV/Google TV devices, although it's not listed on Google Play for TV. It includes extensions such as a photo frame widget with random images and a "Memories" module with photos/videos from the same day in previous years.
From the cloud to local: real-world and alternative experiences
Many people consider PhotoPrism when they get tired of relying on Google Photos or iCloud. For something as sensitive as family photos, the convenience of the cloud is enormous, but many are uneasy about not knowing exactly how those images can be used beyond the promise of not exploiting them for direct advertising purposes.
For years, Picasa was the "local Google Photos" that many loved.Facial recognition since 2009, decent geotagging, folder organization, and 100% local resource consumption. When Google killed it to push people to the cloud, many were left without it and reverted to the classic method of organizing folders by date on a NAS.
The pandemic took advantage of the situation to centralize scattered libraries. on old hard drives, laptops, and mobile devices, reorganizing everything into a large "YYMMDD - Description" tree. This effort paved the way for a local solution like PhotoPrism, Immich, Synology Photos, or similar.
Projects and devices that were left unfinished
Some solutions seemed like the definitive answer, and then they fell short.whether due to business model, technical limitations, or abandonment by developers.
PhotoStructure, for example, charmed many with its interface and the idea of displaying random mosaics of memories.However, some key features, such as marking favorites, were locked after subscribing to the Plus version. For users who had been avoiding monthly fees, paying for another subscription just for favorites was a hard sell.
Devices like Monument 2 promised to be "Google Photos in a box"With Raspberry Pi-style hardware and proprietary software handling everything, they sounded great on paper—mobile backup, indexing, an Apple/Google Photos-style interface—but in practice, they suffered from firmware issues, slow support, and failures with some SSDs. Over time, the project fell into disrepair, and many backers ended up disappointed.
Synology Photos: almost perfect, but with some flaws
Synology Photos is one of the biggest rivals when it comes to setting up a local photo library.For those who already own a NAS from the brand, it's an extremely convenient option: it respects your existing folders, offers a chronological view like Google Photos, and the mobile app syncs photos from your phone without complications.
Its browser interface is very polished and user-friendly.However, it has two shortcomings that bother advanced users. On the one hand, there are hardly any keyboard shortcuts for frequent actions like marking favorites or deleting: you have to use the mouse to navigate to specific icons, which significantly hinders mass deletion.
On the other hand, the Android TV app has stagnated.It does allow you to view photos on the TV, but it lacks an effective chronological navigation bar. With libraries of hundreds of thousands of photos, getting to a specific month from ten years ago means scrolling for ages with the remote. There's no way to quickly jump to a date, something that's crucial for many when they're gathered in the living room.
Unraid and the home server as a basis for PhotoPrism
Those who want to go a step further than a closed NAS usually set up their own server with Unraid, TrueNAS or other platformsUnraid, in particular, has gained a legion of fans for its flexibility, its community, and its "App Store" of pre-configured containers.
A typical setup for a photo server might combine a Jonsbo N2 type boxSeveral large drives (for example, 3 x 10 TB) and a fast SSD for caching and hot storage. ZFS and a RAID Z1 configuration provide fault tolerance, although external backups are still essential if you value your memories.
Once the data has been migrated to the new server, deploying PhotoPrism is as simple as finding the container in the catalog.Adjust volumes and variables, and let the indexer work its magic. It's also common to test other services in parallel: Jellyfin, Plex, Immich, Nextcloud… the advantage of Docker is that each one is isolated and can be turned on/off as needed.
An honest comparison: where PhotoPrism fits in against other solutions
PhotoPrism is not the only free, self-hosted alternative to Google PhotosNot at all. The landscape is full of projects with very different approaches and levels of maturity. Understanding them helps to better understand PhotoPrism's strengths and weaknesses.
Classic galleries and more basic projects
Piwigo is a highly scalable and powerful veteranIt supports complex albums, themes, geolocation, and multiple user accounts. It's superb as a photo gallery, but its core concept revolves much more around tags and albums than a single, Google Photos-style timeline.
Photonix offers object, color, and face recognitionBut today it remains quite basic: a very simple interface, few organizational options, and a feeling of being more of a "tinkering project" than a complete replacement.
Lychee stands out for its clean and minimalist design.It's ideal as a web viewer with organized albums, but it lacks a strong chronological focus and advanced features like favorites or AI. It's fine for specific projects (for example, a travel portfolio), but not for a massive photo library.
Photoview restores chronological logic and even adds facial recognition and geolocationHowever, it maintains an extremely minimalist interface. Some actions can only be performed from the thumbnail view, which is quite confusing when you're in full-screen viewer mode.
LibrePhotos, an evolved fork of previous projects, shines in the demos with a very convenient timeline.However, in real-world deployments, it can suffer from slow imports and a clunky interface. Furthermore, its installation/update process is often less user-friendly in environments like Unraid, where an "official" container isn't always available in the store.
Nextcloud Photos and Memories: a general-purpose private cloud
Nextcloud Photos is interesting if you already use Nextcloud for documents, calendar, or notes.It features chronological order, favorites, "On This Day" style sections, and a surprisingly comprehensive editor with filters, drawing, and basic adjustments.
With additional apps like Preview Generator and Imaginary you can speed up thumbnail renderingAnd with the Recognize plugin, you add facial recognition to the mix. The community-developed Memories app refines many details: better metadata management, geolocation, and more direct control of favorites.
The magic of Nextcloud lies in its mobile app and its "private cloud" style photo synchronization.For automatic backups from your mobile device, it's one of the most reliable options available. What doesn't appeal to everyone is the interface: functional and mature, yes, but somewhat less refined than other options, and more general-purpose (not just for photos).
Plex Photos: If you already live in Plex
Plex has recently added Plex Photos as a separate app.Still in beta, it integrates with your traditional Plex server. Its focus is on timeline, library, and recommendations views, plus the classic favorites bookmarking feature.
It allows you to play slideshows, even with a shuffle button in the web version.It integrates well with the Plex mobile app ecosystem. The major drawback: there's no decent native Android TV app that lives up to expectations, and attempts to use the mobile APK on the TV are usually a usability nightmare.
PhotoPrism vs. Immich, Synology Photos and Ente
Immich has earned the title of "the current benchmark" for many who are turning away from Google Photos.Its interface is almost a clone of Google's: chronological wall, month/year sidebar, "X years ago" section and keyboard shortcuts (F key for favorite, Delete for trash) that make filtering photos very convenient.
Immich tends to create its own internal photo library by duplicating your photos in its structureThis requires similar space to the original library, but guarantees that it doesn't affect your original files. There is a more direct external library mode, although it requires more care.
Importing from Google Photos using Immich-CLI or Immich-Go And its AI recognition (faces, objects, semantic search for concepts like "mountains," "orange," "sea") is among the best in the industry. Furthermore, it allows you to delegate Machine Learning to another machine on the network with its Remote ML option, which is very "professional."
Synology Photos shines if you already own or are planning to buy a Synology NASEasy installation, seamless mobile syncing, respect for folder structure, and a reasonable balance between timeline and albums. Its biggest weaknesses remain the lack of keyboard shortcuts and a TV app with much-needed navigation.
Ente has made a bold move by opening its code and focusing on end-to-end encryption.Its interface is clean and chronological, with a basic editor and powerful options for private shared albums. However, it sacrifices some advanced AI: the search focuses more on names and structures than on deep content recognition.
In this ecosystem, PhotoPrism fits in like the "Swiss Army knife" of photographic cataloging: strong in tags, quality ratings, advanced EXIF editing, AI for content, map view, and a robust PWA that works well with HTTPS proxies, strict firewalls, and corporate environments.
Its less appealing side, according to those who have thoroughly tested it, is that it sometimes conveys more of a sense of "managing" than of "enjoying" oneself.It lacks a timeline view as direct as that of Immich or Google Photos, since the calendar tends to group by months and the interface can seem cluttered if you come from minimalist environments.
PhotoPrism, Traefik and the typical 404 at photoprism.localhost
A classic problem when integrating PhotoPrism with Traefik is that it works on localhost:2342 but fails on photoprism.localhost with a 404 error. If that happens to you, it almost always means that Traefik is not routing traffic correctly to the container's internal port.
In a Docker tag deployment, you need to make sure that the Traefik router has a correct Host rule (for example, Host("photoprism.localhost")), which uses the appropriate entrypoint ("web" at :80 or "websecure" at :443) and the service points to port 2342 of the PhotoPrism container.
In addition to the router label, it is usually necessary to explicitly declare the destination port. In the service labels (load balancer) pointing to 2342, connect the container to the network that Traefik monitors and leave the PHOTOPRISM_SITE_URL variable clean, something like "http://photoprism.localhost/" without strange spaces or extra ports when you go through the reverse proxy.
If you don't want to go into Traefik, you can always access it with photoprism.localhost:2342 As long as you have the 2342:2342 port mapping in Docker. However, if you're aiming for a clean domain behind the proxy, it's recommended to stop exposing port 2342 on the host and have all access go through Traefik.
In typical docker-compose instances you will also see a MariaDB container With optimized buffers, persistence in `./database`, and variables like `MARIADB_DATABASE`, `MARIADB_USER`, and `MARIADB_PASSWORD`, plus an optional Watchtower-type container for automating updates. PhotoPrism's list of environment variables is extensive: authentication, TLS, compression, size limits, TensorFlow, classification, RAW, FFmpeg, database driver type… and all of that can be fine-tuned for your machine.
Is it feasible to mount PhotoPrism on an old PC or Raspberry Pi?
A very common question is whether an older PC or a Raspberry Pi 4 can handle PhotoPrism + AI well for a large library (for example, 300 GB that you migrate from Google Photos).
With a desktop computer from 10-12 years ago, 4 cores and 3-4 GB of RAMIt is perfectly possible to run PhotoPrism in a Docker container on Fedora, Debian or similar, and configure automatic uploads from two mobiles using tools like PhotoSync, Syncthing or the unofficial Android app itself.
In that scenario, it is advisable to assume that the first indexing will take days.Especially if you activate all the AI features (content classification, faces, etc.). You can start by disabling some of the AI to speed things up and then activate it in stages.
Regarding the server's operating system, it is not mandatory to replace Fedora with OpenMediaVault or Unraid.If you're already proficient in Fedora and Docker, sticking with them simplifies things considerably. An OMV or Unraid-type system offers advantages for disks, snapshots, and container "App Stores," but it requires you to relearn part of the environment.
Raspberry Pi 4 can run PhotoPrism, but with clear limitationsThe CPU is optimized for intensive AI, requires careful handling of the graphics card or external SSD, and results in long indexing times. It might be suitable for medium-sized photo libraries and when you're not in a hurry, but if you're going to be managing tens of thousands of photos, an older PC with a good SSD is usually a better option.
Regardless of the platform, it is essential to design an external backup plan.For example, periodic compressed files of the library and database uploaded to an encrypted provider such as MEGA, Proton Drive or similar, either with automatic scripts or with a monthly or quarterly manual routine.
PhotoPrism stands out as a mature self-hosted solutionIt's very powerful in cataloging, AI, and fine-tuning metadata, requiring some initial setup but then offering a stable experience. If your priority is maximizing organization and privacy locally, it's a strong contender to become the centerpiece of your gallery; if you prefer the "Google Photos" aesthetic and fast-paced viewing on mobile and TV, you'll probably want to combine it with other options like Immich or keep an eye on emerging projects like Ente or dedicated Android TV clients. Share this information with other users so they know how to use the tool.
