diff --git a/.env b/.env
index 1812ea0b1b53e238b38add90568bc41aca3385a6..f969f51115944bd5070ddefbb38c080f6747e7a2 100644
--- a/.env
+++ b/.env
@@ -39,3 +39,8 @@ MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
 ###> symfony/mailer ###
 # MAILER_DSN=null://null
 ###< symfony/mailer ###
+DATABASE_PORT="5432"
+NGINX_PORT="80"
+APP_BASE_DIR="./"
+POSTGRES_USER="postgres"
+POSTGRES_PASSWORD="12345"
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 930e1e21e27cc2916f9dd36aa9e577d0fb0b2ee0..6dd4647f37a5a4fd0c9bc0afd95df6ab550e2f67 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,4 +23,6 @@
 /public/assets/
 /assets/vendor/
 ###< symfony/asset-mapper ###
-/.idea
\ No newline at end of file
+/.idea
+.env;
+.env.test;
\ No newline at end of file
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b41d4867e0ae80feed98dfccda6958792a5f3223
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,42 @@
+version: "3"
+
+services:
+  database:
+    container_name: postgres
+    image: postgres:16.2-alpine
+    environment:
+      POSTGRES_USER: ${POSTGRES_USER}
+      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
+      POSTGRES_HOST_AUTH_METHOD: trust
+    ports:
+      - "${DATABASE_PORT}:${DATABASE_PORT}"
+    networks:
+      - internal
+  nginx:
+    build:
+      dockerfile: ./docker/nginx/Dockerfile
+      args:
+        COMPOSER_AUTH: "{}"
+        APP_BASE_DIR: ${APP_BASE_DIR-.}
+    volumes:
+      - ".:/app"
+      - './docker/nginx/default.conf:/etc/nginx/conf.d/default.conf'
+    ports:
+      - '${NGINX_PORT}:${NGINX_PORT}'
+    networks:
+      - internal
+  app:
+    build:
+      dockerfile: ./docker/php/Dockerfile
+      args:
+        COMPOSER_AUTH: "{}"
+        APP_BASE_DIR: ${APP_BASE_DIR-.}
+    volumes:
+      - ".:/app"
+    restart: unless-stopped
+    networks:
+      - internal
+
+networks:
+  internal:
+    driver: bridge
\ No newline at end of file
diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..4ea2c80397dc7a768722ad4090f75d80572f2d28
--- /dev/null
+++ b/docker/nginx/Dockerfile
@@ -0,0 +1,6 @@
+FROM nginx:alpine
+
+WORKDIR "/app"
+
+ARG APP_BASE_DIR
+COPY $APP_BASE_DIR .
diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf
new file mode 100644
index 0000000000000000000000000000000000000000..e28298757e4f8eb99f9ef3af08c7890d078b4368
--- /dev/null
+++ b/docker/nginx/default.conf
@@ -0,0 +1,31 @@
+server {
+    #This config is based on https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf
+
+     # The location of our project's public directory.
+    root /app/public;
+
+     # Point index to the Laravel front controller.
+    index           index.php;
+
+    location / {
+        # URLs to attempt, including pretty ones.
+        try_files   $uri $uri/ /index.php?$query_string;
+    }
+
+    # Remove trailing slash to please routing system.
+    if (!-d $request_filename) {
+            rewrite     ^/(.+)/$ /$1 permanent;
+    }
+
+    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+    location ~ \.php$ {
+        fastcgi_split_path_info ^(.+\.php)(/.+)$;
+    #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+    #   # With php5-fpm:
+        fastcgi_pass app:9000;
+        fastcgi_index index.php;
+        include fastcgi_params;
+        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+        fastcgi_param PATH_INFO $fastcgi_path_info;
+    }
+}
\ No newline at end of file
diff --git a/docker/Dockerfile b/docker/php/Dockerfile
similarity index 61%
rename from docker/Dockerfile
rename to docker/php/Dockerfile
index 2fca0d57ca4b965197eb6b15ee191aeceb45c286..e4b730f1c9275824bf78bbdc5913d51dbb6ec43b 100644
--- a/docker/Dockerfile
+++ b/docker/php/Dockerfile
@@ -2,11 +2,13 @@ FROM php:fpm-alpine
 
 WORKDIR "/app"
 
-COPY .. .
+ARG APP_BASE_DIR
+COPY $APP_BASE_DIR .
+
+RUN apk update && \
+    apk add libpq-dev && \
+    docker-php-ext-install pdo pdo_pgsql pgsql
 
-RUN set -ex \
-  && apk --no-cache add \
-    postgresql-dev
 
 RUN docker-php-ext-install pdo pdo_pgsql
 
@@ -16,4 +18,6 @@ RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local
 
 RUN composer install
 
+RUN chmod -R 777 /app/var
+
 CMD ["php-fpm"]