diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..8644b811198a2cb1c5763d57c26dc49c65731d2f
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,40 @@
+FROM php:7.1-apache
+
+# Came from https://downloads.datastax.com/cpp-driver/ubuntu/18.04/
+COPY ./docker/web/*.deb /debs/
+
+#Default SSLs
+ADD docker/web/apache-ssl.conf 	/etc/apache2/sites-enabled/000-default-ssl.conf
+ADD docker/web/ca.crt        	/etc/apache2/ssl/
+ADD docker/web/server.crt 	/etc/apache2/ssl/
+ADD docker/web/server.key 	/etc/apache2/ssl/
+RUN a2enmod ssl
+
+#TODO Links to be compliance with old env. We should remove this in the future.
+RUN ln -s -T /var/www/html/ /smartdata && chmod 777 /smartdata
+
+# SO
+RUN apt-get update && apt-get install -y \
+    apt-utils \
+    libuv1-dev \
+    multiarch-support \
+    libgmp-dev \
+    libuv1-dev \
+    libxml2-dev &&\
+    dpkg -i /debs/*.deb &&\
+    rm -fr /var/lib/apt/lists
+
+# 
+#RUN mkdir /var/log/php && touch /var/log/php/error.log && chmod 777 /var/log/php/error.log
+ADD docker/web/php.ini /usr/local/etc/php/conf.d/
+RUN docker-php-ext-install -j$(nproc) mbstring mysqli xml pdo_mysql gmp
+RUN pecl channel-update pecl.php.net && pecl install cassandra
+RUN echo "extension=cassandra.so" >> /usr/local/etc/php/conf.d/cassandra.ini
+
+ADD api 			/var/www/html/api/
+ADD bin 			/var/www/html/bin/
+ADD lib 			/var/www/html/lib/
+ADD docker/web/index.html 	/var/www/html/
+
+#smartdata/Config.php
+#RUN mkdir /usr/local/tmp/ && touch /usr/local/tmp/log && chmod 777 /usr/local/tmp/log
diff --git a/bin/smartdata/Config.php.template b/bin/smartdata/Config.php.template
index c581ef41f691cc62638acc9881a8aa76cb3bcd8f..8b29a74a4801427871f05cc27050247a4671072e 100644
--- a/bin/smartdata/Config.php.template
+++ b/bin/smartdata/Config.php.template
@@ -8,19 +8,19 @@ namespace SmartData\Config
 
     class Config_Common
     {
-        const MYSQL_SEVERNAME = 'localhost';
+        const MYSQL_SEVERNAME = 'db';
         const MYSQL_PORT      = 3306;
         const MYSQL_USERNAME  = 'smartdata';
-        const MYSQL_PASSWORD  = '';
+        const MYSQL_PASSWORD  = 'smartdata';
 
-        const MYSQL_SUPERUSER = 'smartdata_admin';
-        const MYSQL_SUPERPASS = '';
+        const MYSQL_SUPERUSER = 'root';
+        const MYSQL_SUPERPASS = 'ch4ng3m3';
 
-        const CASSANDRA_SERVERNAME   = 'localhost';
+        const CASSANDRA_SERVERNAME   = 'cassandra';
         const CASSANDRA_PORT         = 9042;
 
         const CASSANDRA_SUPERUSER = 'cassandra';
-        const CASSANDRA_SUPERPASS = ''; 
+        const CASSANDRA_SUPERPASS = 'ch4ng3m3'; 
 
         const CASSANDRA_MAX_ROW_SIZE = 2000000000; // (Two billion - The max is 2^31)
         const POINTS_LIMIT = 2000; // 84600 to 200000
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..50ef8a2d264ddfe18886cec2114e337dc8b2899c
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,52 @@
+version: "3.5"
+services:
+    web:
+      build: .
+      container_name: web
+      ports:
+            - 443:443
+      volumes:
+          - ./api:/var/www/html/api
+          - ./bin:/var/www/html/bin
+          - ./lib:/var/www/html/lib
+      depends_on:
+          - cassandra
+          - mariadb
+    mariadb:
+      image: mariadb:latest
+      container_name: mariadb
+      volumes:
+          - mariadb:/var/lib/mysql
+          - ./docker/db:/docker-entrypoint-initdb.d/
+      #deploy:
+      # replicas: 0
+      env_file:
+          - docker/variables.env
+
+    cassandra:
+      image: cassandra:4
+      container_name: cassandra
+      ulimits:
+        memlock: -1
+      #deploy:
+      # replicas: 0
+      volumes:
+        - cassandra:/var/lib/cassandra
+        - ./docker/cassandra:/docker-entrypoint-initdb.d/
+      env_file:
+        - docker/variables.env
+
+    #grafana:
+    #  image: grafana
+    #  container_name: grafana
+    #  deploy:
+    #    replicas: 0
+    #  env_file:
+    #    - docker/variables.env
+    #  ports:
+    #    - 3000:3000
+    #  depends_on:
+    #    - cassandra
+volumes:
+  mariadb:
+  cassandra:
diff --git a/docker/db/01-smartdata.sql b/docker/db/01-smartdata.sql
new file mode 100644
index 0000000000000000000000000000000000000000..1130bf080bfc62be72aea614bf150f71f3fc4c7b
--- /dev/null
+++ b/docker/db/01-smartdata.sql
@@ -0,0 +1,83 @@
+-- MySQL dump 10.17  Distrib 10.3.12-MariaDB, for Linux (x86_64)
+--
+-- Host: localhost    Database: smartdata
+-- ------------------------------------------------------
+-- Server version	10.3.12-MariaDB
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `counters`
+--
+
+DROP TABLE IF EXISTS `counters`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `counters` (
+  `domain` varchar(48) NOT NULL,
+  `c` int(11) DEFAULT NULL,
+  PRIMARY KEY (`domain`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+DROP TABLE IF EXISTS `gateways`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `gateways` (
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  `certificate` varchar(32) NOT NULL,
+  `name` varchar(32) NOT NULL,
+  `ip` int(10) unsigned NOT NULL,
+  `domain` varchar(48) NOT NULL,
+  `level` varchar(2) NOT NULL,
+  `enable` tinyint(1) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
+
+DROP TABLE IF EXISTS `series`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `series` (
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  `version` tinyint(3) unsigned NOT NULL,
+  `unit` int(10) unsigned NOT NULL,
+  `x` int(11) NOT NULL,
+  `y` int(11) NOT NULL,
+  `z` int(11) NOT NULL,
+  `r` int(10) unsigned NOT NULL,
+  `t0` bigint(20) unsigned NOT NULL,
+  `t1` bigint(20) unsigned NOT NULL,
+  `count` bigint(20) unsigned NOT NULL DEFAULT 0,
+  `domain` varchar(48) NOT NULL DEFAULT 'public',
+  `slice` bigint(20) unsigned NOT NULL,
+  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
+  `signature` bigint(20) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_series` (`version`,`unit`,`x`,`y`,`z`,`r`,`t0`,`t1`,`domain`,`slice`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
+
+DROP TABLE IF EXISTS `trackers`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `trackers` (
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  `version` varchar(5) NOT NULL,
+  `unit` int(10) unsigned NOT NULL,
+  `signature` varchar(32) NOT NULL,
+  `t0` bigint(20) unsigned NOT NULL,
+  `t1` bigint(20) unsigned NOT NULL,
+  `count` bigint(20) unsigned NOT NULL DEFAULT 0,
+  `domain` varchar(48) NOT NULL DEFAULT 'public',
+  `slice` bigint(20) unsigned NOT NULL,
+  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_trackers` (`version`,`unit`,`signature`,`t0`,`t1`,`domain`,`slice`)
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
diff --git a/docker/db/02-smartdata_v1.sql b/docker/db/02-smartdata_v1.sql
new file mode 100644
index 0000000000000000000000000000000000000000..3ae4960f841eb59d2ba74e2e8e33b3a07cc09c7f
--- /dev/null
+++ b/docker/db/02-smartdata_v1.sql
@@ -0,0 +1,105 @@
+CREATE DATABASE IF NOT EXISTS `smartdata_v1`;
+
+USE `smartdata_v1`;
+
+--
+-- Table structure for table `counters`
+--
+DROP TABLE IF EXISTS `counters`;
+CREATE TABLE `counters` (`domain` varchar(48) PRIMARY KEY, c INT);
+DELIMITER //
+CREATE OR REPLACE FUNCTION `counter` (_domain varchar(48)) RETURNS INT
+  BEGIN
+    UPDATE `counters` SET c = c + 1 WHERE `domain` = _domain;
+    RETURN (SELECT c FROM `counters`  WHERE `domain` = _domain LIMIT 1);
+  END //
+DELIMITER ;
+
+--
+-- Table structure for table `series`
+--
+DROP TABLE IF EXISTS `rows`;
+DROP TABLE IF EXISTS `series`;
+CREATE TABLE `series` (
+  `id`         bigint unsigned NOT NULL AUTO_INCREMENT,
+  `version`    tinyint unsigned NOT NULL,
+  `unit`       int unsigned NOT NULL,
+  `x`          int NOT NULL,
+  `y`          int NOT NULL,
+  `z`          int NOT NULL,
+  `r`          int unsigned NOT NULL,
+  `dev`        int unsigned NOT NULL DEFAULT '0',
+  `t0`         bigint unsigned NOT NULL,
+  `t1`         bigint unsigned NOT NULL,
+  `workflow`   int unsigned NOT NULL DEFAULT '0',
+  `domain`     varchar(48) NOT NULL DEFAULT 'public',
+  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_series` (`version`,`unit`,`x`,`y`,`z`,`r`,`dev`,`t0`,`t1`,`workflow`,`domain`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Table structure for table `rows`
+--
+DROP TABLE IF EXISTS `rows`;
+CREATE TABLE `rows` (
+  `id`         bigint unsigned NOT NULL AUTO_INCREMENT,
+  `x`          int NOT NULL,
+  `y`          int NOT NULL,
+  `z`          int NOT NULL,
+  `dev`        int unsigned NOT NULL DEFAULT '0',
+  `count`      bigint unsigned NOT NULL DEFAULT '0',
+  `row_id`     bigint unsigned NOT NULL,
+  `series_id`  bigint unsigned NOT NULL,
+  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_rows` (`x`,`y`,`z`,`dev`,`row_id`,`series_id`),
+  CONSTRAINT `fk_row_series`
+    FOREIGN KEY (`series_id`) REFERENCES `series` (`id`)
+    ON DELETE CASCADE
+    ON UPDATE RESTRICT
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Table structure for table `trackers`
+--
+DROP TABLE IF EXISTS `trackers`;
+CREATE TABLE `trackers` (
+  `id`         bigint unsigned NOT NULL AUTO_INCREMENT,
+  `version`    tinyint unsigned NOT NULL,
+  `unit`       int unsigned NOT NULL,
+  `dev`        int unsigned NOT NULL DEFAULT '0',
+  `t0`         bigint unsigned NOT NULL,
+  `t1`         bigint unsigned NOT NULL,
+  `signature`  bigint unsigned NOT NULL,
+  `count`      bigint unsigned NOT NULL DEFAULT '0',
+  `workflow`   int unsigned NOT NULL DEFAULT '0',
+  `domain`     varchar(48) NOT NULL DEFAULT 'public',
+  `row_id`     bigint unsigned NOT NULL,
+  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_trackers` (`version`,`unit`,`signature`,`t0`,`t1`,`dev`,`workflow`,`domain`,`row_id`)
+
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Table structure for table `clients`
+--
+DROP TABLE IF EXISTS `clients`;
+CREATE TABLE `clients` (
+  `id`          bigint unsigned NOT NULL AUTO_INCREMENT,
+  `certificate` varchar(32)     NOT NULL,
+  `name`        varchar(32)     NOT NULL,
+  `domain`      varchar(48)     NOT NULL,
+  `level`       varchar(2)      NOT NULL,
+  `enable`      boolean         NOT NULL DEFAULT false,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+DELIMITER //
+CREATE TRIGGER `check_level` BEFORE INSERT ON `clients` FOR EACH ROW
+BEGIN
+  IF NEW.`level` NOT IN ('r', 'w', 'rw') THEN
+    SIGNAL SQLSTATE VALUE '45000' SET MESSAGE_TEXT = '[table:clients] - `level` column is not valid';
+  END IF;
+END; //
diff --git a/docker/db/03-smartdata_v1.tutorial.sql b/docker/db/03-smartdata_v1.tutorial.sql
new file mode 100644
index 0000000000000000000000000000000000000000..a5525209a11c3c781da59027e71bffb7d54ab672
--- /dev/null
+++ b/docker/db/03-smartdata_v1.tutorial.sql
@@ -0,0 +1,3 @@
+USE smartdata_v1;
+INSERT INTO clients VALUES (1,'01','Certificate Example','tutorial','rw',1);
+INSERT INTO counters VALUES ('tutorial', '0');
diff --git a/docker/db/99-permitions.sh b/docker/db/99-permitions.sh
new file mode 100644
index 0000000000000000000000000000000000000000..4db2714d918d6b5235e464a7ca933bad364b72a7
--- /dev/null
+++ b/docker/db/99-permitions.sh
@@ -0,0 +1,9 @@
+#!/bin/bash 
+MRP=$MYSQL_ROOT_PASSWORD
+echo "CREATE USER IF NOT EXISTS 'smartdata_admin' IDENTIFIED BY '$MYSQL_PASSWORD';"	| mysql -u root --password=$MRP
+echo "CREATE USER IF NOT EXISTS 'smartdata' IDENTIFIED BY '$MYSQL_PASSWORD';"	 	| mysql -u root --password=$MRP
+echo "CREATE USER IF NOT EXISTS 'tutorial' IDENTIFIED BY '$MYSQL_PASSWORD';" 		| mysql -u root --password=$MRP
+
+echo "GRANT ALL PRIVILEGES ON *.* TO 'smartdata_admin';" 				| mysql -u root --password=$MRP
+echo "GRANT ALL PRIVILEGES ON *.* TO 'smartdata';" 					| mysql -u root --password=$MRP
+echo "GRANT ALL PRIVILEGES ON *.* TO 'tutorial';"				    	| mysql -u root --password=$MRP
diff --git a/docker/variables.env b/docker/variables.env
new file mode 100644
index 0000000000000000000000000000000000000000..8cfcd134f540e6e58abeee03e555a5cdf5705c31
--- /dev/null
+++ b/docker/variables.env
@@ -0,0 +1,16 @@
+#TODO bater com as senha de exemplo do Config.php
+
+#Mysql
+MYSQL_DATABASE=smartdata
+MYSQL_USER=smartdata 
+MYSQL_PASSWORD=smartdata
+MYSQL_ROOT_PASSWORD=ch4ng3m3
+
+#Cassandra
+CASSANDRA_NUM_TOKENS=256
+LOCAL_JMX=yes
+JVM_OPTS=-Dcom.sun.management.jmxremote.authenticate=false
+
+CASSANDRA_USERNAME=cassandra
+CASSANDRA_PASSWORD=ch4ng3m3
+
diff --git a/docker/web/apache-ssl.conf b/docker/web/apache-ssl.conf
new file mode 100644
index 0000000000000000000000000000000000000000..f2bf68ae588b50ac68a4abf43b6d67772be55c97
--- /dev/null
+++ b/docker/web/apache-ssl.conf
@@ -0,0 +1,29 @@
+#
+<VirtualHost _default_:443>
+		ServerAdmin 	webmaster@localhost
+		DocumentRoot 	/var/www/html
+		ErrorLog 	${APACHE_LOG_DIR}/error.log
+		CustomLog 	${APACHE_LOG_DIR}/access.log combined
+
+		# SSL
+		SSLEngine on
+		SSLCertificateFile		/etc/apache2/ssl/server.crt
+		SSLCertificateKeyFile 		/etc/apache2/ssl/server.key
+		SSLCACertificateFile 		/etc/apache2/ssl/ca.crt
+		SSLVerifyClient optional
+		SSLVerifyDepth  5
+		#SSLCertificateChainFile 	/etc/apache2/ssl.crt/server-ca.crt
+		#SSLCACertificatePath 		/etc/ssl/certs/
+		#SSLCACertificateFile 		/etc/apache2/ssl.crt/ca-bundle.crt
+		#SSLCARevocationPath 		/etc/apache2/ssl.crl/
+		#SSLCARevocationFile 		/etc/apache2/ssl.crl/ca-bundle.crl
+		#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
+
+		<FilesMatch "\.(cgi|shtml|phtml|php)$">
+				SSLOptions +StdEnvVars
+		</FilesMatch>
+
+		<Directory /usr/lib/cgi-bin>
+				SSLOptions +StdEnvVars
+		</Directory>
+</VirtualHost>
diff --git a/docker/web/ca.crt b/docker/web/ca.crt
new file mode 100644
index 0000000000000000000000000000000000000000..80f31e4c62380aab7cf440ee73191d27f2977f9f
--- /dev/null
+++ b/docker/web/ca.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDazCCAlOgAwIBAgIUTARemzbPYtPSkl0l4LtfSTS9PDowDQYJKoZIhvcNAQEL
+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDAyMTQxMzAyMzBaFw0zNDAy
+MTExMzAyMzBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
+HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCWx/w4gJVX+O9gygSrZbYr9aq8H4Pdzse8OocrY66D
+wFHkrUpCYz0nZiHnJPbsE/FQ880a3v9U6zi9WBtPz3bXOb9waPX3QKvLLyeUXquh
+PVBBAi/Q/zBYIJ1qQcoImJyRW561eS6WXU0uQnWnGG2S+M8DADe34K/SxJxlUs1O
+IHAFslmCWJQT0matCnteR9EpUbVTxFuGlIsrYSxRSClQXcovmifAVw+xol8sGukm
+1n6u2G2fjKHz1BkWl3cpbPUsXlyrxt56Ut0k6zyGJFe1gm+UYCRqM8YhEaBcBlmt
+9ickQGRls8+S7Ac/9rMQhL0FQ6riUD5dfSrVSUKzdZY5AgMBAAGjUzBRMB0GA1Ud
+DgQWBBSsoMyYPBy1ICYSsPXFgK7EdnD22DAfBgNVHSMEGDAWgBSsoMyYPBy1ICYS
+sPXFgK7EdnD22DAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBN
+hmwL0/4wZJA50RVTHwbmcMohM40bYbKoJ42v9rUXMd25TM39wE3n/x/RVX/cfsun
+G5nhhGlE0GYBZtM3qDgwNEaeJZfzLSOnkHCTHHWs+h0dmS+Z8A6ta4kutOsaGwyO
+t9ynBydnZEOzuAuxnAF2ekMTrsnNL1TWP8mL03aOROY5h1hqhYZXLP3N9gwf08p+
+i0KmKaM//3jXPzefCP49MumqMYYRr1s7JJZ7RB2uMKtNbnMNzI1KpqSWJM3tZNWL
+kTx4DdC2h2vTmfwEs+vvKgS3V6A8JAKYocLW5TZREZ57pkLdlxKvYoO9UWubzQ5B
+l7kccmUwmbf7+fk7PXFB
+-----END CERTIFICATE-----
diff --git a/docker/web/ca.key b/docker/web/ca.key
new file mode 100644
index 0000000000000000000000000000000000000000..350ccc4f887e335c86e88bfb87865cb2b87ebf52
--- /dev/null
+++ b/docker/web/ca.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCWx/w4gJVX+O9g
+ygSrZbYr9aq8H4Pdzse8OocrY66DwFHkrUpCYz0nZiHnJPbsE/FQ880a3v9U6zi9
+WBtPz3bXOb9waPX3QKvLLyeUXquhPVBBAi/Q/zBYIJ1qQcoImJyRW561eS6WXU0u
+QnWnGG2S+M8DADe34K/SxJxlUs1OIHAFslmCWJQT0matCnteR9EpUbVTxFuGlIsr
+YSxRSClQXcovmifAVw+xol8sGukm1n6u2G2fjKHz1BkWl3cpbPUsXlyrxt56Ut0k
+6zyGJFe1gm+UYCRqM8YhEaBcBlmt9ickQGRls8+S7Ac/9rMQhL0FQ6riUD5dfSrV
+SUKzdZY5AgMBAAECggEAAzGNqp8IlWeA9HPFmQwWCW983rABMZW+CRh+lpaYJ+i5
+zfuLTDArZ6tOslqyqH88os+4dfun/KMLHYbhSeBgSUCLHjpO5AjYiqdp8cchNftP
+45dEWYDKLpepld+lA+fC6y49rzoiQzjggrIRfrOdAIT+EiId9qpO4bUx2yXfkipu
+j7jh58EqaX8VvocDezxbORrvIbFV1Y1QXBayLC7v42xcknxxzyU0gmo21MfUuSM1
+EmYuerCRy0Uim/06A1NJPwJyUKXqqchmCi65YRF9j3Sy0i3pZKK8mlYdT4jp9Ya3
+DVrAe/8CfW5LfX8UA4Ev4wMkPKXC/R6Gd/rPE7hLwQKBgQDEb/kWCTyXvMkW1ReN
+DeZgBTMMZIYghOvFbUXcw+GDos6hODja3ZYXyU0h6WD35+sXUG/6rhuCAtnLMDBW
+ieiGQL1BmwQXe5ISxzLBIw/5CCrmqmzkx8YTtFptc/sVXoMqfs6TfKZ8Zq7dDNVe
+5w/LQTI0pokGkTPvI7hlCjEy4QKBgQDEgAxqp2cb5KlVsZogsYLoXWbF9VnEQZzc
+yIBMPVL2NMJyaWYiGPUSOkzdLNeC7vu3uoNl05IzoLQfEDie5l/To846//8qdOnL
+9wHzCqPgWsNbsLg0BbAP4oor6rEw1Wc7B/7XFsqA4CQY6t5JplKtJy1XWaPn4uAz
+gEXPGf2mWQKBgC3qmoerGw3A5CRBJSMkh6AUNw2DhdKeH1pjo3vqEZGqgbAvqyKF
+vyrKNAxkN/VasZoehD5NakKmlfAn0HS6Aa83/MUUDg3LJabcByIcJwSoAxct6QxF
+IijC9Iw3Gw6wq+pH/9N7xJK5kdA7yrhHPGrfT3P9JXRyhng0mkqL6lohAoGAcZpa
+E1se6GhlYc6g/d/CgBZnsXDsaeNJDfe4/NrDWOYduMmoq3PkU5pzD7e6DM+fpZPm
+HXuY3dI98GuPYIZtxkzAkSmpWuFmvW3bqahwH+g5Y4wioqjbJgPhwAwaTtJBsUYp
+Fi7t+l4bYHCA/PF0gPjSZNrFQO3QktXJBjfPhlkCgYACjsN+YrOaxHmzZkuxwXza
+BU+vt8lLGdHUHAr/ldIEGYxonAnM6mGIrs9lYjPLfP23Ak128Jwg6XZ7jei7OILU
+1MnV+H+2gKLVFzMzoFnAA3cJ6fc4l+kewEOpx3qPvjplD6xnFDteWdjIpMx2yX80
+FM4e9gNP2lovH1RWqZv9lg==
+-----END PRIVATE KEY-----
diff --git a/docker/web/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb b/docker/web/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb
new file mode 100644
index 0000000000000000000000000000000000000000..edf602ecf26cc095aa9db8797c8b9a60bf32fd7c
Binary files /dev/null and b/docker/web/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb differ
diff --git a/docker/web/cassandra-cpp-driver_2.16.0-1_amd64.deb b/docker/web/cassandra-cpp-driver_2.16.0-1_amd64.deb
new file mode 100644
index 0000000000000000000000000000000000000000..951f84d41638325c194da728e1e3c82cf61821f9
Binary files /dev/null and b/docker/web/cassandra-cpp-driver_2.16.0-1_amd64.deb differ
diff --git a/docker/web/create-ssl-files.sh b/docker/web/create-ssl-files.sh
new file mode 100644
index 0000000000000000000000000000000000000000..ad484b04c3086f33ea61aa84a0f15b6b58b8a999
--- /dev/null
+++ b/docker/web/create-ssl-files.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# Configuration
+CA_KEY="ca.key"
+CA_CERT="ca.crt"
+SERVER_KEY="server.key"
+SERVER_CSR="server.csr"
+SERVER_CERT="server.crt"
+DAYS_VALIDITY=3650
+
+# 1. Create CA Private Key without passphrase
+openssl genpkey -algorithm RSA -out "$CA_KEY"
+
+# 2. Create CA Certificate
+openssl req -new -x509 -key "$CA_KEY" -out "$CA_CERT" -days "$DAYS_VALIDITY"
+
+# 3. Create Server Private Key without passphrase
+openssl genpkey -algorithm RSA -out "$SERVER_KEY"
+
+# 4. Create Server Certificate Signing Request (CSR)
+openssl req -new -key "$SERVER_KEY" -out "$SERVER_CSR"
+
+# 5. Sign Server Certificate with CA
+openssl x509 -req -in "$SERVER_CSR" -CA "$CA_CERT" -CAkey "$CA_KEY" -CAcreateserial -out "$SERVER_CERT" -days "$DAYS_VALIDITY"
+
+# Cleanup temporary files (optional)
+rm "$SERVER_CSR" "$CA_KEY.srl"
+
+echo "Certificate Authority (CA) certificate created: $CA_CERT"
+echo "Server Private Key created: $SERVER_KEY"
+echo "Server Certificate signed by CA created: $SERVER_CERT"
+
diff --git a/docker/web/index.html b/docker/web/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..49163fad386fbe1c13355ba874a4d6366951bef8
--- /dev/null
+++ b/docker/web/index.html
@@ -0,0 +1,4 @@
+<html>
+    <h3>API: /api </h3>
+    <a href='/api'>API</>
+</html>
diff --git a/docker/web/libuv1_1.35.0-1_amd64.deb b/docker/web/libuv1_1.35.0-1_amd64.deb
new file mode 100644
index 0000000000000000000000000000000000000000..0e9e1301de1ecb15cd48529d6913eeb264ec74ac
Binary files /dev/null and b/docker/web/libuv1_1.35.0-1_amd64.deb differ
diff --git a/docker/web/php.ini b/docker/web/php.ini
new file mode 100644
index 0000000000000000000000000000000000000000..db7506ce6a2f3bb8005fcd9627dcf5066545da0a
--- /dev/null
+++ b/docker/web/php.ini
@@ -0,0 +1,6 @@
+;Error display
+log_errors = On
+display_errors = Off
+error_log = /var/log/php/error.log
+error_reporting = E_ALL & ~E_DEPRECATED
+
diff --git a/docker/web/server.crt b/docker/web/server.crt
new file mode 100644
index 0000000000000000000000000000000000000000..6d357708fee2ff5089fce21e258d72e18a0ff126
--- /dev/null
+++ b/docker/web/server.crt
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDETCCAfkCFH3j6kjMtpLw2LXXbQFrMWgYsf34MA0GCSqGSIb3DQEBCwUAMEUx
+CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
+cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjQwMjE0MTMwMjM0WhcNMzQwMjExMTMw
+MjM0WjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
+CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEApFCPnle0Ik2U1dCpD2eNxIA5gubDXkYA4Qy3xhPrAJSwPzCk
+Hkjox80VeEA68lhqKDCt8tSpdyJaXNg0oXjud6oendREHiTc0wdrx4fgAedT01AY
+4/7uA8pGiWLjQahxmymZIJcbRlrgefJBAsUPscklpkNJSptPKxYBJacmkuPu8CLH
+8L7Ul1o0Ybe/e9SR8x4kRmreypCJ+quZaQUl/R50y95kf/NjZKD3YS3MsOA/x02o
+PDBnV4WGhN/ymYmo3uBjIsRkRd5QJ8NEQyW5Hn5sFFp1CCjLvpCsMznOjzEYBPRj
+JFB4C/IJp2tuUjFp9Lo7yt/zxRuGl124BdS/GQIDAQABMA0GCSqGSIb3DQEBCwUA
+A4IBAQBy27Ygv+YrWRE8SpsR2yvV6mLHdm8ML6IDAcu6aD9oZduR2lIS/cj71Eny
+jIPQvUWeH183Jla3Z4BisxvqWJBe17BDVBwZZeW7qDN7D5cXUxCex4QMR+7CmtEX
+IK7xM3w3AMj6HJWo8m5A/3g2PUwTpImqjqN9O5fKD6jwJ5s4RTbwUlC+OVVGsmI5
+A1rpNQUPmpEDNjiOh51VNL34Y9r8SPyK7nbk1wH3YyVLTMSOAITxojAhlNtK03kv
+ojdBcfTDbRvQDbhmn3kQVzt5tenISRi+1gS4cmE3PcUulaskn93h7bs0WUr6D+9T
+mW5IjISgTYnqx/h9BOJJosgbnkY9
+-----END CERTIFICATE-----
diff --git a/docker/web/server.key b/docker/web/server.key
new file mode 100644
index 0000000000000000000000000000000000000000..b3142dbcd53148e04824e54523f04c6394c93cd6
--- /dev/null
+++ b/docker/web/server.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCkUI+eV7QiTZTV
+0KkPZ43EgDmC5sNeRgDhDLfGE+sAlLA/MKQeSOjHzRV4QDryWGooMK3y1Kl3Ilpc
+2DSheO53qh6d1EQeJNzTB2vHh+AB51PTUBjj/u4DykaJYuNBqHGbKZkglxtGWuB5
+8kECxQ+xySWmQ0lKm08rFgElpyaS4+7wIsfwvtSXWjRht7971JHzHiRGat7KkIn6
+q5lpBSX9HnTL3mR/82NkoPdhLcyw4D/HTag8MGdXhYaE3/KZiaje4GMixGRF3lAn
+w0RDJbkefmwUWnUIKMu+kKwzOc6PMRgE9GMkUHgL8gmna25SMWn0ujvK3/PFG4aX
+XbgF1L8ZAgMBAAECggEAA1H2aPRsOSI4ru5ZsCw/Pth5cQXxLis7ctCzOO8nmTon
+6or00gDWpUzlUWn41vNG59t99FFsQDJDQauDuryLEwNuvXEv1C0aAjCc8qnx8o/m
+T3eHnTnGPPDeJoIHRgkdjI1VYQV0oWIONaCZxDDPrZ+7IUYsSbPkMGJwMP7U5nRo
+0HSA2Pzx6U77ysA7JETYNw6/ISX8MHtAAzatWF79EGK3zCHfO7A1JKYFVoOINt/a
+zOZJ8dvxB2rJisQKBFr0CbEk3t0ydlbDCRmLFtrd9VuBtPZdg75zRNkdH83jJwpA
+sVn9QmcV+6xt2qFeS0ty33QZsM98cCZIHJ0WQUOc9QKBgQDEXO/0b56ccoPaHlFg
+KojRtFVzv63BVz7X8XuOcYKHx4+5VpZQYFyzybhprksFvnk4AAd3SwotETdsd8Ul
+9JmVPnyIbN9TD8xDK0FyX1P6wqVhAPeedsvm3MJsaWCkt9x+XXfsFREQDQo9BD/Y
+ZCi6rwueBf/MVU813dm1vmqEnQKBgQDWN+Q7jxWz9nYocFd1mOwop8MxMvZFhZlq
+zjzWtq89Cx5IdqZ92yp2BkOoIM/JuD/A1IwnWBzTNzargw+IR2DNFglesjVsi+iD
+CHo+dQJA/2aWUXmnbPpMx9PDmSFTzhHQASZq5scWp+Gn/gjZ/oP9DYdYVk/8+jgJ
+/at4kcVVrQKBgQCaCRWquAzCSQqphfLr7zHY3w/RduGEsz33A9WazexJOwDBsOzF
+LHJMDsd9D16GqP5KMaupptHavJCvo9yhg5ke/B+QnWcqr0/auQnkAGfOY/Z7e9jD
+FAmrli1mAdvwGtL6xbOXHIeAAdqwNq8mvps8pqgEVExvK9SxOtDXwwGn+QKBgCi2
+EIr9I2vDMCt5RjXULTWAxIjKHaGSxVhV/5vythUM0uGEoxmSGFy7zgnayoKUoJEe
+E9C6XygI+zvXOZF1t0Diqj8z8RFC+ZpFdy39gMMnhrCUpWEbRepno6gtpvbNV/dG
+8K0qVLXKjAkoLzh2tVDXTFyOcr8qMpI7gmX0liM1AoGBAKAY4gt6ycYVHpwuAEST
+XC6ljcBPMuKWwzyQzYu9RjZpYpFVXqJfYutBBtGTq124xYI91cmOza7Pgruqb0SM
+FBn5sHbbgIpBeZgOwphugWgHNosLNEyCy61iejfM2EreN9TQc7tYQu9D1QwLf74j
+bC0tkEsljjK9IRNRuxFPtLnx
+-----END PRIVATE KEY-----