diff --git a/src/box/engine_sophia.cc b/src/box/engine_sophia.cc
index 116e29a13c6e6e8b9daeb6ecac8b1d695357bb9b..42318828566ff01fe04f35096cd3a7d7e821c317 100644
--- a/src/box/engine_sophia.cc
+++ b/src/box/engine_sophia.cc
@@ -26,6 +26,7 @@
  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+#include "cfg.h"
 #include "txn.h"
 #include "tuple.h"
 #include "engine.h"
@@ -161,10 +162,9 @@ SophiaFactory::dropIndex(Index *index)
 		tnt_raise(ClientError, ER_SOPHIA, sp_error(i->db));
 	i->db  = NULL;
 	i->env = NULL;
-	char path[1024];
-	snprintf(path, sizeof(path), "sophia/%" PRIu32,
-	         index->key_def->space_id);
-	/* todo: sophia_dir */
+	char path[PATH_MAX];
+	snprintf(path, sizeof(path), "%s/%" PRIu32,
+	         cfg_gets("sophia_dir"), index->key_def->space_id);
 	drop_repository(path);
 }
 
diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua
index 6743b23da7998e9fa98aa90ae65135bd6413a8c2..3b073880ea5dffe4eff97924ddbaf742256c45f2 100644
--- a/src/box/lua/load_cfg.lua
+++ b/src/box/lua/load_cfg.lua
@@ -32,6 +32,7 @@ local default_cfg = {
     work_dir            = nil,
     snap_dir            = ".",
     wal_dir             = ".",
+    sophia_dir          = './sophia',
     logger              = nil,
     logger_nonblock     = true,
     log_level           = 5,
@@ -66,6 +67,7 @@ local template_cfg = {
     work_dir            = 'string',
     snap_dir            = 'string',
     wal_dir             = 'string',
+    sophia_dir          = 'string',
     logger              = 'string',
     logger_nonblock     = 'boolean',
     log_level           = 'number',
diff --git a/src/box/sophia_index.cc b/src/box/sophia_index.cc
index 44fd3cd301c90de6487bddac365451f68a1e3b89..9767e8a383c9ced3a4470751460ffed75e281982 100644
--- a/src/box/sophia_index.cc
+++ b/src/box/sophia_index.cc
@@ -34,6 +34,7 @@
 #include "errinj.h"
 #include "schema.h"
 #include "space.h"
+#include "cfg.h"
 #include "engine_sophia.h"
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -144,9 +145,12 @@ SophiaIndex::SophiaIndex(struct key_def *key_def_arg __attribute__((unused)))
 	if (db == NULL)
 		tnt_raise(ClientError, ER_SOPHIA, sp_error(env));
 
-	char path[1024];
-	mkdir("sophia", 0755); /* todo: sophia_dir */
-	snprintf(path, sizeof(path), "sophia/%" PRIu32, space->def.id);
+	const char *sophia_dir = cfg_gets("sophia_dir");
+	mkdir(sophia_dir, 0755);
+
+	char path[PATH_MAX];
+	snprintf(path, sizeof(path), "%s/%" PRIu32,
+	         sophia_dir, key_def->space_id);
 
 	void *c = sp_ctl(db, "conf");
 	sp_set(c, "storage.dir", path);