r/DarkTable 4d ago

Help Best way to use Darktable on multiple computers using the same photo library (and a NAS)?

My desktop is my powerhouse base computer, but more and more I find myself doing more edits and getting more work done on my laptop on the go. I'm using Windows, but the concepts are the same. Going all-Linux is not an option.

With Lightroom, the catalog is stored in a single file. The solution I came up with was to use Syncthing, which would sync my entire photo library plus catalog to the same path on each computer (and a NAS). This worked out great, with the caveat that I'm changing to 50mb RAW files and, at some point, SSD space on each PC is going to become an issue. FWIW, I'm a new Darktable convert; I've found with similar effort I can get similar results, and I'm ready to move on from Lightroom.

The Darktable install is more complicated according to this source. There's a library database, a data.db file that contains presets/tags/styles, and a cache folder for image previews. All stored in different locations. It does appear that it might be possible to redirect these locations (like a network location).

So here are the options I'm considering right now:

Photos Sync'd Locally on Both Computers:

1) Sync the default data folders directly between computers (and a NAS since the computers won't be on all the time). Permission issues could crop up though since you're messing with files in system locations (vs. just a Lightroom catalog file).

1a) Sync the folders to another location and redirect Darktable on boot with a batch file. Might solve permissions issues.

2) Just run two instances of Darktable. After switching from one PC to another, re-import the photo directory. Would this work? Would Darktable seamlessly ignore duplicates, and grab the XMP files in-place? One issue with this is deletions. There's no easy way to remove dead links on Windows Darktable without a special environment to run a .sh script, and that wouldn't be ideal for daily use. [From what I've Googled]

Go All-Network:

1) First method- stop syncing photos locally altogether. Use 1 or 1a above to sync just the Darktable catalog, and keep all photos on NAS. Does anyone do this? How does Darktable speed go for you over LAN vs. WiFi vs. internet (like through a VPN). I'll probably do a lot of editing away from home or on WiFi, so just not sure how that would go.

2) Run Darktable in a Linux VM on NAS and do all editing by remoting-in. My biggest concern with this is the color accuracy of remote desktop software. You've got Darktable representing one thing in the VM on that colorspace, then a window into that through VNC or similar. Assuming running at maximum 32 bit depth, and assuming that accurately represents the image via remote-in, would the performance suffer too much over the internet? One plus to this- I can compile Darktable myself with the beta Libraw so I can actually edit photos from my new camera without converting to DNG (or so I've read)!

Alternative

1) Run different catalogs entirely, don't try to keep all photos available in one Darktable catalog. The idea would be to, say, have maybe a master catalog on a desktop computer while editing new photos on a laptop and then just "moving" those photos/XMP files when done and importing to the master catalog. Desktop could have a remote connection in case I need to access something from the master on the go. Downside: I might want to edit a single photo set on one computer one day, and the other the next.

I plan to test out some of these myself, but I wanted to get some thoughts and see what everyone else out there might be doing/advise in this situation.

10 Upvotes

16 comments sorted by

5

u/FrancoisFromFrance 4d ago

I went for something close to your last solution. Darktable is a tool to edit my photos, but not to manage my full collection.

All photos on my NAS. Xmp for each edit. Then on each computer, Syncthing to synch the full collection + additional local ignore rules depending on the computer. Big desktop with big drives, I have most photos. Laptop with smaller SSD : the last 2 years of photos.

I used the NAS photo library app to manage all the photos and look at the JPGs. I have a syncthing on my mobile also to get all the JPGs of the last 3 years.

I didn't set any sync for the settings of darktable itself. I have some styles I use, but I don't change them often. So I copy paste the files manually.

2

u/kypdurron5 4d ago

Yeah, I have to admit, I don't really like Darktable for file management so far, it feels clunky. Lightroom was ok at it, but I really like the way immich works both in terms of a photo viewer, manager, and sharing service.

Fantastic idea on having a time cutoff for the laptop! I was thinking more "all or brand new." Did you accomplish that automatically within Syncthing, or more manually like based upon your folder structure?

2

u/FrancoisFromFrance 4d ago

Darktable imports files with this structure /YY/MM/DD

So indeed, I add rules based on folder names. Maybe Syncthing can do it based on the files creation and modification dates, but I suspect it could give weird results if I don't keep continuous years until now.

If I sync 2023 2025 for instance (but not 2024), and I edited photos from 2023 in 2024, I will be missing the XML files.

But syncing the folders, I know I will have all the work on a shooting. Simple rules. And I love to have all my photos with this tree structure, it's simple but clear.

2

u/DeterminedlyBaked 4d ago

