diff --git a/.ci/script.sh b/.ci/script.sh
index 4f0c5397d9b7fed1b6c5f65bee1cd86b7f50fb82..a2f625126456365f9fa71222fe43b28d58f1d497 100755
--- a/.ci/script.sh
+++ b/.ci/script.sh
@@ -26,6 +26,8 @@ if [ $TRAVIS_OS_NAME == linux ]; then
 fi
 
 if [ $TRAVIS_OS_NAME == osx ]; then
+    brew update
+    brew upgrade cmake boost
     # Build dependencies.
     cmake -Hdeps -B.deps -DCMAKE_BUILD_TYPE=Release \
         -DUSE_BUNDLED_BOOST=OFF \
diff --git a/Dockerfile b/Dockerfile
index e8ed5af7a5ce078d9572b047703f5f9ae543c49d..6e89faedef9717d91d6fc4024083d491d3f61f3c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@ FROM ubuntu:14.04
 ENV LIBSODIUM_VERSION=1.0.16
 ENV SPDLOG_VERSION=1.1.0
 ENV OLM_VERSION=2.2.2
-
+ENV NLOHMANN_VERSION=v3.2.0
 ENV CMAKE_VERSION=3.12.1
 ENV CMAKE_SHORT_VERSION=3.12
 
@@ -73,7 +73,13 @@ RUN \
     cmake -H. -Bbuild -GNinja -DCMAKE_BUILD_TYPE=Release && \
     cmake --build build --target install && \
     # json.hpp
-    curl -L https://github.com/nlohmann/json/releases/download/v3.2.0/json.hpp -o /usr/local/include/json.hpp && \
+    mkdir /build/json && cd /build/json && \
+    git clone --branch ${NLOHMANN_VERSION} --depth 1 https://github.com/nlohmann/json && \
+    cd json && \
+    cmake . && \
+    make && \
+    make install
+    #curl -L https://github.com/nlohmann/json/releases/download/v3.2.0/json.hpp -o /usr/local/include/json.hpp && \
     rm -rf /build/* && \
     rm -rf /var/lib/apt/lists/* && \
     apt-get clean && \
diff --git a/appveyor.yml b/appveyor.yml
index e3a7b342dba0426cba09fdd85055dfcd75147105..e3a75c525ce9b0ed2844ba6816f516f88880fb38 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -17,6 +17,7 @@ install:
     - mingw32-make.exe --version
     - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
     - vcpkg install
+            nlohmann-json:%PLATFORM%-windows
             boost-asio:%PLATFORM%-windows
             boost-beast:%PLATFORM%-windows
             boost-iostreams:%PLATFORM%-windows