diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19f05e8d2ab12cd78d8aedc6198c16702b1c1b0e..c744ad7e3e3243269bac8996e45acf3212fbbcd8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,23 +13,36 @@ SET( CPACK_PACKAGE_VERSION_PATCH 27)
 # init CellFrame SDK
 add_definitions("-DDAP_VERSION=\"${CPACK_PACKAGE_VERSION_MAJOR}-${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}\"")
 set(SUBMODULES_NO_BUILD ON)
+include (cellframe-sdk/cmake/OS_Detection.cmake)
+
+if(BUILD_WITH_GDB_DRIVER_MDBX)
+add_subdirectory(3rdparty/libmdbx)
+endif()
+
+if(LINUX)
 set(SUPPORT_PYTHON_PLUGINS ON)
+endif()
 
-if (NOT WIN32)
-    set(CELLFRAME_MODULES "core chains mining network srv cs-blocks cs-blocks-poa cs-dag-poa cs-dag-pos cs-none srv-app srv-app-db srv-datum srv-xchange srv-stake modules-dynamic srv-vpn")
-else()
-    set(CELLFRAME_MODULES "core chains mining network srv cs-blocks cs-blocks-poa cs-dag-poa cs-dag-pos cs-none srv-app srv-app-db srv-datum srv-xchange srv-stake modules-dynamic")
+
+if (WIN32)
+    set(CELLFRAME_MODULES "core chains mining network srv cs-blocks cs-dag-poa cs-block-poa cs-dag-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange modules-dynamic")
+elseif(BSD)
+    set(CELLFRAME_MODULES "core chains mining network srv cs-blocks cs-dag-poa cs-block-poa cs-dag-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange modules-dynamic")
+elseif(ANDROID)
+    set(CELLFRAME_MODULES "core chains mining network srv cs-blocks cs-dag-poa cs-block-poa cs-dag-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange")
+elseif(LINUX)
+    set(CELLFRAME_MODULES "core chains mining network srv cs-blocks cs-dag-poa cs-block-poa cs-dag-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange modules-dynamic srv-vpn")
 endif()
 
-include (cellframe-sdk/cmake/OS_Detection.cmake)
 add_subdirectory(cellframe-sdk)
 
+
 if(UNIX)
-  if(LINUX)
-    message("[*] Linux package setup")
     SET(CMAKE_INSTALL_PREFIX "/opt/${PROJECT_NAME}")
     SET(CPACK_INSTALL_PREFIX "/opt/${PROJECT_NAME}")
     SET(DESTDIR "/opt/${PROJECT_NAME}")
+  if(LINUX)
+    message("[*] Linux package setup")
 
     SET( CPACK_GENERATOR "DEB")
 
@@ -47,15 +60,15 @@ if(UNIX)
     SET( CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
     SET( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
     "${CMAKE_CURRENT_SOURCE_DIR}/debian/postinst;${CMAKE_CURRENT_SOURCE_DIR}/debian/postrm;${CMAKE_CURRENT_SOURCE_DIR}/debian/templates;${CMAKE_CURRENT_SOURCE_DIR}/debian/config;")
-
-  else()
-    message("[!] Unix but not linux")
-  endif()
+    elseif(BSD)
+        message("[*] BSD family system ${CMAKE_SYSTEM} ")
+    else()
+        message("[!] Unknown UNIX")
+    endif()
 else()
     message("[ ] Not UNIX")
 endif()
 
-
 set(NODE_TARGET      "${PROJECT_NAME}"     )
 set(NODE_CLI_TARGET  "${PROJECT_NAME}-cli" )
 set(NODE_TOOL_TARGET "${PROJECT_NAME}-tool")
@@ -112,6 +125,11 @@ if(WIN32)
 
 endif()
 
+if(BSD)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -L /usr/local/lib ")
+    set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -L /usr/local/lib")
+endif()
+
 #add_executable(${PROJECT_NAME}-cli "sources/main_node_cli.c" "sources/main_node_cli_shell.c" "sources/main_node_cli_net.c" )
 #add_executable(${PROJECT_NAME}-tool "sources/main_node_tool.c" )
 
@@ -157,6 +175,12 @@ if(NOT ANDROID)
 endif()
 
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dist/ DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*"  PATTERN "*")
+if(LINUX)
+    INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dist.linux/ DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*"  PATTERN "*")
+elseif(BSD)
+    INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dist.bsd/ DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*"  PATTERN "*")
+endif()
+
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
 
 if(UNIX AND NOT ANDROID)
diff --git a/dist/share/apt/demlabskey.gpg b/dist.linux/share/apt/demlabskey.gpg
similarity index 100%
rename from dist/share/apt/demlabskey.gpg
rename to dist.linux/share/apt/demlabskey.gpg
diff --git a/dist/share/cellframe-node.service b/dist.linux/share/cellframe-node.service
similarity index 100%
rename from dist/share/cellframe-node.service
rename to dist.linux/share/cellframe-node.service
diff --git a/dist/share/doc/changelog b/dist.linux/share/doc/changelog
similarity index 100%
rename from dist/share/doc/changelog
rename to dist.linux/share/doc/changelog
diff --git a/dist/share/logrotate/cellframe-node b/dist.linux/share/logrotate/cellframe-node
similarity index 100%
rename from dist/share/logrotate/cellframe-node
rename to dist.linux/share/logrotate/cellframe-node
diff --git a/dist/share/profile.d/cellframe-node.sh b/dist.linux/share/profile.d/cellframe-node.sh
similarity index 100%
rename from dist/share/profile.d/cellframe-node.sh
rename to dist.linux/share/profile.d/cellframe-node.sh
diff --git a/sources/main.c b/sources/main.c
index d814e5fc37036744a0fe327d1540c96c603cf603..d6b8cb3112bf6974fda41a22c18a9d45a56a7757 100755
--- a/sources/main.c
+++ b/sources/main.c
@@ -367,7 +367,7 @@ int main( int argc, const char **argv )
     }
 
 
-#ifndef _WIN32
+#if defined(DAP_OS_LINUX) && ! defined (DAP_OS_ANDROID)
     // vpn server
     if(dap_config_get_item_bool_default(g_config, "srv_vpn", "enabled", false)) {
         if(dap_chain_net_srv_vpn_init(g_config) != 0) {
@@ -380,7 +380,6 @@ int main( int argc, const char **argv )
         log_it(L_ERROR, "Can't init dap chain network service vpn client");
         return -72;
     }
-#endif
 
     if(dap_config_get_item_bool_default(g_config, "srv_vpn", "geoip_enabled", false)) {
         if(chain_net_geoip_init(g_config) != 0) {
@@ -388,6 +387,7 @@ int main( int argc, const char **argv )
             return -73;
         }
     }
+#endif
 
 	if ( dap_chain_node_cli_init(g_config) ) {
 	    log_it( L_CRITICAL, "Can't init server for console" );
diff --git a/sources/main_node_tool.c b/sources/main_node_tool.c
index a74f6306ffba2e5d941e9bc459c7ce2de2878a64..7d0738de194bd9d3c0d8da6f68bcadb6900a5af9 100644
--- a/sources/main_node_tool.c
+++ b/sources/main_node_tool.c
@@ -67,7 +67,7 @@
 #include "dap_chain_net_srv_app_db.h"
 #include "dap_chain_net_srv_datum.h"
 
-#ifndef _WIN32
+#ifdef DAP_OS_LINUX
 #include "dap_chain_net_srv_vpn.h"
 #endif