diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfslocal/LocalLargeFileRepository.java b/src/main/java/com/googlesource/gerrit/plugins/lfslocal/LocalLargeFileRepository.java
index 41b3c14..f0da120 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/lfslocal/LocalLargeFileRepository.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/lfslocal/LocalLargeFileRepository.java
@@ -14,20 +14,49 @@
 
 package com.googlesource.gerrit.plugins.lfslocal;
 
-import java.io.IOException;
-import java.nio.file.Path;
-
-import org.eclipse.jgit.lfs.server.fs.FileLfsRepository;
-
+import com.google.common.base.Strings;
 import com.google.gerrit.extensions.annotations.PluginCanonicalWebUrl;
 import com.google.gerrit.extensions.annotations.PluginData;
+import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.inject.Inject;
 
-public class LocalLargeFileRepository extends FileLfsRepository {
+import org.eclipse.jgit.lfs.server.fs.FileLfsRepository;
+import org.eclipse.jgit.lib.Config;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+public class LocalLargeFileRepository extends FileLfsRepository {
   @Inject
-  LocalLargeFileRepository(@PluginCanonicalWebUrl String url,
-      @PluginData Path dataDir) throws IOException {
-    super(url, dataDir);
+  LocalLargeFileRepository(PluginConfigFactory cfg,
+      @PluginName String pluginName,
+      @PluginCanonicalWebUrl String url,
+      @PluginData Path defaultDataDir) throws IOException {
+    super(url, getOrCreateDataDir(cfg, pluginName, defaultDataDir));
+  }
+
+  private static Path getOrCreateDataDir(PluginConfigFactory cfgFactory,
+      String pluginName, Path defaultDataDir) throws IOException {
+    Config cfg = cfgFactory.getGlobalPluginConfig(pluginName);
+    String dataDir = cfg.getString("storage", null, "directory");
+    if (Strings.isNullOrEmpty(dataDir)) {
+      return defaultDataDir;
+    }
+
+    // note that the following method not only creates missing
+    // directory/directories but throws exception when path
+    // exists and points to file
+    Path ensured = Files.createDirectories(Paths.get(dataDir));
+
+    // we should at least make sure that directory is readable
+    if (!Files.isReadable(ensured)) {
+      throw new IOException(
+          "Path '" + ensured.toAbsolutePath() + "' cannot be accessed");
+    }
+
+    return ensured;
   }
 }
diff --git a/src/main/resources/Documentation/about.md b/src/main/resources/Documentation/about.md
index 63e1cbb..3c54ff6 100644
--- a/src/main/resources/Documentation/about.md
+++ b/src/main/resources/Documentation/about.md
@@ -1,4 +1 @@
-This plugin provides a local file system storage for the LFS service.
-
-The large files are stored under the plugin's data directory
-$GERRIT_SITE/data/lfs-storage-fs.
+This plugin provides a local file system storage for the LFS service.
\ No newline at end of file
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index f44d0a4..2dfeef5 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -1,4 +1,16 @@
-@PLUGIN@ Configuration
+Plugin @PLUGIN@ configuration
 ======================
 
-This plugin has no configuration.
+The following options can be configured in `$GERRIT_SITE/etc/@PLUGIN@.config`
+
+Section `storage`
+-------------------------
+
+```
+  [storage]
+    directory = [path to data directory]
+```
+
+Path to directory where large files should be stored.
+If not configured, defaults to the plugin's data directory:
+`$GERRIT_SITE/data/@PLUGIN@`
\ No newline at end of file
