diff --git a/.env b/.env_default
similarity index 85%
rename from .env
rename to .env_default
index af8d447eb50128bf20fdad70b34a11946fe0b4dd..d0a85c567c16a1bd519f4e1cb1b79ab8e3e2cd01 100644
--- a/.env
+++ b/.env_default
@@ -50,13 +50,18 @@ APP_DEBUG=1
 
 # If this fails, replace ${MYSQL_DATABASE:-rekallfrwsmember} by rekallfrwsmember
 # and do the same for the other variables
-MYSQL_DATABASE=${MYSQL_DATABASE:-rekallfrwsmember}
-MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root}
-MYSQL_USER=${MYSQL_USER:-rekallfrwsmember}
-MYSQL_PASSWORD=${MYSQL_PASSWORD:-sm4SyZVPu6wpjZfg}
+MYSQL_DATABASE=rekallfrwsmember
+MYSQL_ROOT_PASSWORD=root
+MYSQL_USER=rekallfrwsmember
+MYSQL_PASSWORD=sm4SyZVPu6wpjZfg
 
 BY_PASS_CODE=ed156b9188ecddf0c556d5712f0a84cc
 
 # Use smtp or mail in production
 MAILER_DSN=null://null
-SYMFONY_SECRET=0f817363a768f111a17d2522b8d7e2d72cf738b1
\ No newline at end of file
+SYMFONY_SECRET=0f817363a768f111a17d2522b8d7e2d72cf738b1
+LEGACY_SRC_SHARED=./capsule-prototype
+LEGACY_URL=http://legacy/
+LEGACY_URL_EXTERNAL=http://localhost:8081/legacy/
+# Should be the path part of the above url
+LEGACY_EXTERNAL_PREFIX=/legacy
diff --git a/.gitignore b/.gitignore
index 3f4745d48a901089a092d27d880209c3cfe99cfd..888011e43cde1d2dfede595c1f49b281f5843429 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,9 @@ yarn-error.log
 ###< squizlabs/php_codesniffer ###
 
 .phpcd
