diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig
index 291ef3888e29f1e640948374b2a168bf5eafcb4f..e43ed02f4fec02312876138748cdd2f5cf054e30 100644
--- a/templates/docker-compose.yml.twig
+++ b/templates/docker-compose.yml.twig
@@ -630,3 +630,106 @@ services:
       traefik.http.routers.unlighthouse-{{ projectname }}.tls.certresolver: lakedrops
 {% endif %}
 {% endif %}
+{% if invoiceninja.enable|default(0) %}
+
+  in-db:
+    image: 'mysql:5'
+    environment:
+      - APP_ENV=production
+      - 'APP_URL=https://invoice-{{ projectdomain }}'
+      - 'APP_KEY={{ invoiceninja.api_key }}'
+      - APP_DEBUG=false
+      - REQUIRE_HTTPS=false
+      - PHANTOMJS_PDF_GENERATION=false
+      - PDF_GENERATOR=snappdf
+      - QUEUE_CONNECTION=database
+      - 'TRUSTED_PROXIES=*'
+      - IS_DOCKER=true
+      - DB_HOST=in-db
+      - DB_PORT=3306
+      - DB_DATABASE=ninja
+      - DB_USERNAME=ninja
+      - DB_PASSWORD=ninja
+      - IN_USER_EMAIL={{ invoiceninja.admin_name }}
+      - IN_PASSWORD={{ invoiceninja.admin_pass }}
+      - MAIL_MAILER=smtp
+      - MAIL_HOST={{ invoiceninja.mail.host }}
+      - MAIL_PORT={{ invoiceninja.mail.port }}
+      - MAIL_USERNAME={{ invoiceninja.mail.user }}
+      - 'MAIL_PASSWORD={{ invoiceninja.mail.pass }}'
+      - MAIL_ENCRYPTION={{ invoiceninja.mail.security }}
+      - MAIL_FROM_ADDRESS={{ invoiceninja.mail.user }}
+      - "MAIL_FROM_NAME='{{ invoiceninja.mail.fromname }}'"
+      - MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
+      - MYSQL_USER=ninja
+      - MYSQL_PASSWORD=ninja
+      - MYSQL_DATABASE=ninja
+    volumes:
+      - '/etc/timezone:/etc/timezone:ro'
+      - '/etc/localtime:/etc/localtime:ro'
+      - '{{ projectrootfiles }}/in/mysql/data:/var/lib/mysql:rw,delegated'
+  in-app:
+    image: 'invoiceninja/invoiceninja:5'
+    depends_on:
+      - in-db
+    environment:
+      - APP_ENV=production
+      - 'APP_URL=https://invoice-{{ projectdomain }}'
+      - 'APP_KEY={{ invoiceninja.api_key }}'
+      - APP_DEBUG=false
+      - REQUIRE_HTTPS=false
+      - PHANTOMJS_PDF_GENERATION=false
+      - PDF_GENERATOR=snappdf
+      - QUEUE_CONNECTION=database
+      - 'TRUSTED_PROXIES=*'
+      - IS_DOCKER=true
+      - DB_HOST=in-db
+      - DB_PORT=3306
+      - DB_DATABASE=ninja
+      - DB_USERNAME=ninja
+      - DB_PASSWORD=ninja
+      - IN_USER_EMAIL={{ invoiceninja.admin_name }}
+      - IN_PASSWORD={{ invoiceninja.admin_pass }}
+      - MAIL_MAILER=smtp
+      - MAIL_HOST={{ invoiceninja.mail.host }}
+      - MAIL_PORT={{ invoiceninja.mail.port }}
+      - MAIL_USERNAME={{ invoiceninja.mail.user }}
+      - 'MAIL_PASSWORD={{ invoiceninja.mail.pass }}'
+      - MAIL_ENCRYPTION={{ invoiceninja.mail.security }}
+      - MAIL_FROM_ADDRESS={{ invoiceninja.mail.user }}
+      - "MAIL_FROM_NAME='{{ invoiceninja.mail.fromname }}'"
+      - MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword
+      - MYSQL_USER=ninja
+      - MYSQL_PASSWORD=ninja
+      - MYSQL_DATABASE=ninja
+    volumes:
+      - '/etc/timezone:/etc/timezone:ro'
+      - '/etc/localtime:/etc/localtime:ro'
+      - '{{ projectrootfiles }}/in/hosts:/etc/hosts:ro'
+      - '{{ projectrootfiles }}/in/app/public:/var/www/app/public:rw,delegated'
+      - '{{ projectrootfiles }}/in/app/storage:/var/www/app/storage:rw,delegated'
+  in-web:
+    image: nginx
+    networks:
+      - traefik-public
+      - default
+    depends_on:
+      - in-app
+    volumes:
+      - '/etc/timezone:/etc/timezone:ro'
+      - '/etc/localtime:/etc/localtime:ro'
+      - '{{ projectrootfiles }}/in/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf:ro'
+      - '{{ projectrootfiles }}/in/app/public:/var/www/app/public:ro'
+    labels:
+      traefik.enable: 'true'
+      traefik.docker.network: traefik-public
+{% if basicauth.enable %}
+      traefik.http.middlewares.invoice_ninja-{{ projectname }}-auth.basicauth.users: {{ basicauth.code }}
+{% endif %}
+      'traefik.http.services.invoice_ninja{{ projectname }}.loadbalancer.server.port': 80
+      'traefik.http.routers.invoice_ninja{{ projectname }}.rule': Host(`invoice-{{ projectdomain }}`)
+{% if drupal.live|default(0) or traefik.usessl %}
+      'traefik.http.routers.invoice_ninja{{ projectname }}.tls': 'true'
+      'traefik.http.routers.invoice_ninja{{ projectname }}.tls.certresolver': lakedrops
+{% endif %}
+{% endif %}