Install an agent
The agent runs on your side, next to the file server. It connects back to your workspace over HTTPS and does the SFTP, FTP, FTPS, SMB and NFS work.
Create the agent
- Open Agents and create an agent. The deploy guide opens with the agent ID and the agent secret.
- Copy the secret now. It is shown once; a guide you reopen later shows
<agent-secret>. - Decide the public HTTPS address where xEvolve can reach the agent. You enter it as
XEVOLVE_AGENT_URL.
Settings
| Variable | Value |
|---|---|
AGENT_SECRET | The agent secret from the guide. |
XEVOLVE_API_URL | Your workspace address, for example https://<workspace>.xevolve.io. Do not use api.xevolve.io: it has no workspace and answers workspace_not_ready. |
XEVOLVE_API_TOKEN | The agent secret again. |
XEVOLVE_AGENT_ID | The agent ID from the guide. |
XEVOLVE_AGENT_URL | The public URL where xEvolve reaches the agent. |
PORT | 3100 |
Docker
docker run -d --name xevolve-agent \
-p 3100:3100 \
-e AGENT_SECRET=<agent-secret> \
-e XEVOLVE_API_URL=https://<workspace>.xevolve.io \
-e XEVOLVE_API_TOKEN=<agent-secret> \
-e XEVOLVE_AGENT_ID=<agent-id> \
-e XEVOLVE_AGENT_URL=https://your-agent-url.example.com \
--restart unless-stopped \
ghcr.io/spot-techno/xevolve-agent:latestAzure Web App for Containers
az group create -n xevolve-agent-rg -l westeurope
az appservice plan create -n xevolve-agent-plan -g xevolve-agent-rg \
--is-linux --sku B1
az webapp create -n xevolve-agent -g xevolve-agent-rg \
-p xevolve-agent-plan \
-i ghcr.io/spot-techno/xevolve-agent:latest
az webapp config appsettings set -n xevolve-agent -g xevolve-agent-rg \
--settings \
AGENT_SECRET=<agent-secret> \
XEVOLVE_API_URL=https://<workspace>.xevolve.io \
XEVOLVE_API_TOKEN=<agent-secret> \
XEVOLVE_AGENT_ID=<agent-id> \
XEVOLVE_AGENT_URL=https://xevolve-agent.azurewebsites.net \
WEBSITES_PORT=3100AWS ECS (Fargate)
This assumes a VPC, a subnet and an ECS cluster named xevolve already exist.
aws ecs register-task-definition --cli-input-json file://task-def.json
aws ecs create-service \
--cluster xevolve \
--service-name xevolve-agent \
--task-definition xevolve-agent \
--desired-count 1 \
--launch-type FARGATE \
--network-configuration "awsvpcConfiguration={subnets=[<subnet-id>],securityGroups=[<security-group-id>],assignPublicIp=ENABLED}"The file task-def.json:
{
"family": "xevolve-agent",
"containerDefinitions": [{
"name": "agent",
"image": "ghcr.io/spot-techno/xevolve-agent:latest",
"portMappings": [{"containerPort": 3100}],
"environment": [
{"name": "AGENT_SECRET", "value": "<agent-secret>"},
{"name": "XEVOLVE_API_URL", "value": "https://<workspace>.xevolve.io"},
{"name": "XEVOLVE_API_TOKEN", "value": "<agent-secret>"},
{"name": "XEVOLVE_AGENT_ID", "value": "<agent-id>"},
{"name": "XEVOLVE_AGENT_URL", "value": "https://your-agent-url.example.com"}
]
}],
"cpu": "256", "memory": "512",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"]
}Check that it works
- Open Agents and choose Test agent on the agent card. This checks that xEvolve can reach the agent address.
- Wait one minute. The agent sends a heartbeat every 60 seconds and the card shows when it was last seen.
- Add or edit an SFTP, FTP, FTPS, SMB or NFS connection, select this agent and test the connection.
Test agent does not check the agent secret. A wrong secret shows up as a missing heartbeat.