diff --git a/app/app.pri b/app/app.pri
index 007ea3671b589a5f7d6bb913cc28d0bb02a12c24..21388a6a3eab19e9f25988883e0f9348f2d16a11 100644
--- a/app/app.pri
+++ b/app/app.pri
@@ -1,10 +1,12 @@
 QT += \
     core \
-    network
+    network \
+    websockets
 
 QT -= gui
 
 HEADERS += \
+    $${PWD}/src/websockets/websocketserver.h \
     $${PWD}/src/handlers/confighandler.h \
     $${PWD}/src/handlers/systemhandler.h \
     $${PWD}/src/handlers/ocshandler.h \
@@ -12,6 +14,7 @@ HEADERS += \
 
 SOURCES += \
     $${PWD}/src/main.cpp \
+    $${PWD}/src/websockets/websocketserver.cpp \
     $${PWD}/src/handlers/confighandler.cpp \
     $${PWD}/src/handlers/systemhandler.cpp \
     $${PWD}/src/handlers/ocshandler.cpp \
diff --git a/app/src/main.cpp b/app/src/main.cpp
index 23fe103dec3d427b52043d5265b2ff7f5a2e50c3..9bab403a30620dd99a260f3a9809f4a7d0922d17 100644
--- a/app/src/main.cpp
+++ b/app/src/main.cpp
@@ -8,13 +8,14 @@
 #include "handlers/systemhandler.h"
 #include "handlers/ocshandler.h"
 #include "handlers/itemhandler.h"
+#include "websockets/websocketserver.h"
 
 int main(int argc, char *argv[])
 {
     // Init
     QCoreApplication app(argc, argv);
 
-    ConfigHandler *configHandler = new ConfigHandler();
+    ConfigHandler *configHandler = new ConfigHandler(&app);
     QJsonObject appConfigApplication = configHandler->getAppConfigApplication();
 
     app.setApplicationName(appConfigApplication["name"].toString());
@@ -35,5 +36,9 @@ int main(int argc, char *argv[])
     clParser.addVersionOption();
     clParser.process(app);
 
+    // Setup websocket server
+    WebSocketServer *webSocketServer = new WebSocketServer(appConfigApplication["id"].toString(), 443, &app);
+    webSocketServer->start();
+
     return app.exec();
 }
diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..37e67c6e70ade5ff8c01b49aadb68f7dd5ea1fd0
--- /dev/null
+++ b/app/src/websockets/websocketserver.cpp
@@ -0,0 +1,25 @@
+#include "websocketserver.h"
+
+#include <QHostAddress>
+#include <QWebSocketServer>
+
+WebSocketServer::WebSocketServer(const QString &serverName, quint16 serverPort, QObject *parent)
+    : QObject(parent), serverName_(serverName), serverPort_(serverPort)
+{
+    webSocketServer_ = new QWebSocketServer(serverName_, QWebSocketServer::NonSecureMode, this);
+}
+
+WebSocketServer::~WebSocketServer()
+{
+    webSocketServer_->deleteLater();
+}
+
+bool WebSocketServer::start()
+{
+    return webSocketServer_->listen(QHostAddress::Any, serverPort_);
+}
+
+void WebSocketServer::stop()
+{
+    webSocketServer_->close();
+}
diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h
new file mode 100644
index 0000000000000000000000000000000000000000..115e4f5b012beaef2b270baae86db9d2e292d110
--- /dev/null
+++ b/app/src/websockets/websocketserver.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <QObject>
+
+class QWebSocketServer;
+
+class WebSocketServer : public QObject
+{
+    Q_OBJECT
+
+public:
+    explicit WebSocketServer(const QString &serverName, quint16 serverPort = 0, QObject *parent = 0);
+    ~WebSocketServer();
+
+public slots:
+    bool start();
+    void stop();
+
+private:
+    QString serverName_;
+    quint16 serverPort_;
+    QWebSocketServer *webSocketServer_;
+};