Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The safest way to run PhotoPrism on a private server is with Docker Compose: download the official example for your operating system and CPU architecture, review its storage mounts and password, start it with docker compose up -d, and update it later with docker compose up -d --pull always. Back up PhotoPrism’s storage and index database before updates because a new image can migrate the index database.

This guide covers a first installation, storage layout, platform-specific resource requirements, password changes, safe update routines, preview releases, automatic updates, and recovery precautions. The commands assume Docker Compose v2, the current Docker Compose plugin.

What you need before installing

PhotoPrism’s Compose setup is intended for a Docker-capable private server. It can run on Linux, Windows, macOS, Raspberry Pi systems, and many NAS devices, although “many NAS devices” is not a guarantee that every model or operating system is compatible. Check that your NAS vendor provides a working Docker installation and that its CPU architecture matches the Compose example you plan to use.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Docker and Compose

  • Install Docker Engine or Docker Desktop on the target host and make sure the daemon is running.
  • Use Docker Compose v2, invoked as docker compose with a space. The older docker-compose command is not the command used by PhotoPrism’s current examples.
  • Your account must be allowed to access Docker. If docker compose reports that it cannot connect, first verify that Docker is running, then check the account’s Docker permissions.

The default Compose filename is compose.yaml. PhotoPrism still supports docker-compose.yml for backward compatibility, so an existing installation does not have to be renamed immediately.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Choose the correct example

Download the official Compose example that matches the host platform and architecture. PhotoPrism documents examples for Linux, Windows, macOS, Raspberry Pi and ARM64, and ARMv7. Do not copy a file intended for a different architecture without checking the image and volume settings.

Memory and swap planning

PhotoPrism recommends at least 4 GB of swap in its Linux examples. It also advises against imposing a hard container memory limit because the indexer may need additional memory. RAW files and high-resolution panoramas can require more than a small personal library. These are PhotoPrism’s published recommendations, not independent performance benchmarks.

Host situation Guidance from PhotoPrism’s Compose documentation
Linux Provide at least 4 GB of swap in the documented examples and avoid a hard memory cap.
Windows with Hyper-V Raise Docker’s available memory to 4 GB or more.
Windows with WSL 2 Docker Desktop uses dynamic memory allocation; a manual change may not be necessary, depending on the Docker Desktop version.
macOS Allow Docker 4 GB or more; PhotoPrism contrasts this with Docker’s stated 2 GB default.
RAW or very large panorama collections Plan for additional memory beyond the baseline guidance.

Download and inspect the Compose file

Create a dedicated directory for the deployment and place the downloaded file there. This directory becomes the working directory for every later start, stop, update, and diagnostic command.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Open PhotoPrism’s official Docker Compose setup documentation.
  2. Choose the example for your operating system and architecture.
  3. Save it as compose.yaml (or retain the supported legacy filename docker-compose.yml).
  4. Read the file before starting it. Identify the PhotoPrism service, database service if included, port mapping, environment variables, and every volume mount.

Do not treat the example as a disposable file. It records where PhotoPrism stores originals, imports, thumbnails, configuration, and its index. Keep the file in a backed-up configuration directory so you can recreate the same deployment.

Configure storage, paths, and the administrator password

Set the originals directory

Find the volume that maps a host directory to /photoprism/originals. Replace the example host path with the directory that contains your photos. You may mount additional photo directories beneath /photoprism/originals when you need to expose more than one host location.

On Windows, use a drive letter and forward slashes in the host path. Review the resulting path carefully; a typo can leave PhotoPrism running while showing an empty library because it is looking at the wrong directory.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Keep imports outside originals

Do not place the import directory inside the originals directory. PhotoPrism warns that this can create a loop in which files already indexed as originals are imported again. Use a separate host directory for imports and map it to the import location shown in the example.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Change the initial password

Replace the example value of PHOTOPRISM_ADMIN_PASSWORD with a unique password of at least eight characters. Avoid the example or any easy-to-guess value. The variable is used only during first startup; changing it in compose.yaml after the account already exists does not change the existing administrator password.

If an environment value must contain a literal dollar sign, write it as $$ in the Compose file so Compose does not interpret it as variable substitution.

Preserve the important directories

Back up the host directories mapped to PhotoPrism’s storage and database locations, not just the YAML file. The storage directory contains information needed to restore the deployment, and destructive reset commands can permanently delete data. A backup should be usable from outside the Docker host, not merely another path in the same disk failure domain.

Start PhotoPrism for the first time

  1. Open a terminal in the directory containing compose.yaml.
  2. Start the stack in the background:
    docker compose up -d
  3. Wait for the containers to initialize. The first image download and database initialization can take longer than later starts.
  4. Open http://localhost:2342/ on the Docker host, or use the host’s address and mapped port when connecting from another device on your network.
  5. Sign in with username admin and the initial password you configured in PHOTOPRISM_ADMIN_PASSWORD.

The -d option leaves the services running in the background. If you need to watch startup output, run docker compose logs -f in the same directory and stop following the log with Ctrl+C; this does not stop the containers.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Change the administrator password after installation

Because the initial-password variable is not a post-install password mechanism, use PhotoPrism’s password command for an existing account:

Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

docker compose exec photoprism photoprism passwd [username]

Replace [username] with the account whose password you want to change. Keep the brackets only as a visual placeholder; do not type them unless they are actually part of the username.

Apply configuration changes

