diff --git a/src/main/java/nl/tudelft/ewi/queue/factory/QueueSentryClientFactory.java b/src/main/java/nl/tudelft/ewi/queue/factory/QueueSentryClientFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..2941bc61fa247415fd22c0bc11c2d4da5600677f
--- /dev/null
+++ b/src/main/java/nl/tudelft/ewi/queue/factory/QueueSentryClientFactory.java
@@ -0,0 +1,46 @@
+/*
+ * Queue - A Queueing system that can be used to handle labs in higher education Copyright (C) 2016-2019 Delft
+ * University of Technology
+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero
+ * General Public License as published by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License along with this program. If not,
+ * see <https://www.gnu.org/licenses/>.
+ */
+package nl.tudelft.ewi.queue.factory;
+
+import io.sentry.DefaultSentryClientFactory;
+import io.sentry.SentryClient;
+import io.sentry.dsn.Dsn;
+import io.sentry.event.helper.ContextBuilderHelper;
+import io.sentry.event.helper.ForwardedAddressResolver;
+import io.sentry.event.helper.HttpEventBuilderHelper;
+
+public class QueueSentryClientFactory extends DefaultSentryClientFactory {
+    /**
+     * Enable the ForwardedAddressResolver so we can see actual IPs in Sentry for TAM, which is hosted behind a proxy.
+     *
+     * See: https://docs.sentry.io/clients/java/config/#custom-functionality
+     *
+     * @param dsn URI can be found in Sentry settings (given appropriate access).
+     * @return a new Sentry Client.
+     */
+    @Override
+    public SentryClient createSentryClient(final Dsn dsn) {
+        final SentryClient sentryClient = new SentryClient(createConnection(dsn), getContextManager(dsn));
+
+        // Create and use the ForwardedAddressResolver, which will use the
+        // X-FORWARDED-FOR header for the remote address if it exists.
+        final ForwardedAddressResolver addressResolver = new ForwardedAddressResolver();
+        sentryClient.addBuilderHelper(new HttpEventBuilderHelper(addressResolver));
+
+        sentryClient.addBuilderHelper(new ContextBuilderHelper(sentryClient));
+        return configureSentryClient(sentryClient, dsn);
+    }
+}
diff --git a/src/main/resources/sentry.properties.template b/src/main/resources/sentry.properties.template
index 3d6759228251183fed034694ab97871260889d7e..c795dd3f081c3ef0af80122fd87b747c55523dfb 100644
--- a/src/main/resources/sentry.properties.template
+++ b/src/main/resources/sentry.properties.template
@@ -22,4 +22,5 @@
 #dsn=your_key_here
 environment=dev
 servername=localhost
-stacktrace.app.packages=nl.tudelft.ewi.queue
\ No newline at end of file
+stacktrace.app.packages=nl.tudelft.ewi.queue
+factory=nl.tudelft.ewi.queue.factory.QueueSentryClientFactory
\ No newline at end of file