diff --git a/docker-compose.yml b/docker-compose.yml
index 29192f93bcf4614cce9347c9893ae270f9973bea..60d593dc2fc5daf233c9f49ca409a73dd39d1f78 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -23,6 +23,10 @@ services:
       SYMPA_DB_NAME:
       SYMPA_DB_USER:
       SYMPA_DB_PASSWD:
+      REMOTES:
+    networks:
+      - postfix
+      - default
     ports:
       - '8081:80'
 
@@ -32,6 +36,8 @@ services:
       - "./sympa/shared:/etc/sympa/shared"
       - "./postfix/log:/var/log/postfix"
       - "spool_postfix:/var/spool/postfix"
+    networks:
+      - postfix
     environment:
       POSTFIX_VIRTUAL_DOMAINS:
       MAILNAME:
@@ -56,3 +62,9 @@ volumes:
   spool_postfix:
   spool_nullmailer:
   lib_sympa:
+
+networks:
+  postfix:
+    ipam:
+      config:
+        - subnet: 10.42.0.0/16
diff --git a/docker/postfix/etc/service/postfix/run.config b/docker/postfix/etc/service/postfix/run.config
index 6459d8431632eed9ce6f04d7f84226b9683241e6..b71a28ab4439c71fd6f28926928b821377a8c42c 100644
--- a/docker/postfix/etc/service/postfix/run.config
+++ b/docker/postfix/etc/service/postfix/run.config
@@ -1,2 +1,4 @@
-sed "s/POSTFIX_VIRTUAL_DOMAINS/$POSTFIX_VIRTUAL_DOMAINS/g" /etc/postfix/main.cf.append > /etc/postfix/main.cf
-cat /etc/postfix/master.cf.orig /etc/postfix/master.cf.append > /etc/postfix/master.cf
+cp /etc/postfix/main.cf.orig /etc/postfix/main.cf
+cp /etc/postfix/master.cf.orig /etc/postfix/master.cf
+sed "s/POSTFIX_VIRTUAL_DOMAINS/$POSTFIX_VIRTUAL_DOMAINS/g" /etc/postfix/main.cf.append >> /etc/postfix/main.cf
+cat /etc/postfix/master.cf.orig /etc/postfix/master.cf.append >> /etc/postfix/master.cf
diff --git a/docker/sympa/Dockerfile b/docker/sympa/Dockerfile
index 837456f10ba492ef1c74e35c02be89b6e47f54fa..10d7e6cd4035ec9525a85713dec06507231ce8d2 100644
--- a/docker/sympa/Dockerfile
+++ b/docker/sympa/Dockerfile
@@ -10,8 +10,10 @@ RUN  apt-get -y install \
 	libapache2-mod-fcgid \
 	libdbd-pg-perl \
 	libfcgi-perl \
+	nullmailer \
 	openssh-server \
-	sudo
+	sudo \
+	supervisor
 
 RUN apt-get -y install --no-install-recommends sympa
 
@@ -25,6 +27,8 @@ RUN echo "local1.* -/var/log/sympa.log" >> /etc/syslog.conf
 
 RUN cp -r /etc/sympa /etc/sympa.sample
 
+COPY supervisord.conf /etc/supervisor/conf.d
+
 COPY run.sh /opt/sympa_run.sh
 
 COPY entrypoint.sh /entrypoint
diff --git a/docker/sympa/entrypoint.sh b/docker/sympa/entrypoint.sh
index 37acf304655f17f25382d92d5f780318d3e38c64..79a2e162ea83f24278af19e53f521b77045d11c7 100755
--- a/docker/sympa/entrypoint.sh
+++ b/docker/sympa/entrypoint.sh
@@ -1,5 +1,6 @@
 #!/bin/bash
 
+## Init sympa
 # Populate volume
 if [ -z "$(ls /etc/sympa/)" ]; then
 	cp -pr /etc/sympa.sample/* /etc/sympa/
@@ -20,14 +21,17 @@ done
 cp /opt/sympa_run.sh /etc/sympa/run.sh
 chmod +x  /etc/sympa/run.sh
 # Fix permissions
-chown -R sympa:sympa /etc/sympa/
+chown -Rh :sympa /etc/sympa/*
+chown -Rh sympa:sympa /var/lib/sympa /var/spool/sympa
+chmod 771 /var/spool/sympa
+chmod 750 /etc/sympa/includes
+chmod 640 /etc/sympa/includes/*
+chown -Rh :sympa /etc/sympa/includes/*
+
 
 /bin/mkdir -p /run/sympa
 /bin/chown sympa:sympa /run/sympa
 
-# Launch services
-syslogd
-
 # So that Postfix can connect into us to deliver e-mail to mailing lists. /etc/sympa/shared is a
 # volume shared with the Postfix container which contains the SSH key that container should use
 # when connecting to this container.
@@ -41,7 +45,7 @@ rm -f /etc/sympa/shared/known_hosts
 echo -n 'sympa ' > /etc/sympa/shared/known_hosts
 cat /etc/ssh/ssh_host_rsa_key.pub >> /etc/sympa/shared/known_hosts
 # Allow sympa user to ssh
-usermod -s /bin/sh sympa
+usermod -s /etc/sympa/run.sh sympa
 
 mkdir -p /var/lib/sympa/.ssh
 echo -n 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/etc/sympa/run.sh" ' > /var/lib/sympa/.ssh/authorized_keys
@@ -50,9 +54,37 @@ cat /etc/sympa/shared/id_rsa.pub >> /var/lib/sympa/.ssh/authorized_keys
 # Remove any stale config binaries.
 rm -f /etc/sympa/*/*.bin
 
-sudo -u sympa /usr/lib/sympa/bin/sympa_automatic.pl --foreground 2>&1 &
-sudo -u sympa /usr/lib/sympa/bin/sympa_msg.pl
-/usr/bin/sympa --health_check
-mkdir -p /var/run/sshd
-/usr/sbin/sshd -D -e &
-exec apache2ctl -DFOREGROUND
+## Init apache2
+mkdir -p /var/log/apache2
+chown -R www-data:www-data /var/log/apache2
+
+## Init ssh
+mkdir /run/sshd
+
+### Init nullmailer
+chown mail /var/spool/nullmailer
+
+# If directory is empty, we restore it from our copy of initial files
+[[ $(ls -A /var/spool/nullmailer | grep -v placeholder) ]] || cp -a /var/spool/nullmailer.orig/* /var/spool/nullmailer/
+
+if [ ! -p /var/spool/nullmailer/trigger ]; then
+  rm -f /var/spool/nullmailer/trigger
+  mkfifo /var/spool/nullmailer/trigger
+fi
+chown mail:root /var/spool/nullmailer/trigger
+chmod 0622 /var/spool/nullmailer/trigger
+
+if [ -n "$ADMINADDR" ]; then
+  echo "$ADMINADDR" > /etc/nullmailer/adminaddr
+fi
+
+if [ -n "$REMOTES" ]; then
+  echo "$REMOTES" > /etc/nullmailer/remotes
+fi
+
+if [ -n "$HOSTNAME" ]; then
+  echo "$HOSTNAME" > /etc/mailname
+fi
+
+# Launch all services
+exec /usr/bin/supervisord
diff --git a/shared.yml b/shared.yml
index 3bd19769c6ee7faa72ecd7aedb4a25d515d03e88..e665647e67dfbfa7181237b29e426517917393a2 100644
--- a/shared.yml
+++ b/shared.yml
@@ -4,6 +4,7 @@ services:
   sympa:
     networks:
       - default
+      - postfix
       - dolibarr_shared
 
 networks: