PhotoStructure for Synology Container Manager

Last Updated: January 20, 2026 by Michael Kahn. Published: February 16, 2023.

PhotoStructure is a self-hosted photo management program that lets you organize, deduplicate, and browse your entire photo library without handing your memories to Google or Apple. I’ve been running it on my Synology NAS for 3 years now, and it’s become essential for managing 3,000,000+ photos across decades of digital cameras, phones, and scanned prints.

This guide covers everything I’ve learned setting it up, including running multiple libraries (one for personal, one for work) and the performance tweaks that made browsing actually usable.

Photostructure for synology docker
PhotoStucture running on the founder’s laptop

Table of Contents

PhotoStructure is a self-hosted photo management program that provides cloud functionality while allowing you to keep data yours. It automatically organizes and deduplicates your photos utilizing lossless methods. System-agnostic, you can take your photo library and run it on Windows, Mac, Synology, Linux, or pretty much any other operating system you throw at it.

What You Need

System Requirements

Memory: PhotoStructure needs a minimum of 2GB RAM during imports. If your Synology has only 1GB, you’ll hit ENOMEM (Out of memory) errors and the container will crash.

CPU: Any 64-bit Intel, AMD, or ARM processor works.

Storage: Plan for the .photostructure metadata folder to grow. For my 700k+ library, it’s around 138GB. Putting this on an SSD makes a noticeable difference.

I want photo organization, but need to separate my work from personal photos. On my Synology NAS, I already have two Volumes and Shared Folders setup, where I have placed photos of each purpose. I have Photos, which is for my personal media, and F64, which contains all of my photography for hire related media.

The end result has 2 different PhotoStructure Container Manager containers running concurrently. Each can be accessed by changing the port, with 1787 being PhotoStructure’s default. 1788 isn’t used by any other service on my Synology, so I felt it safe to push the number up 1.

This method could easily be reproduced and adapted for additional Photo Libraries beyond the two.

Installing PhotoStructure in Container Manager

Open up Container Manager and click on the Registry tab. Type in PhotoStructure.

Photostructure for synology docker installing photostructure in container manager
Container Manager registry results for PhotoStructure

Double-click on the photostructure/server result. You can choose to either get the Latest tag, or if you’re adventurous and want to check out the newest photo management features, find the beta tag and get that.

Photostructure for synology beta release tag
Download the beta tag – you’ll find it far better than the stable release.
Photostructure for synology downloading beta tag
Currently downloading PhotoStructure’s latest version

After hitting Apply, you’ll know the Image is ready when there is a notification from Container Manager. and the blue Downloading text gets to 100% and disappears.

Download complete via Notification Center

Click on the Container Tab in the Container manager and the Create button, then select the image you just downloaded for PhotoStructure. These are my settings:

Photostructure for synology container manager create container

Docker Settings

Before you dive in, it’d be a great idea to review the official documentation on installing PhotoStructure for Servers.

Here’s a screenshot of what my Advanced Settings look like to setup dual running Photostructure Libraries.

Photostructure for synology container manager advanced settings port volume
Photostructure for synology container manager advanced settings environment

Port Settings:

Leave defaults. Ports will be changed through Advanced Settings directives.

Volume Settings Example

File/Folder: /docker/photostructure Mount Path: /ps/library
File/Folder: /Photos Mount Path: /Photos

Advanced Settings Example:

PUID needtofindforyou
PGID 100
PS_HTTP_PORT 1787

Advanced Settings Additional

If you’re using some Synology models, their processor will choke up on multiple libraries processing at the same time. I have this issue with the 1821. Official PhotoStructure support advised to set this setting to 0, which enables single threads, and solves a lot of performance issues with this setup.

PS_CPU_BUSY_PERCENT 0

Advanced Settings Networking:

I set the Network to Host, and it just remains simple for me. Only local access or access through Tailscale is allowed. If you know more than me about networking, then setup Bridge.

Photostructure for synology container manager advanced settings network

At the last Create Container screen, verify your settings, and the checkbox to run it after creating checked, then click Done.

Photostructure for synology container manager done

Shared Folder Settings

I discovered during a debugging session with PhotoStructure’s developer, Matt, that Shared Folders needed to have the specific user added to Permissions. Just having a group added to the Shared Folder may not be enough in a lot of use cases. Even if your user is the administrator.

As an added security measure, I created a new user called PhotoStructure and added the user to just the Volumes needed for the app to run.

From File Station, right-click on the Shared Folder with your photo library and click Properties. Hit the Permissions Tab, and then the Create button to add yourself as a specific user.

Make sure Read and Write permissions are granted.

