diff --git a/client/client.pro b/client/client.pro
index 5d79929b..803107e7 100644
--- a/client/client.pro
+++ b/client/client.pro
@@ -6,9 +6,14 @@ TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
+include("3rd/QtSsh/src/ssh/ssh.pri")
+include("3rd/QtSsh/src/botan/botan.pri")
+
HEADERS += \
communicator.h \
+ core/openvpnconfigurator.h \
core/router.h \
+ core/servercontroller.h \
debug.h \
defines.h \
localclient.h \
@@ -24,7 +29,9 @@ HEADERS += \
SOURCES += \
communicator.cpp \
+ core/openvpnconfigurator.cpp \
core/router.cpp \
+ core/servercontroller.cpp \
debug.cpp \
localclient.cpp \
main.cpp \
diff --git a/client/resources.qrc b/client/resources.qrc
index acc656f5..fbc02a5a 100644
--- a/client/resources.qrc
+++ b/client/resources.qrc
@@ -1,9 +1,6 @@
-
- translations/amneziavpn_ru.qm
-
-
+ translations/amneziavpn_ru.qm
images/close.png
images/settings.png
images/min.png
@@ -36,5 +33,9 @@
images/line.png
images/server_settings.png
images/share.png
+ server_scripts/prepare_openvpn_client.sh
+ server_scripts/remove_openvpn_server.sh
+ server_scripts/setup_openvpn_server.sh
+ server_scripts/template.ovpn
diff --git a/client/server_scripts/prepare_openvpn_client.sh b/client/server_scripts/prepare_openvpn_client.sh
new file mode 100644
index 00000000..f72b7486
--- /dev/null
+++ b/client/server_scripts/prepare_openvpn_client.sh
@@ -0,0 +1,24 @@
+DOCKER_IMAGE="amneziavpn/openvpn:latest"
+CONTAINER_NAME="amneziavpn"
+
+#sudo apt update
+sudo apt install -y docker.io curl
+sudo systemctl start docker
+
+sudo docker stop amneziavpn
+sudo docker rm -f amneziavpn
+sudo docker pull amneziavpn/openvpn:latest
+sudo docker run -d --restart always --cap-add=NET_ADMIN -p 1194:1194/udp --name amneziavpn amneziavpn/openvpn:latest
+
+
+docker exec -i amneziavpn sh -c "mkdir -p /opt/amneziavpn_data"
+docker exec -i amneziavpn sh -c "cat /proc/sys/kernel/random/entropy_avail"
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa init-pki && easyrsa gen-dh"
+
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/dh.pem /etc/openvpn && easyrsa build-ca nopass << EOF yes EOF && easyrsa gen-req MyReq nopass << EOF2 yes EOF2"
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa sign-req server MyReq << EOF3 yes EOF3"
+docker exec -i amneziavpn sh -c "openvpn --genkey --secret ta.key << EOF4 yes EOF4"
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/ca.crt pki/issued/MyReq.crt pki/private/MyReq.key ta.key /etc/openvpn"
+docker exec -i amneziavpn sh -c "openvpn --config /etc/openvpn/server.conf &"
+
+docker exec -i amneziavpn mkdir -p /opt/amneziavpn_data/clients
diff --git a/client/server_scripts/remove_openvpn_server.sh b/client/server_scripts/remove_openvpn_server.sh
new file mode 100644
index 00000000..a05efa2d
--- /dev/null
+++ b/client/server_scripts/remove_openvpn_server.sh
@@ -0,0 +1,2 @@
+docker container stop $(docker ps -a -q --filter ancestor="alekslitvinenk/openvpn")
+docker container kill $(docker ps -a -q --filter ancestor="alekslitvinenk/openvpn")
\ No newline at end of file
diff --git a/client/server_scripts/setup_openvpn_server.sh b/client/server_scripts/setup_openvpn_server.sh
new file mode 100644
index 00000000..f72b7486
--- /dev/null
+++ b/client/server_scripts/setup_openvpn_server.sh
@@ -0,0 +1,24 @@
+DOCKER_IMAGE="amneziavpn/openvpn:latest"
+CONTAINER_NAME="amneziavpn"
+
+#sudo apt update
+sudo apt install -y docker.io curl
+sudo systemctl start docker
+
+sudo docker stop amneziavpn
+sudo docker rm -f amneziavpn
+sudo docker pull amneziavpn/openvpn:latest
+sudo docker run -d --restart always --cap-add=NET_ADMIN -p 1194:1194/udp --name amneziavpn amneziavpn/openvpn:latest
+
+
+docker exec -i amneziavpn sh -c "mkdir -p /opt/amneziavpn_data"
+docker exec -i amneziavpn sh -c "cat /proc/sys/kernel/random/entropy_avail"
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa init-pki && easyrsa gen-dh"
+
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/dh.pem /etc/openvpn && easyrsa build-ca nopass << EOF yes EOF && easyrsa gen-req MyReq nopass << EOF2 yes EOF2"
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && easyrsa sign-req server MyReq << EOF3 yes EOF3"
+docker exec -i amneziavpn sh -c "openvpn --genkey --secret ta.key << EOF4 yes EOF4"
+docker exec -i amneziavpn sh -c "cd /opt/amneziavpn_data && cp pki/ca.crt pki/issued/MyReq.crt pki/private/MyReq.key ta.key /etc/openvpn"
+docker exec -i amneziavpn sh -c "openvpn --config /etc/openvpn/server.conf &"
+
+docker exec -i amneziavpn mkdir -p /opt/amneziavpn_data/clients
diff --git a/client/server_scripts/template.ovpn b/client/server_scripts/template.ovpn
new file mode 100644
index 00000000..da6d43c2
--- /dev/null
+++ b/client/server_scripts/template.ovpn
@@ -0,0 +1,28 @@
+client
+dev tun
+proto $PROTO
+resolv-retry infinite
+nobind
+persist-key
+persist-tun
+cipher AES-256-GCM
+auth SHA512
+verb 3
+tls-client
+tls-version-min 1.2
+key-direction 1
+remote-cert-tls server
+
+remote $REMOTE_HOST $REMOTE_PORT
+
+$CA_CERT
+
+
+$CLIENT_CERT
+
+
+$PRIV_KEY
+
+
+$TA_KEY
+