Setting up a private OmniFocus Sync Server With NGINX on Ubuntu

About a month ago, I set up a personal OmniFocus sync server. I used NGINX on Ubuntu 16.04 LTS and managed to get it to play nicely with the latest version of OF2. Since neither of the officially documented options worked for me, and I saw others asking about compatibility problems between OF2 and NGINX on Twitter, I finally decided to document my experience in a detailed blog post. I hope this article will save some time for other NGINX users wishing to self-host their OF data.


Thanks for this! We took a look and decided that regardless of what was “correct” it was relatively easy to make OmniFocus handle those 207 multi-status responses. The change will ship in OmniFocus 2.9 for Mac and 2.19 for iOS later this year.

1 Like

That’s great news, @dave! I’ll make sure to update the blog post when 2.9 comes out. I’m glad I was able to help.

Hi @dave! I finally got a chance to test OmniFocus 2.9 against my own sync server. Thank you all for working on it! The update itself didn’t cause any problems, but, when I tried to remove my config hack, Sync immediately stoped working. Here’s the error that I got from OmniFocus on my Mac:

Unable to synchronize database with server.
Unable to read document.
No document exists at “/OmniFocus.ofocus/data/ –$encrypted/”.

I checked on the server, and the data directory was indeed missing. I created it manually, which allowed me to perform a successful sync (great!). Still, this makes me wonder if the lack of this directory is a bug, or just a ramification of me using weird configs. Anyway, just letting you know in case it gives you a quick idea of what might be wrong. I’m going to let it run for a few days and then update the blog post with the simplified config. Keep up great work!

1 Like

Well, it looks like at the same time we made the change to support the multi-status responses, we changed database structure in a way that nginx doesn’t like. I’m glad you found the workaround on your own; we’re going to do some digging to figure out exactly what the problem is currently.

A post was split to a new topic: Syncing OmniPresence to nginx