Photostructure for synology docker shared folder user settings
Example user should be your username or another with admin permissions.

Hit Done on the Permission Editor Screen, hit the checkbox to Apply to all Folders/Subfolders/etc, then click Save. Wait for the permissions to be applied then move onto the next step.

Start or Run your Container, and it should show up with a green light and display info similar to this in General:

Photostructure for synology container manager running general status

Go to the Health page of your PhotoStructure docker container, which will be at http://127.0.0.1:1787/health (replace your own IP), and it should look like this this next screenshot.

Photostructure for synology container manager installed health check
Click to expand arrows and you can see the settings you directed a few moments earlier are valid.

Setting Up the First Container

In the Advanced Settings, setting the PS_HTTP_PORT option and specifying volumes was key to differentiating between a first and second container.

Whether you plan on running one container, two, or more, having that set will allow you to quickly adapt to your needs.

The default port is 1787, which I specify as well, just so there is no confusion with Docker later on.

Setup the Second Container

There will be one minor difference as you set up the second Photo Library. Well, two. First, you will specify a different volume. The second is changing the port on your Environment Variables.

Here’s how my second container settings look:

Photostructure for synology container manager second container settings

This modified Environment setting is key: PS_HTTP_PORT 1788

You’ll see my Volume settings are also changed. Both the PhotoStructure library folder and which photos are being pulled from.

The Volume settings are mapped to the second work Volume, so each Library and Docker files are on that particular volume. This allows me to totally separate Photo Libraries and settings, and quickly pick up and move around each one as needed. I can also access them from new systems without them ever interacting with one another.

Photostructure synology docker photos library example
PhotoStructure up and running!

Performance

One of the best things I did was move the .photostructure folder onto its own NVME drive (WD Red SA500) on my Synology NAS. My combined libraries of around 3,000,000 photos and video take about 2TB of data, so I bought a NVME drive and moved the libraries onto that. Huge performance gains in browsing and loading thumbnails. I highly recommend doing the same if your setup allows.

Here’s my article on Synology NVMe Installation.

In watching how the two Container Manager containers perform, PhotoStucture does a great job in resource use and not overloading the server as it processes photos or video. I’ve noticed the two Libraries seem to go back and forth in using FFmpeg and other resources, with neither eating up everything at once.

I did notice after installing PhotoStucture updates, having the Libraries rebuild at the same time cause both Containers to crash. I’d only run one at a time until the rebuild completes. At least that’s what the processor on my Synology 1821+ could handle.

I’ve been able to run everything else alongside PhotoStucture without any issues.

Sync is run every 24 hours, at 2am by default. If you make lots of changes to the folder structure on your own, you may want to restart sync manually.

If you’re interested in more photography tips and tricks or your workflow, check out the article on Camera Accessories.

Key Takeaways

  • Container Manager required: PhotoStructure runs on Synology NAS via Container Manager (DSM 7.3+)
  • Memory matters: Minimum 2GB RAM required during imports; 1GB causes crashes
  • Beta vs Stable: Beta image gets features faster; stable for production reliability
  • Multiple libraries: Run concurrent containers on different ports (1787, 1788) for work/personal separation
  • NVME performance boost: Moving the .photostructure folder to a NVME dramatically improves browsing speed for large libraries
  • Permissions: Create a dedicated PhotoStructure user with explicit folder access, even if you have admin

Per PhotoStrucuture documentation, these are all the recommended mounts. If you are running the entire Container off a NVME, you can probably skip the extras.

Container PathHost Path ExamplePurposeNotes
/ps/library/docker/photostructureLibrary database and metadataRequired. Put on NVME if possible
/ps/tmp/docker/photostructure-tmpScratch space for processing16-32GB free recommended, NVME preferred
/ps/config/docker/photostructure-configSystem settingsOptional, defaults to /ps/library
/ps/logs/docker/photostructure-logsApplication logsAuto-deletes after 1 week
/Photos/volume1/PhotosYour photo libraryAdd :ro suffix for read-only

Read-only imports: If you don’t want PhotoStructure modifying your original files, append :ro to the volume mount. For example: /volume1/Photos:/Photos:ro. I do this for archived folders I don’t want touched.

Soft-Delete Support (v2024.4+)

PhotoStructure now supports soft-delete instead of permanent deletion. When you delete a photo, it moves to a .Trash-[uid] folder on the same volume instead of being immediately removed.

To enable soft-delete on a volume:

  1. Create a .Trash-1000 folder (replace 1000 with your PUID) at the root of the volume
  2. Ensure PhotoStructure has write access to this folder

To disable soft-delete entirely, add this environment variable:

