Cloud Providers#

This guide explains how to deploy the Argilla Server on different cloud providers.

Amazon Web Services (AWS)#

Setup an AWS profile#

The aws command cli must be installed. Then, type:

aws configure --profile argilla

and follow command instructions. For more details, visit AWS official documentation.

Once the profile is created (a new entry should appear in file ~/.aws/config), you can activate it via setting environment variable:

export AWS_PROFILE=argilla

Create docker machine#

docker-machine create --driver amazonec2 \
--amazonec2-root-size 60 \
--amazonec2-instance-type t2.large \
--amazonec2-open-port 80 \
--amazonec2-ami ami-0b541372 \
--amazonec2-region eu-west-1 \
argilla-aws

Available ami depends on region. The provided ami is available for eu-west regions

Verify machine creation#

$>docker-machine ls

NAME                   ACTIVE   DRIVER      STATE     URL                        SWARM   DOCKER     ERRORS
argilla-aws             -        amazonec2   Running   tcp://52.213.178.33:2376           v20.10.7

Save assigned machine ip#

In our case, the assigned ip is 52.213.178.33

Connect to remote docker machine#

To enable the connection between the local docker client and the remote daemon, we must type following command:

eval $(docker-machine env argilla-aws)

Define a docker-compose.yaml#

# docker-compose.yaml
version: "3"

services:
 argilla:
   image: argilla/argilla-server:v1.3.0
   ports:
     - "80:80"
   environment:
     ELASTICSEARCH: <elasticsearch-host_and_port>
   restart: unless-stopped

Pull image#

docker-compose pull

Launch docker container#

docker-compose up -d

Accessing Argilla#

In our case http://52.213.178.33

Azure#

The easiest way to deploy Argilla on Azure is using the Azure Container Instances (ACI) service. This service allows you to run containers in a serverless way, without the need to manage the underlying infrastructure. ACI integrates with Docker compose files, so you can easily deploy your application using the same file you use for local development.

1. Install Docker with compose#

Install th latest Docker with the compose method described as described in the official documentation. Note that this is not the independent docker-compose application.

2. Login to Azure#

Using docker and az CLI, login to Azure:

docker login azure

You can install the az CLI using the official documentation.

3. Create an Azure context#

Create a separate context with Azure credentials and the subscription where you want to deploy the Argilla Server:

docker context create aci azurecontext --subscription-id <subscription-id> --resource-group <resource-group> --location <location>

You can also switch back to the default context with:

docker context use default

4. Deploy the Argilla Server#

To deploy the Argilla Server, you can use the Docker Compose file provided in the Argilla repository and the docker compose up command:

wget -O docker-compose.yml https://raw.githubusercontent.com/argilla-io/argilla/main/docker-compose.yaml && docker-compose up -d

This guide is adapted from this blog post by Ben Burtenshaw. Thereโ€™s also an official tutorial on Microsoft Learn.

Google Cloud Platform (GCP)#

Coming soon!

๐Ÿš’ If youโ€™d like support with this and/or want to contribute this gude, join the Slack Community