Hey, man, I just set this up for myself last week! In my situation, I use Moonlight + Sunshine to access my desktop PC at home via my Samsung tablet and work on Darktable from most places (as long as my phone can get good reception or if the place I'm at has good internet). Resolution can be set up as well if that's an issue but I can't speak about color accuracy (afaik that depends on the client device)

I combine this with my Google Drive subscription too so my set up allows me to access all local (PC) files, Google Drive files (through both the stream and my tablet), and Darktable renders files out to a Google Drive folder so I have access to the finished copies through any device (so long as they have Google Drive). If you set your VPN up right (as per the guide) accessing your NAS shouldn't be an issue.

The guide I linked is well written (thank you u/NorthOriginal2502) and the comments section is full of tips from active users.

3

u/kypdurron5 4d ago

You know, that simplicity is brilliant! I've been so into NAS server apps and solutions lately, it hadn't even occurred to me to just make my desktop the base client. It's already set up and running, already has an RDC through VPN on my router, and just sits idle while I'm away unlike my server which is doing a bunch of other things. That would be way more efficient than a VM and it's already ready to go!

1

u/DeterminedlyBaked 4d ago

The funny part is I set all this up just so I can sit on my couch to play video games, I ended up being bored while out one day and decided to try editing photos from my tablet and here we are

2

u/5abiu 4d ago

You might also find the "local copies" feature useful: https://docs.darktable.org/usermanual/4.8/en/overview/sidecar-files/local-copies/

From the manual:

develop a number of images while travelling using a laptop and then later synchronize them back to the original storage medium.

You can create local copies of selected images from within the lighttable. Local copies are always used when present, giving continued access to images even if the external storage is no longer connected. At a later point, when your primary storage medium has been reconnected, you can synchronize the XMP sidecar files back to this storage, deleting any local copies.

1

u/Nordicmoose 4d ago

I find myself using the latter option for the most part, but I've considered trying to replace the entire darktable config folders on both my desktop and laptop with a symlink to a location on the NAS. With this setup it would be absolutely vital not to have both installs of Darktable running at the same time or it would cause serious corruption. I'm also worried about speed.

1

u/kypdurron5 4d ago

Yeah, it's a little janky of a solution for sure. The Lightroom catalog locks when it's open. Darktable just isn't set up like that; it's much more of an in-place permanent app. Another downside of doing a symlink to the NAS; if your NAS or network are down or if you just can't access the network or internet, you can't really use Darktable at all. The more I think about it, I just don't think an all-network solution would work, especially outside of LAN. Not if you're working with 50MB per RAW file, it's just too much data. Speed is pretty good via Gen4 SSD; but even just recently transferring files to old HDD's, I couldn't believe how slow it was. Let alone WiFi + internet.

1

u/southern_ad_558 3d ago

I have all my photos in my NAS, most raws but jpegs as well.

I share those files between two linuxes boxes and a windows machine.

First advice: don't have it open in two machines ar the same time.

I just do full import on all systems. Xmp comes along and it's shared, including anything related to the images. Rates, marks and edits.

Cons: Once I close one system, the next one will look into all the xml for changes, it takes short of a minute to open 20k photos. What's a bit annoying is that even opening on xmp in one system generates a different xmp. So once I open the other sustem, it will warm me about and I just click on "keep the information on the xmp for all photos". It's a small price to pay for the benefit of editing on windows and linux.

Cache files are not shared, each install will use around 7G of files, but I don't care much about that.

One thing it makes my life easier is not to export in the same folder of the photos, even using the darktable_export thing. I set to export in a different NAS directory. I do it like that because it allows to always import new photos recursively from the main shared folder without importing generated images as new stuff.

Important to say that presets are not shared this way. But it's ok for me, it's kind of straightforward to import them from the photos i have edited on other systems. 

This is my workflow, works ok for me sharing between three different OS installations.

1

u/kypdurron5 3d ago

Good info! I wondered about the XMP files; disappointing Darktable doesn’t just use the same file, but there’s probably a reason. It sounds like each XMP is locked to each machine? So you have 3 XMP’s total per file? How then does it deal with edits to the other XMP files? Does it just look for the newest one, and then merge that data into its own XMP on each launch of Darktable?

1

u/southern_ad_558 3d ago

No, only one xmp per raw file. That's reused between machines. The xmp is the only reusable part (well, and the main original ones of course).

1

u/kypdurron5 3d ago

Gotcha. What did you mean under cons by “it generates a different XMP?”

1

u/southern_ad_558 2d ago

Oh, it's still the same file, but with a different timestamp. 

So darktable thinks they's a difference there and need to reprocess the file because the timestamps differs from the one in the database. 

1

u/Ken0athM8 3d ago

For the sake of adding another option... 

I use Darktable on multiple "computers"... But kinda not really...

It runs on my phone, in a Termux Linux Proot distro

I just connect to my phone using Scrcpy from whichever machine I'm using... Or just straight to a monitor via Dex

Open Termux, open Xfce desktop, open Darktable, edit, ..., profit

One source, one catalogue, no syncing

1

u/NorthStar_7 2d ago

I would try Remote Desktop with Tailscale before going with something too elaborate. You could test it using your laptop next to your desktop and see how the colors differ.

Side note…I just moved from Lightroom to digiKam. I am very happy with the switch.