diff --git a/.docker/Dockerfile b/.docker/Dockerfile
new file mode 100644
index 0000000..b62d220
--- /dev/null
+++ b/.docker/Dockerfile
@@ -0,0 +1,53 @@
+FROM php:8.1-apache
+
+ENV APACHE_DOCUMENT_ROOT /var/www/html/public
+ENV APACHE_SERVER_NAME localhost
+ENV PATH="$PATH"
+WORKDIR /var/www/html
+
+RUN apt-get update
+
+RUN apt-get install -y \
+ libfreetype6-dev \
+ libjpeg62-turbo-dev \
+ libpng-dev \
+ libicu-dev \
+ && docker-php-ext-install -j$(nproc) iconv \
+ && docker-php-ext-configure gd --with-jpeg=/usr/include/ --with-freetype=/usr/include/ \
+ && docker-php-ext-install -j$(nproc) gd \
+ && docker-php-ext-install -j$(nproc) intl \
+ && docker-php-ext-install -j$(nproc) pdo_mysql
+
+RUN apt-get install -y git zip
+
+RUN apt install nano
+
+RUN pecl install xdebug-3.1.5 \
+ && docker-php-ext-enable xdebug \
+ && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo 'xdebug.discover_client_host=1' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo 'xdebug.log=/var/www/var/log/xdebug.log' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
+ && echo 'xdebug.log_level=0' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+
+RUN a2enmod rewrite && a2enmod headers
+RUN a2ensite 000-default
+
+COPY ./ /var/www/html
+
+RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
+RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
+
+
+RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
+
+RUN chown -R www-data:www-data /var/www/html/
+
+COPY /init.sh /init.sh
+RUN chmod 755 /init.sh
+RUN chmod +x /init.sh
+EXPOSE 80
+
+ENTRYPOINT ["/init.sh"]
+CMD ["apache2-foreground"]
\ No newline at end of file
diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml
new file mode 100644
index 0000000..771ca92
--- /dev/null
+++ b/.docker/docker-compose.yml
@@ -0,0 +1,40 @@
+version: '3.7'
+
+services:
+ database:
+ image: mariadb
+ container_name: skeleton-mariadb
+ ports:
+ - "3401:3306"
+ environment:
+ # think about .env file here
+ MYSQL_ROOT_PASSWORD: root
+ volumes:
+ - ./../.db:/var/lib/mysql
+ restart: always
+ networks:
+ - default
+ php:
+ build:
+ context: ./
+ dockerfile: Dockerfile
+ image: 'skeleton_php'
+ container_name: skeleton-php
+ ports:
+ - '8101:80'
+ volumes:
+ - ./../:/var/www/html
+ networks:
+ - default
+ phpmyadmin:
+ image: phpmyadmin
+ container_name: skeleton-phpmyadmin
+ restart: always
+ ports:
+ - "8102:80"
+ environment:
+ - PMA_ARBITRARY=1
+ networks:
+ - default
+networks:
+ default:
\ No newline at end of file
diff --git a/.docker/init.sh b/.docker/init.sh
new file mode 100644
index 0000000..e88c9ca
--- /dev/null
+++ b/.docker/init.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+echo "create log files"
+
+su www-data -s /bin/bash
+mkdir /var/www/html/temp
+mkdir /var/www/html/logs
+cd /var/www/html/logs
+touch tbserver-log.txt
+touch tbserver-cron-log.txt
+
+echo "$@"
+docker-php-entrypoint "$@"
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/WebServerSkeleton.iml b/.idea/WebServerSkeleton.iml
new file mode 100644
index 0000000..c956989
--- /dev/null
+++ b/.idea/WebServerSkeleton.iml
@@ -0,0 +1,8 @@
+
+