A W&B Local Server is a docker image running on your infrastructure. See the following for instructions for how to provision a new instance.
Running wandb/local in AWS can be done in a few different ways.
Type Fargate in the AWS console, or go directly to the ECS management page. Click Get Started to create a new ECS service using Fargate.
Container Definition: Choose "custom" and click "Configure". From here name your container wandb-local and set the image name to wandb/local:latest. Finally add port 8080 to the port mappings.
Task Definition: Click Edit and make sure to give the task at least 8GB of ram and 4 vCPUs
Define Your Service: You'll likely want to create an ALB that can terminate SSL and forward requests to port 8080 of this service.
IAM Permissions: If you plan to use a cloud file backend (this is optional), make sure your instance has an IAM role that allows it to access S3 and subscribe to SQS.
Once the service is provisioned you can access it via your ALB or directly via the IP and PORT of your instance. Your instance is usable from boot, but for advanced options, you may now proceed to configuring your instance.
You can run wandb/local on any EC2 instance that also has Docker installed. We suggest at least 8GB of RAM and 4vCPU's. Simply run the following command to launch the container:
docker run --rm -d -v wandb:/vol -p 8080:8080 --name wandb-local wandb/local
If you're running k8s already you can easily launch wandb/local into an existing cluster. GCP always make it really simple to launch a cluster via the console.
The following k8s yaml can be customized but should serve as a basic foundation for configuring local with load balancing and SSL in GCP. The yaml below assumes you've created a static IP address named wandb-local-static-ip. You can do so with:
gcloud compute addresses create wandb-local-static-ip --global
spec:strategy:type: Recreatereplicas: 1selector:matchLabels:app: wandbtemplate:metadata:labels:app: wandbspec:volumes:- name: wandb-persistent-storagepersistentVolumeClaim:claimName: wandb-pv-claimname: wandbimagePullSecrets:- name: githubcontainers:- name: wandbimagePullPolicy: Alwaysimage: wandb/localports:- name: httpcontainerPort: 8080protocol: TCPvolumeMounts:- name: wandbmountPath: /vollivenessProbe:httpGet:path: /healthzport: httpreadinessProbe:httpGet:path: /readyport: httpresources:requests:cpu: "1500m"memory: 4Glimits:cpu: "4000m"memory: 8G---apiVersion: v1kind: Servicemetadata:name: wandb-servicespec:type: NodePortselector:app: wandbports:- protocol: TCPport: 80targetPort: 8080---apiVersion: extensions/v1beta1kind: Ingressmetadata:name: wandb-ingressannotations:kubernetes.io/ingress.global-static-ip-name: wandb-local-static-ipnetworking.gke.io/managed-certificates: wandb-local-certspec:backend:serviceName: wandb-serviceservicePort: 80---apiVersion: networking.gke.io/v1beta1kind: ManagedCertificatemetadata:name: wandb-local-certspec:domains:- REPLACE_ME---apiVersion: v1kind: PersistentVolumeClaimmetadata:name: wandb-pv-claimspec:accessModes:- ReadWriteOnceresources:requests:storage: 100Gi
You can run wandb/local on any Compute Engine instance that also has Docker installed. We suggest at least 8GB of RAM and 4vCPU's. Simply run the following command to launch the container:
docker run --rm -d -v wandb:/vol -p 8080:8080 --name wandb-local wandb/local
The following k8s yaml can be customized but should serve as a basic foundation for configuring local.
apiVersion: apps/v1kind: Deploymentmetadata:name: wandblabels:app: wandbspec:strategy:type: Recreatereplicas: 1selector:matchLabels:app: wandbtemplate:metadata:labels:app: wandbspec:volumes:- name: wandb-persistent-storagepersistentVolumeClaim:claimName: wandb-pv-claimname: wandbcontainers:- name: wandbimagePullPolicy: IfNotPresentimage: wandb/local:latestports:- name: httpcontainerPort: 8080protocol: TCPvolumeMounts:- name: wandbmountPath: /vollivenessProbe:httpGet:path: /healthzport: httpreadinessProbe:httpGet:path: /readyport: httpresources:requests:cpu: "2000m"memory: 4Glimits:cpu: "4000m"memory: 8G---apiVersion: v1kind: Servicemetadata:name: wandb-servicespec:type: NodePortselector:app: wandbports:- protocol: TCPport: 80targetPort: 8080---apiVersion: extensions/v1beta1kind: Ingressmetadata:name: wandb-ingressannotations:kubernetes.io/ingress.class: nginxspec:backend:serviceName: wandb-serviceservicePort: 80---apiVersion: v1kind: PersistentVolumeClaimmetadata:name: wandb-pv-claimspec:accessModes:- ReadWriteOnceresources:requests:storage: 100Gi
The k8s YAML above in the Azure Kubernetes Service section should work in most on-premise installations.
You can run wandb/local on any instance that also has Docker installed. We suggest at least 8GB of RAM and 4vCPU's. Simply run the following command to launch the container:
docker run --rm -d -v wandb:/vol -p 8080:8080 --name wandb-local wandb/local