version: "3.7"

services:
  nginx:
    image: docker.io/nginxproxy/nginx-proxy:latest
    container_name: nginx
    networks:
      - internal_network
      - external_network
    dns:
      - 89.32.32.32
    ports:
      - "80:80"
      - "443:443"
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - /opt/jupyter_site/nginx/certs:/etc/nginx/certs:ro
      - /opt/jupyter_site/nginx/conf:/etc/nginx/conf.d
      - /opt/jupyter_site/nginx/dhparam:/etc/nginx/dhparam
      - /opt/jupyter_site/nginx/html:/usr/share/nginx/html
      - /opt/jupyter_site/nginx/vhost:/etc/nginx/vhost.d
      - /var/run/docker.sock:/tmp/docker.sock:ro
    environment:
      - ENABLE_IPV6=true
    restart: unless-stopped

  acme:
    image: docker.io/nginxproxy/acme-companion:latest
    container_name: acme
    networks:
      - external_network
    dns:
      - 89.32.32.32
    volumes:
      - /opt/jupyter_site/nginx/acme:/etc/acme.sh
      - /opt/jupyter_site/nginx/certs:/etc/nginx/certs:rw
      - /opt/jupyter_site/nginx/conf:/etc/nginx/conf.d
      - /opt/jupyter_site/nginx/dhparam:/etc/nginx/dhparam
      - /opt/jupyter_site/nginx/html:/usr/share/nginx/html
      - /opt/jupyter_site/nginx/vhost:/etc/nginx/vhost.d:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - NGINX_PROXY_CONTAINER=nginx
      - DEFAULT_EMAIL=drive@sunet.se
    depends_on:
      - nginx
    restart: unless-stopped

  web:
    image: docker.sunet.se/drive/jupyter-site:<%= @site_version %>
    container_name: web
    restart: always
    networks:
      - internal_network
    ports:
      - "127.0.0.1:3000:3000"
    dns:
      - 89.32.32.32
    environment:
      - VIRTUAL_HOST=<%= @domain %>
      - VIRTUAL_PATH=/
      - VIRTUAL_PORT=3000
      - LETSENCRYPT_HOST=<%= @domain %>

networks:
  external_network:
  internal_network:
    internal: true