PS_TRY_SOFT_DELETES=false

Frequently Asked Questions

How much RAM does PhotoStructure need on Synology?

PhotoStructure requires a minimum of 2GB RAM during photo imports. Running with only 1GB causes ENOMEM (out of memory) errors and crashes. For libraries over 100,000 photos, 4GB or more is recommended for comfortable performance.

Which Synology models can run PhotoStructure?

Any Synology NAS that supports Container Manager (formerly Docker) and has a 64-bit Intel or AMD CPU can run PhotoStructure. This includes most Plus (+) and higher-end models running DSM 7.2 or later.

Can I run multiple PhotoStructure libraries on the same Synology?

Yes. Create separate containers with different port numbers using the PS_HTTP_PORT environment variable. I run two containers: port 1787 for personal photos and port 1788 for work. Each container needs its own library folder.

Why is PhotoStructure slow when browsing my library?

The most common cause is the .photostructure metadata folder sitting on a spinning hard drive. Moving this folder to an NVME (if your Synology has one) dramatically improves browsing speed. I noticed the difference immediately with my 700k+ photo library.

Should I use the beta or stable Docker image?

Beta gets new features and fixes faster but may have occasional bugs. Stable is more thoroughly tested. I run beta because I want the latest improvements and can tolerate occasional rough edges. For a family photo server you rarely touch, stable makes more sense.

How do I update PhotoStructure on Synology?

In Container Manager, stop your PhotoStructure container, go to Registry, search for photostructure/server, and download the latest image. Then restart your container. Your library and settings persist because they’re stored in mounted volumes, not the container itself.

Does PhotoStructure work alongside Synology Photos?

Yes, but they serve different purposes. Synology Photos is tightly integrated with DSM but has limited organization features. PhotoStructure offers more powerful deduplication, facial recognition, and library management. You can point PhotoStructure at the same photo folders Synology Photos uses, just mount them read-only to avoid conflicts.

What’s the difference between Host and Bridge network modes?

Host mode gives the container direct access to your network, which simplifies setup but uses your NAS’s ports directly. Bridge mode isolates the container’s network and maps specific ports. I use Host mode because it’s simpler for a home network. Bridge is better if you need stricter network isolation.

How do I back up my PhotoStructure library?

Back up the entire /ps/library folder (or wherever you mounted it). This contains your library database, cached thumbnails, and settings. Your original photos are wherever you mounted them and should be backed up separately. I use Hyper Backup for the library folder and Synology Drive for the photos themselves.

Can PhotoStructure import from cloud services like Google Photos?

PhotoStructure imports from local folders, not directly from cloud services. Use Google Takeout to export your Google Photos library, then point PhotoStructure at the downloaded folder. The same approach works for iCloud, Amazon Photos, or any service that offers data export.

What happens if I delete a photo in PhotoStructure?

As of version 2024.4, PhotoStructure supports soft-delete using the XDG trash standard. Deleted files move to a .Trash folder on the same volume instead of being permanently removed. You can disable this with PS_TRY_SOFT_DELETES=false if you prefer immediate deletion.

How long does the initial library scan take?

It depends on library size and your NAS hardware. My initial scan of 700,000+ photos took several days on a DS1821+. PhotoStructure processes files in the background, so you can browse already-imported photos while the scan continues. Don’t run multiple simultaneous scans after updates; let one complete first.

Changelog

January 20, 2026: Added additional settings for performance, PS_CPU_BUSY_PERCENT. Updated personal anecdote info and library information. Rewrote introduction. Added Key Takeaways, Mounts, Soft Delete, and FAQ sections

January 19, 2026: Updated for PhotoStructure v2026.1.0-beta. Replaced old screenshots with new ones, updated terminology and instructions.

March 24, 2024: Confirmed instructions are valid and work for version 2024.3.3 Beta.

March 21, 2024: Updated with new images for Prealpha tags and newer versions. Verified all info is still valid and works as of 2024.3.3-prealpha and v2024.3.2-beta. Massively simplified the process thanks to improvements on PhotoStructure’s end. Had Matt@PhotoStructure review and approve my info. “…Thanks for all that work on that article, what I could read looked all good… What you’ve got is perfect”.

July 30, 2023: Added Performance information on using SSD drives.

July 29, 2023: Updated for Synology DSM 7.2.x and Container Manager.

April 22, 2023: Guide last tested with Synology DSM 7.1.1.x Update 5.

April 5, 2023: Guide last tested with Synology DSM 7.1.x and PhotoStucture 2.1.0-alpha.7.

April 2, 2023: Updated Shared Folder settings.

February 16, 2023: First published.

Leave a Comment

Share to...