version: "3.7"
########################### NETWORKS
# There is no need to create any networks outside this docker-compose file.
# You may customize the network subnets (192.168.90.0/24 and 91.0/24) below as you please.
# Docker Compose version 3.5 or higher required to define networks this way.
networks:
  gl_proxy:
    name: gl_proxy
    driver: bridge
    ipam:
      config:
        - subnet: $GL_PROXY_SUBNET
        - gateway: $GL_PROXY_GATEWAY
  default:
    driver: bridge
  gl_socket_proxy:
    name: gl_socket_proxy
    driver: bridge
    ipam:
      config:
        - subnet: $GL_SOCKET_PROXY_SUBNET
        - gateway: $GL_SOCKET_PROXY_GATEWAY

########################### SECRETS
#secrets:
#  htpasswd:
#    file: $SECRETSDIR/htpasswd
#  authelia_jwt_secret:
#    file: $SECRETSDIR/authelia_jwt_secret
#  authelia_session_secret:
#    file: $SECRETSDIR/authelia_session_secret
#  authelia_storage_mysql_password:
#    file: $DOCKERDIR/secrets/authelia_storage_mysql_password
#  authelia_notifier_smtp_password:
#    file: $DOCKERDIR/secrets/authelia_notifier_smtp_password
#  authelia_duo_api_secret_key:
#    file: $DOCKERDIR/secrets/authelia_duo_api_secret_key
########################### SERVICES
services:
    librespeed:
        container_name: gl-librespeed
        image: linuxserver/librespeed:latest
        restart: unless-stopped
        networks:
            gl_proxy:
                ipv4_address: $LIBRESPEED_IP
        security_opt:
            - no-new-privileges:true
        #ports:
        #   - "$LIBRESPEED_PORT:80"
        volumes:
            - /$DOCKERDIR/appdata/librespeed:/config
        environment:
            - PUID=$PUID
            - PGID=$PGID
            - TZ=$TZ
            #- DB_TYPE=mysql
            #- DB_HOSTNAME=192.168.99.60
            #- DB_PORT=3306
            #- DB_NAME=GL_LibreSpeed 
            #- DB_USERNAME=librespeed
            #- DB_PASSWORD=librespeed
            - PASSWORD=librespeed
            - CUSTOM_RESULTS=true
        labels:
        - "traefik.enable=true"
        ## HTTP Routers
        - "traefik.http.routers.librespeed-rtr.entrypoints=https"
        - "traefik.http.routers.librespeed-rtr.rule=HostHeader(`speedtest.$DOMAINNAME0`)"
        ## Middlewares
        - "traefik.http.routers.librespeed-rtr.middlewares=chain-authelia@file"
        ## HTTP Services
        - "traefik.http.routers.librespeed-rtr.service=librespeed-svc"
        - "traefik.http.services.librespeed-svc.loadbalancer.server.port=80"