version: '3.2'

networks:
  internet:
    driver: bridge
    ipam:
      driver: default
      config: 
        - subnet: 200.200.200.0/24
  novice:
    driver: bridge
    ipam:
      driver: default
      config: 
        - subnet: 172.16.2.0/24
  expert: 
    driver: bridge
    ipam:
      driver: default
      config: 
        - subnet: 10.10.10.0/24
  master: 
    driver: bridge
    ipam:
      driver: default
      config: 
        - subnet: 192.168.200.0/24

services:
  server_3:  
    build: docker/ssh/server_3
    image: sshd_server3
    restart: always
    hostname: server_3
    networks:
        master:
            ipv4_address: 192.168.200.201
    volumes: 
     - type: bind
       source: ./docker/files/server_3/bharmon.pub
       target: /home/bharmon/.ssh/authorized_keys
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/server_3/nope.sh
       target: /bin/nope
       volume:
         mode: "rx"
         nocopy: True

  server_2:  
    build: docker/ssh/server_2
    image: sshd_server2
    restart: always
    hostname: server_2
    networks:
        expert:
            ipv4_address: 10.10.10.109
        master:
            ipv4_address: 192.168.200.2
    volumes: 
     - type: bind
       source: ./docker/files/server_2/hmelling.pub
       target: /home/hmelling/.ssh/authorized_keys
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/server_2/nope.sh
       target: /bin/nope
       volume:
         mode: "rx"
         nocopy: True

  server_1:  
    build: docker/ssh/port_2222
    image: sshd_port_2222
    restart: always
    hostname: server_1
    networks:
        novice:
            ipv4_address: 172.16.2.31
        expert:
            ipv4_address: 10.10.10.2
    volumes: 
     - type: bind
       source: ./docker/files/server_1/wshaibel.pub
       target: /home/wshaibel/.ssh/authorized_keys
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/server_1/motd
       target: /etc/motd
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/server_1/evidence_found_lens.enc
       target: /home/wshaibel/evidence_found_lens.enc
       read_only: True
       volume:
         nocopy: True

  router_firewall:
    build: docker/ssh/user_admin
    image: sshd_user_admin
    restart: always
    hostname: router_firewall
    networks:
        internet:
            ipv4_address: 200.200.200.111
        novice:
            ipv4_address: 172.16.2.2
    volumes: 
     - type: bind
       source: ./docker/files/router_firewall/admin.pub
       target: /home/admin/.ssh/authorized_keys
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/router_firewall/nope.sh
       target: /bin/nope
       volume:
         mode: "rx"
         nocopy: True

# 40 redirectors
  redirector01:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.132
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector02:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.177
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector03:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.197
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector04:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.30
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector05:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.186
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector06:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.118
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector07:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.215
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector08:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.25
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector09:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.232
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector10:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.103
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector11:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.202
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector12:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.67
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector13:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.152
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector14:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.131
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector15:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.42
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector16:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.178
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector17:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.49
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector18:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.245
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector19:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.219
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector20:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.121
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector21:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.250
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector22:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.99
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector23:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.240
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector24:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.229
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector25:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.38
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector26:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.134
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector27:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.199
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector28:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.130
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector29:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.217
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector30:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.252
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector31:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.50
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector32:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.100
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector33:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.52
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector34:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.171
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector35:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.151
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector36:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.230
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector37:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.120
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector38:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.36
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector39:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.51
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True
  redirector40:
    build: docker/ssh/port_1337
    image: sshd_port_1337
    restart: always
    hostname: r1337
    networks:
        internet:
            ipv4_address: 200.200.200.145
    volumes:
     - type: bind
       source: ./docker/files/redirector/flag1.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/redirector/flag2.txt
       target: /tmp/flag.txt
       read_only: True
       volume:
         nocopy: True

# 20 beachheads
  bchd1:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_01
    networks:
      - internet
    ports:
      - 2001:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd2:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_02
    networks:
      - internet
    ports:
      - 2002:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd3:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_03
    networks:
      - internet
    ports:
      - 2003:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd4:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_04
    networks:
      - internet
    ports:
      - 2004:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd5:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_05
    networks:
      - internet
    ports:
      - 2005:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd6:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_06
    networks:
      - internet
    ports:
      - 2006:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       read_only: True
       target: /map.txt
       volume:
         nocopy: True
  bchd7:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_07
    networks:
      - internet
    ports:
      - 2007:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd8:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_08
    networks:
      - internet
    ports:
      - 2008:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd9:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_09
    networks:
      - internet
    ports:
      - 2009:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd10:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_10
    networks:
      - internet
    ports:
      - 2010:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd11:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_11
    networks:
      - internet
    ports:
      - 2011:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd12:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_12
    networks:
      - internet
    ports:
      - 2012:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd13:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_13
    networks:
      - internet
    ports:
      - 2013:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd14:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_14
    networks:
      - internet
    ports:
      - 2014:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd15:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_15
    networks:
      - internet
    ports:
      - 2015:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       read_only: True
       target: /root/flag.txt
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd16:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_16
    networks:
      - internet
    ports:
      - 2016:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd17:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_17
    networks:
      - internet
    ports:
      - 2017:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd18:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_18
    networks:
      - internet
    ports:
      - 2018:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd19:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_19
    networks:
      - internet
    ports:
      - 2019:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
  bchd20:
    image: gotty
    build: docker/gotty
    restart: always
    hostname: bchd_20
    networks:
      - internet
    ports:
      - 2020:8080
    volumes:
     - type: bind
       source: ./docker/files/bchd/flag.txt
       target: /root/flag.txt
       read_only: True
       volume:
         nocopy: True
     - type: bind
       source: ./docker/files/bchd/map.txt
       target: /map.txt
       read_only: True
       volume:
         nocopy: True
