version: '3'

services:
  db:
    image: postgres:14
    restart: always
    container_name: n8n_db
    networks:
      - internal
    volumes:
      - db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=n8n
      - POSTGRES_DB=n8n
      - POSTGRES_USER=n8n

  n8n:
    image: n8nio/n8n
    restart: always
    container_name: n8n
    networks:
      - internal
      - proxy
    volumes:
      - n8n:/home/node/.n8n
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.n8n-secure.entrypoints=https"
      - "traefik.http.routers.n8n-secure.rule=Host(`n8n.mrdev023.fr`)"
      - "traefik.http.routers.n8n-secure.tls=true"
      - "traefik.http.routers.n8n-secure.tls.certresolver=sslResolver"
      # - "traefik.http.routers.whoami-secure.service=whoami"
      # - "traefik.http.services.whoami.loadbalancer.server.port=9002"
      - "traefik.docker.network=proxy"
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_HOST=db
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=n8n

volumes:
  n8n:
  db:

networks:
  internal:
  proxy:
    external: true