+.*.sw?
+mysql
+log
+/legacy/*/
+capsule-prototype/
+.env
diff --git a/README.md b/README.md
index b824014f4da0d44d121e7b8ce84567c546ac0950..6f7781b21e0818a5318e10b27b9f447d3722773a 100644
--- a/README.md
+++ b/README.md
@@ -8,11 +8,9 @@ Copy the file `.env_default` to `.env` and adapt it to your needs
 Run the following commands
 
 ```bash
-# Clone the docker stack
-git clone https://gitlab.tetras-libre.fr/rekall/docker-stack-new
-cd docker-stack-new
-# Clone the symfony app
-git clone https://gitlab.tetras-libre.fr/rekall/memorekall-member-new app
+git clone https://gitlab.tetras-libre.fr/rekall/memorekall-member-new
+cd memorekall-member-new
+git clone https://gitlab.tetras-libre.fr/rekall/capsule-prototype
 # Build and start the containers
 docker-compose up --build
 # In another terminal
diff --git a/docker-compose.override.yml b/docker-compose.override.yml
deleted file mode 100644
index c042a707906699e34200ca4725b7c7cd281b8c59..0000000000000000000000000000000000000000
--- a/docker-compose.override.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '3'
-
-services:
-###> symfony/mailer ###
-  mailer:
-    image: schickling/mailcatcher
-    ports: [1025, 1080]
-###< symfony/mailer ###
-
-###> doctrine/doctrine-bundle ###
-  database:
-    ports:
-      - "5432"
-###< doctrine/doctrine-bundle ###
diff --git a/docker-compose.yml b/docker-compose.yml
index a80a8cf90ad60ac55c7da7bc6ab499c5592e7e51..d4c3bf9c4266d899606b20c9f9bfbab896075af4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,21 +1,42 @@
-version: '3'
+version: "3.4"
 
 services:
-###> doctrine/doctrine-bundle ###
-  database:
-    image: postgres:${POSTGRES_VERSION:-13}-alpine
+  mysql:
+    image: mysql:5.6
     environment:
-      POSTGRES_DB: ${POSTGRES_DB:-app}
-      # You should definitely change the password in production
-      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ChangeMe}
-      POSTGRES_USER: ${POSTGRES_USER:-symfony}
+      - MYSQL_DATABASE
+      - MYSQL_ROOT_PASSWORD
+      - MYSQL_USER
+      - MYSQL_PASSWORD
     volumes:
-      - db-data:/var/lib/postgresql/data:rw
-      # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
-      # - ./docker/db/data:/var/lib/postgresql/data:rw
-###< doctrine/doctrine-bundle ###
+      - "./mysql:/var/lib/mysql:rw"
+      - "./docker/mysql/init_db_d:/docker-entrypoint-initdb.d"
+  memorekall-member:
+    build: ./docker/symfony
+    depends_on:
+      - mysql
+      - legacy
+    environment:
+      - MYSQL_DATABASE
+      - MYSQL_USER
+      - MYSQL_PASSWORD
+    volumes:
+      - $PWD:/sites/memorekall/www/web_dev:rw
+    networks:
+      - default
+      - legacy
+    ports:
+      - "${MEMOREKALL_MEMBER_PORT}:80"
 
-volumes:
-###> doctrine/doctrine-bundle ###
-  db-data:
-###< doctrine/doctrine-bundle ###
+  legacy:
+    build: ./docker/legacy
+    depends_on:
+      - mysql
+    volumes:
+      - $PWD/legacy:/sites/memorekall/www/web_legacy:rw
+      - $PWD/log:/sites/memorekall/www/log:rw
+      - ${LEGACY_SRC_SHARED}:/sites/memorekall/www/web_legacy/shared:ro
+    networks:
+      - legacy
+networks:
+  legacy:
diff --git a/docker/legacy/Dockerfile b/docker/legacy/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..da9bd3fe9933669887e433e80abfabb7ab0c8d75
--- /dev/null
+++ b/docker/legacy/Dockerfile
@@ -0,0 +1,29 @@
+FROM php:7.4-apache
+
+COPY front.conf /etc/apache2/sites-enabled/000-default.conf
+
+RUN apt-get update && apt-get -y upgrade && apt-get update && apt-get install -y \
+    libcurl4-openssl-dev \
+    libfreetype6-dev \
+    libjpeg62-turbo-dev \
+    libonig-dev \
+    libpng-dev \
+    libpng-dev \
+    libzip-dev \
+    zlib1g-dev
+
+RUN docker-php-ext-configure gd --with-freetype --with-jpeg
+
+RUN docker-php-ext-install -j$(nproc) \
+  gd \
+  mbstring \
+  curl \
+  zip
+
+RUN mkdir -p /sites/memorekall/www
+
+WORKDIR /sites/memorekall/www
+
+VOLUME web_legacy
+VOLUME log
+RUN mkdir -p tmp
diff --git a/docker/legacy/front.conf b/docker/legacy/front.conf
new file mode 100644
index 0000000000000000000000000000000000000000..cb8390c34bc58b6e3fb34b0c210a97367f4bae91
--- /dev/null
+++ b/docker/legacy/front.conf
@@ -0,0 +1,28 @@
+<VirtualHost *:80>
+	ServerName legacy.memorekall.com
+	ServerAlias www.legacy.memorekall.com
+
+	ServerAdmin webmaster@localhost
+	DocumentRoot /sites/memorekall/www/web_legacy
+	<Directory /sites/memorekall/www/web_legacy>
+	            Options Indexes FollowSymLinks
+	            AllowOverride None
+	            Require all granted
+
+	            DirectoryIndex index.php, index.html
+    </Directory>
+
+        # uncomment the following lines if you install assets as symlinks
+        # or run into problems when compiling LESS/Sass/CoffeeScript assets
+        # <Directory /var/www/project>
+        #     Options FollowSymlinks
+        # </Directory>
+
+        # optionally disable the fallback resource for the asset directories
+        # which will allow Apache to return a 404 error when files are
+        # not found instead of passing the request to Symfony
+
+
+	ErrorLog /sites/memorekall/www/log/legacy_errors.log
+	CustomLog /sites/memorekall/www/log/legacy_access.log combined
+</VirtualHost>
diff --git a/docker/symfony/Dockerfile b/docker/symfony/Dockerfile
new file mode 100755
index 0000000000000000000000000000000000000000..3a8946a399460bb61c49d93c466ca96ca79b16cb
--- /dev/null
+++ b/docker/symfony/Dockerfile
@@ -0,0 +1,103 @@
+FROM php:7.4-apache
+
+USER root
+
+RUN apt-get update && apt-get -y upgrade
+
+RUN apt-get update && apt-get install -y \
+    gnupg \
+    wget \
+    apt-transport-https \
+    git \
+    unzip \
+    nodejs \
+    npm \
+    python2
+
+ENV PHP_MEMORY_LIMIT=512M
+
+#!/bin/bash
+# To add this repository please do:
+
+COPY addPhpRepository.sh .
+RUN bash addPhpRepository.sh
+
+RUN a2enmod rewrite headers proxy proxy_http
+
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq \
+    libcurl4-openssl-dev \
+    libfreetype6-dev \
+    libjpeg62-turbo-dev \
+    libonig-dev \
+    libpng-dev \
+    libpng-dev \
+    libzip-dev \
+    zlib1g-dev \
+    libxml2-dev \
+    libicu-dev
+
+RUN docker-php-ext-configure gd --with-freetype --with-jpeg
+
+RUN docker-php-ext-install -j$(nproc) \
+    mbstring \
+    gd \
+    pdo_mysql \
+    mysqli \
+    curl \
+    zip \
+    pdo \
+    ctype \
+    iconv \
+    json \
+    session \
+    simplexml \
+    tokenizer
+
+# Install opcache extension for PHP accelerator
+RUN docker-php-ext-install opcache \
+    && docker-php-ext-enable opcache \
+    && rm -rf /var/lib/apt/lists/* \
+    && apt-get autoremove -y
+
+# Install internationalization extension
+RUN BUILD_DEPS="g++ libicu-dev" && \
+    apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt-get install -yq \
+    $BUILD_DEPS \
+	&& docker-php-ext-configure intl \
+    && docker-php-ext-install intl \
+    && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $BUILD_DEPS \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN echo 'date.timezone = "UTC"' >> /usr/local/etc/php/php.ini
+RUN echo 'opcache.max_accelerated_files = 20000' >> /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
+
+
+RUN echo short_open_tag=off >> /usr/local/etc/php/php.ini
+
+# Install composer
+COPY install_composer.sh /bin
+RUN chmod u+x /bin/install_composer.sh
+RUN /bin/install_composer.sh
+
+# Install xdebug
+RUN pecl install xdebug-2.9.0 \
+    && docker-php-ext-enable xdebug
+
+COPY xdebug.ini $PHP_INI_DIR/conf.d/
+
+# Composer is global
+RUN mv composer.phar /usr/local/bin/composer && curl -sS https://get.symfony.com/cli/installer | bash && cp /root/.symfony/bin/symfony /usr/local/bin/symfony
+
+ENV COMPOSER_MEMORY_LIMIT=-1
+
+RUN mkdir -p /sites/memorekall/www/web_dev
+
+WORKDIR /sites/memorekall/www/web_dev
+
+COPY symfony.conf /etc/apache2/sites-enabled/000-default.conf
+
+COPY entrypoint.sh /entrypoint.sh
+
+ENTRYPOINT ["bash","/entrypoint.sh"]
+
diff --git a/docker/symfony/addPhpRepository.sh b/docker/symfony/addPhpRepository.sh
new file mode 100755
index 0000000000000000000000000000000000000000..60eca107c21c2f6740c4526ec1489d067818947c
--- /dev/null
+++ b/docker/symfony/addPhpRepository.sh
@@ -0,0 +1,8 @@
+if [ "$(whoami)" != "root" ]; then
+    SUDO=sudo
+fi
+
+${SUDO} apt-get -y install apt-transport-https lsb-release ca-certificates curl
+${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
+${SUDO} sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+${SUDO} apt-get update
\ No newline at end of file
diff --git a/docker/symfony/entrypoint.sh b/docker/symfony/entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..662c8b3cb43b3e568d2f71d9bc5ea5e5ee0bb9bc
--- /dev/null
+++ b/docker/symfony/entrypoint.sh
@@ -0,0 +1,39 @@
+base_dir=/sites/memorekall/www
+pushd $base_dir
+pushd $base_dir/web_dev
+
+# Install dependencies using local composer not global because of php 5.5
+composer install
+
+popd
+
+# Create required dirs
+DIRS="web_dev/var/log web_dev/var/cache"
+for d in $DIRS; do
+    mkdir -p $d
+done
+
+popd
+
+xdebug_conf="$PHP_INI_DIR/conf.d/xdebug.ini"
+npm install
+if [ "$ENV" == "prod" ]; then
+    rm  $xdebug_conf
+    npm run build
+else
+    if [[ "$(uname -r)" =~ "linuxkit" ]]; then
+        # Connect back does not work in non Linux, deactivate it and use host.docker.internal url
+        sed  -i -e "s/xdebug.remote_connect_back=1/xdebug.remote_connect_back=0/" $xdebug_conf
+        echo "xdebug.remote_host = host.docker.internal" >> $xdebug_conf
+    fi
+    npm run watch &
+fi
+
+# Fix permissions
+for d in var vendor assets public node_modules legacy log src; do
+    chown -R :www-data $base_dir/web_dev/$d
+    chmod -R g+w $base_dir/web_dev/$d
+done
+chown -R 999:999 $base_dir/web_dev/mysql
+
+apache2ctl -DFOREGROUND
diff --git a/docker/symfony/install_composer.sh b/docker/symfony/install_composer.sh
new file mode 100755
index 0000000000000000000000000000000000000000..585031d99f63d6c5a854d7a1d12762d0032e5731
--- /dev/null
+++ b/docker/symfony/install_composer.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
+php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
+ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
+
+if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
+then
+    >&2 echo 'ERROR: Invalid installer checksum'
+    rm composer-setup.php
+    exit 1
+fi
+
+php composer-setup.php --quiet
+RESULT=$?
+rm composer-setup.php
+exit $RESULT
\ No newline at end of file
diff --git a/docker/symfony/symfony.conf b/docker/symfony/symfony.conf
new file mode 100755
index 0000000000000000000000000000000000000000..0820a92b829ae1bbf454c44449fd605d3564bdb6
--- /dev/null
+++ b/docker/symfony/symfony.conf
@@ -0,0 +1,18 @@
+<VirtualHost *:80>
+    ServerName project.memorekall.com
+	ServerAlias www.project.memorekall.com
+
+   DocumentRoot /sites/memorekall/www/web_dev/public
+   DirectoryIndex /index.php
+   <Directory /sites/memorekall/www/web_dev/public>
+                 Require all granted
+                 AllowOverride None
+                 Order Allow,Deny
+                 Allow from All
+
+                 FallbackResource /index.php
+                 RewriteEngine on
+   </Directory>
+   ErrorLog /sites/memorekall/www/web_dev/log/memorekall_member_error.log
+   CustomLog /sites/memorekall/www/web_dev/log/memorekall_member.log combined
+</VirtualHost>
diff --git a/docker/symfony/xdebug.ini b/docker/symfony/xdebug.ini
new file mode 100755
index 0000000000000000000000000000000000000000..654ab2354e7bd09050a67296b11502fdc7d74c4f
--- /dev/null
+++ b/docker/symfony/xdebug.ini
@@ -0,0 +1,3 @@
+xdebug.remote_port=9000
+xdebug.remote_enable=1
+xdebug.remote_connect_back=1
diff --git a/tools/git-hooks/pre-commit b/tools/git-hooks/pre-commit
index 8328e81adfd3c0676604258a42a24434234510f4..003df608e1afd2484f1f0f7f1b0a511e4b9e9e63 100755
--- a/tools/git-hooks/pre-commit
+++ b/tools/git-hooks/pre-commit
@@ -5,10 +5,10 @@ GREENBOLD='\033[0;32;1m'
 BOLD='\033[1m'
 NORMAL='\033[0m'
 if [ ! -z "$(which docker-compose)" ]; then
-    composer="docker-compose -f ../docker-compose.yml exec -T memorekall-member composer"
-else
-    composer=composer
+    docker="docker-compose exec -T memorekall-member"
 fi
+composer="$docker composer"
+npm="$docker npm"
 
 echo -e "\n ${BOLD} Starting Unit and Functional Tests...\n ${NORMAL}"
 $composer tests
@@ -39,11 +39,11 @@ else
 fi
 
 echo -e "\n ${BOLD} Starting ESLint... \n ${NORMAL}"
-npm run lint
+$npm run lint
 if [ $? != 0 ]; then
 	echo -e "\n ${REDBOLD} ESLint verification failed \n ${NORMAL}"
 	exit 1;
 else
 	echo -e "\n ${GREENBOLD} Your code passed JS linter successfully! \n
 	\n Committing your changes now... \n ${NORMAL}"
-fi
\ No newline at end of file
+fi