Sign inSign up

ookla/ooklaserver

By ookla

•Updated about 1 month ago

OoklaServer Image

Image
1

6.2K

ookla/ooklaserver repository overview

⁠OoklaServer Image

⁠Overview

Docker image for OoklaServer. Examples of how to use this image are included for Docker Compose, Docker Run, and a basic Helm Install (see Ookla Helm Repository⁠ for more information).

⁠Configuration Options

⁠Volumes
VolumeDescription
/opt/ooklaserver/dataVolume for OoklaServer configuration data and CA bundle.
/opt/ooklaserver/certsVolume for OoklaServer server certificate and private key.
⁠Environment Variables
VariableDescriptionDefault
OOKLASERVER_USEROoklaServer userooklaserver
OOKLASERVER_GROUPOoklaServer groupooklaserver
PROPERTIES_FILEOoklaServer properties fileOoklaServer.properties
⁠Files
FileVolumeDescription
OoklaServer Properties File/opt/ooklaserver/dataTo include your own properties file rather than Helm Chart values.yaml, include the file in the volume mount reference in the docker run as PROPERTIES_FILE=OoklaServer.properties.
CA Certificates/opt/ooklaserver/dataTo include your CA certificates, include the file in the volume mount and reference in the properties file as openSSL.server.caBundle = /opt/ooklaserver/data/<your-ca-bundle>.
Server Certificate/opt/ooklaserver/certsTo include your certificate, include the file in the volume mount and reference in the properties file as openSSL.server.certificateFile = /opt/ooklaserver/certs/<your-cert>.
Server Private Key/opt/ooklaserver/certsTo include your private key, include the file in the volume mount and reference in the properties file as openSSL.server.privateKeyFile = /opt/ooklaserver/certs/<your-key>.
⁠Network

The container is configured to use the host network mode. This is to ensure that the container has direct access to the network interfaces on the host. This is recommended for high performance and low latency tests.

⁠Performance Considerations

Containerized deployments should be performed on bare metal installations of Linux. Explicitly, we do not support running OoklaServer on Docker instances on non-Linux based operating systems such as Windows or MacOS due to these relying on an intermediary Linux virtual machine layer that is used to host the containers.

Docker containers have several networking driver types to deploy with. Some of these are not as performant as others. Performant choices are usually one of the following:

  • Host
  • IPVLAN
  • MACVLAN

Avoid bridge or overlay network drivers. If NAT is unavoidable, be sure to allocate sufficient resources so that the NAT operations do not occur on the same core as the Speedtests, if possible. NATing on another platform entirely is usually best, such as a firewall layer. (Avoiding any operations other than Speedtest on the active cores in a system generally lowers latency. Even small amounts of latency will magnify substantial differences at high speeds.)

While it is possible to run OoklaServer in a virtual environment, it is not recommended to do so when measuring high bandwidth connections if bare metal or container deployments are available.

If virtualization is a requirement, know that high speed tests often require an additional layer of tuning which is usually “fairly heavy” due to the required complete allocation of virtualized resources in order to maintain low latency. That is to say, one should dedicate 100% of the core resources allocated to the OoklaServer Virtual Machine such that no other virtual machine can run on those cores. These may be under a control called something such as CPU and Memory reservation, or resource allocation. It may also be required to configure PCIe pass through NICs to the OoklaServer virtual machine in order to achieve the desired performance and latency.

⁠Usage

⁠Docker Compose
services:
  ooklaserver:
    image: ookla/ooklaserver:latest
    container_name: ooklaserver
    restart: unless-stopped
    volumes:
      - ${PWD}:/opt/ooklaserver/data
      - ${PWD}:/opt/ooklaserver/certs
    environment:
      # All environment variables are optional
      # OoklaServer user and group
      OOKLASERVER_USER: ooklaserver
      OOKLASERVER_GROUP: ooklaserver

      # Properties file configuration
      # Default is Ookla provided default
      PROPERTIES_FILE: OoklaServer.properties

    network_mode: host

volumes:
  ooklaserver_config:
  ooklaserver_certs:
⁠Docker Run
docker run -d \
  --name ooklaserver \
  -v $(pwd):/opt/ooklaserver/data \
  -v $(pwd):/opt/ooklaserver/certs \
  -e OOKLASERVER_USER=ooklaserver \ # Optional
  -e OOKLASERVER_GROUP=ooklaserver \ # Optional
  -e PROPERTIES_FILE=OoklaServer.properties \ # Optional
  --network host \
  ookla/ooklaserver:latest
⁠Helm

Helm charts are available in the Ookla Helm Repository⁠.

To install OoklaServer using the default values, run the following command:

helm upgrade --install ooklaserver .

For more information on using Helm, see the Helm Documentation⁠ and the OoklaServer Helm Repository README.

Tag summary

Content type

Image

Digest

sha256:a135d7fa1…

Size

14.4 MB

Last updated

about 1 month ago

docker pull ookla/ooklaserver