Edits to ports, volume paths, environment variables, or other Compose settings take effect when the services are recreated. A straightforward restart sequence is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Stop the services:
    docker compose stop
  2. Start them again from the same directory:
    docker compose up -d

Stopping the containers does not delete the mapped host data. Do not use reset or removal commands as a routine restart; some reset operations permanently delete data and cannot be undone.

How to update PhotoPrism safely

1. Back up before pulling a new image

Make a verified backup before every major update and whenever the library is important. Include the PhotoPrism storage folder and the database or index data mapped by the Compose file. PhotoPrism explicitly warns: “A new version may upgrade your index database when it starts.” A database migration can be one-way, so retain a restorable copy of the previous state.

Take extra care before changing from a stable release to the development preview tag. Confirm that you can restore the old Compose file, image tag, and data backup before proceeding.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

2. Pull and recreate the services

From the Compose directory, run:

docker compose up -d --pull always

This tells Compose to check for and download newer images, then recreate and start the services in the background. The download can take several minutes on a slow connection. Keep the terminal open long enough to see any image, configuration, or startup error.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Check the result

  • Confirm that the containers are running with docker compose ps.
  • Open the web interface and sign in.
  • Test a few searches, albums, and representative photos, including RAW files if you use them.
  • Review the application logs with docker compose logs --tail=200 if a service repeatedly restarts or the interface is unavailable.

4. Read release notes and decide whether to rescan

After a major upgrade, read the release notes for changes that affect indexing, database migrations, or search. Consider a complete rescan when you want newly introduced filters or sorting options, or when searches return missing or incorrect results.

Do not run multiple indexing processes at the same time. Concurrent indexing increases server load and can make a large rescan slower or less reliable.

Why the :latest tag does not update itself

A Compose file using the :latest image tag does not make Docker fetch a new image automatically. The tag is only a name that can point to a newer image on the registry. You still need to run docker compose up -d --pull always, or configure a separate automatic-update service.

Manual updates versus automatic updates

Approach Advantages Risks and responsibilities
Manual pull and restart You choose the maintenance window, create a backup first, read release notes, and observe startup. Someone must remember to run the command; images remain unchanged until that happens.
Automatic updater such as Watchtower New images can be detected and deployed without a manual pull. An update may interrupt indexing or import operations. You give up precise control over timing and must still maintain backups and recovery procedures.

Automatic updates are a convenience option, not a substitute for backups. If imports or indexing are frequent, schedule maintenance deliberately or disable automatic deployment during those operations.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Stable releases and the development preview

Choice Best suited to Trade-off
Stable :latest Everyday libraries where predictable behavior matters. New features arrive only when included in the stable release; updates still require a manual pull or configured updater.
Development :preview Testing upcoming features on a non-critical copy of your library. Greater change and compatibility risk. Back up before switching and be prepared to return to the stable tag.

Do not switch a production library to :preview merely to obtain a feature unless you have a tested backup and a rollback plan.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Troubleshoot common installation problems

docker compose is not recognized

Install or update Docker so the Compose v2 plugin is included, then verify that Docker is running. On Linux, also verify that your account can communicate with the Docker daemon. Reopen the terminal after changing group membership or permissions.

The web page does not open on port 2342

  • Run docker compose ps and check whether the PhotoPrism container is running.
  • Review docker compose logs --tail=200 photoprism for startup errors.
  • Confirm that you are using the host and port exposed by your Compose file; a changed port mapping means the address is no longer the default.
  • Check that another application is not already using the host port.

The library is empty

Inspect the originals volume mapping and confirm that the host directory contains the expected files. A valid container with an incorrect host path can appear healthy while presenting no photos. If you changed a mount, restart the services after saving the Compose file.

Imports repeat or files appear in the wrong place

Move the import directory outside the originals directory, then update the volume mapping and restart the stack. The originals directory should contain the files PhotoPrism treats as the canonical library, not the staging area used for imports.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The indexer runs out of memory or becomes extremely slow

Remove any hard container memory limit, provide the recommended Linux swap, and increase Docker’s available memory on Windows Hyper-V or macOS as described earlier. Large RAW and panorama collections may need more resources. Index one operation at a time rather than launching concurrent rescans.

A password change in the YAML file had no effect

This is expected after first startup. Use docker compose exec photoprism photoprism passwd [username] to change the existing account password.

Reset and migration recovery precautions

PhotoPrism’s Compose documentation warns that reset commands can permanently delete data and cannot be undone. Before attempting a reset, database repair, or migration recovery:

  • Stop imports and indexing.
  • Copy the storage folder and database or index data to a separate backup location.
  • Save the current Compose file and record the image tag in use.
  • Confirm that the backup can actually be read.
  • Only then follow the documented recovery command for the specific failure.

If an update fails, do not repeatedly run destructive commands while guessing. First inspect container status and logs, compare the current Compose settings with the backup, and preserve the failed state for diagnosis.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A repeatable maintenance routine

  1. Keep compose.yaml, environment values, and host-path notes in a protected configuration backup.
  2. Back up PhotoPrism storage and database or index data before major updates, preview testing, and any reset.
  3. Schedule manual updates during a period when imports and indexing are idle.
  4. Run docker compose up -d --pull always from the correct Compose directory.
  5. Check container status, logs, login, searches, and representative media.
  6. Read release notes and run a complete rescan only when new filters, sorting, or incorrect results justify the additional load.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.