diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java b/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
index 62cf5c3..c779cc1 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Exporter.java
@@ -31,6 +31,7 @@
     public void setCorpusQueryString (String s);
     public String getSource ();
     public void setSource (String h, String p);
+    public void setSource (String v);
     public int getTotalResults ();
     public boolean hasTimeExceeded ();
     public void setMaxResults (int m);
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java b/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
index f2898a9..1f324f3 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/MatchAggregator.java
@@ -169,6 +169,14 @@
         this.src = s.toString();
     };
 
+
+    /**
+     * Set the source information verbose.
+     */
+    public void setSource (String src) {
+        this.src = src;
+    };
+    
     
     /**
      * Get the source information.
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
index 0f5d4f1..9b509fc 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
@@ -60,7 +60,6 @@
  * TODO for release:
  * - Rename to "Kalamar-Plugin-Export".
  * - Improve Readme.
- * - Add opaque source, in case source is an internal IP.
  * - Add screenshot.
  *
  * TODO:
@@ -178,6 +177,7 @@
         String port    = prop.getProperty("api.port", "8089");
         String host    = prop.getProperty("api.host", "localhost");
         String path    = prop.getProperty("api.path", "");
+        String source  = prop.getProperty("api.source");
         int pageSize   = Integer.parseInt(prop.getProperty("conf.page_size", "5"));
         int maxResults = Integer.parseInt(prop.getProperty("conf.max_exp_limit", "10000"));
 
@@ -244,7 +244,10 @@
         exp.setMaxResults(maxResults);
         exp.setQueryString(q);
         exp.setCorpusQueryString(cq);
-        exp.setSource(host, path);
+        if (source != null)
+            exp.setSource(source);
+        else
+            exp.setSource(host, path);
        
         // Set filename
         if (fname != null)
diff --git a/src/main/resources/exportPlugin.conf b/src/main/resources/exportPlugin.conf
index a76c44d..fc64329 100644
--- a/src/main/resources/exportPlugin.conf
+++ b/src/main/resources/exportPlugin.conf
@@ -12,6 +12,10 @@
 api.host=korap.ids-mannheim.de
 api.scheme=https
 
+# Overwrite to set source to a string,
+# especially useful when run behind a proxy.
+# api.source = korap.ids-mannheim.de
+
 # Asset Configuration
 asset.host=korap.ids-mannheim.de
 asset.scheme=https
