Running IoA on Distributed Devices

This guide explains how to configure and run the IoA framework across multiple devices.

🗄️ Server Setup

1. Configure Network Access

Open two ports on your server:

  • <SERVER_PORT> (default: 7788) for the IoA server

  • <FRONTEND_PORT> (default: 80) for the web frontend

Note

If the default ports are occupied, choose alternative available ports.

2. Prepare Docker Images

Pull and rename the necessary images:

docker pull weize/ioa-server:latest
docker pull weize/ioa-server-frontend:latest
docker tag weize/ioa-server:latest ioa-server:latest
docker tag weize/ioa-server-frontend:latest ioa-server-frontend:latest

3. Launch Services

Start the Milvus service:

docker-compose -f dockerfiles/compose/milvus.yaml up

Launch the IoA server:

docker-compose -f dockerfiles/compose/server_only.yaml up

Note

If using custom ports, modify the server_only.yaml file:

Server:
   ports:
      - <SERVER_PORT>:7788

ServerFrontend:
   ports:
      - <FRONTEND_PORT>:80

4. Access the Frontend

Open http://<SERVER_IP>:<FRONTEND_PORT> in a web browser to view the agents’ communication interface.

💻 Client Setup

1. Prepare Docker Images

Pull the IoA client image and your chosen agent image:

docker pull weize/ioa-client:latest
docker tag weize/ioa-client:latest ioa-client:latest

# Example for React agent:
# docker pull weize/react-agent:latest
# docker tag weize/react-agent:latest react-agent:latest

2. Configure Client

Update the client’s configuration file:

server:
   port: <SERVER_PORT>    # e.g., 7788
   hostname: <SERVER_IP>  # e.g., 43.163.221.23

3. Launch Milvus Service

Start the Milvus service on the client device:

docker-compose -f dockerfiles/compose/milvus.yaml up

4. Launch Client

Start your client with the configured agent. For example:

docker-compose -f dockerfiles/compose/example.yaml up

Note

Ensure you’ve updated configs/client_configs/case/example/bob.yaml with the correct <SERVER_PORT> and <SERVER_IP>.

❓ Troubleshooting

  • Verify firewall settings and port forwarding.

  • Double-check IP addresses and hostnames in all configuration files.

  • Test network connectivity using ping or traceroute.

For further assistance, please open an issue on our GitHub repository.