docker-agent-template
v1.0.0
Published
Docker template for self-hosted agent:// protocol agents
Readme
Docker Agent Template
A ready-to-use Docker template for deploying self-hosted agent:// protocol agents. Includes a Node.js/TypeScript agent server, nginx reverse proxy, and optional Redis.
Features
- Multi-stage Dockerfile — Small production image (~180MB)
- docker-compose — Agent + nginx + optional Redis
- Agent Card — Serves
/.well-known/agent.jsonautomatically - DNS Registration — Script to register with the AGENIUM DNS system
- Health Checks — Built-in health endpoint and Docker healthcheck
- A2A Endpoints —
/messageand/taskhandlers (customizable)
Quick Start
1. Configure
cp .env.example .env
# Edit .env with your agent name, domain, etc.2. Build & Run
docker compose up -dWith Redis:
docker compose --profile with-redis up -d3. Register with DNS
docker compose exec agent bash scripts/register.sh
# Or locally:
source .env && bash scripts/register.sh4. Verify
curl http://localhost/health
curl http://localhost/.well-known/agent.json
curl -X POST http://localhost/message \
-H "Content-Type: application/json" \
-d '{"content": "Hello!"}'Development
npm install
npm run dev # Hot-reload with tsxCustomization
Edit src/handlers.ts to implement your agent's logic:
handleMessage()— Process incoming A2A messageshandleTask()— Process incoming A2A tasks
Edit src/agent-card.ts to update your agent's capabilities and metadata.
Project Structure
├── Dockerfile # Multi-stage build
├── docker-compose.yml # Agent + nginx + Redis
├── .env.example # Configuration template
├── src/
│ ├── index.ts # Server entry point
│ ├── handlers.ts # Message & task handlers (customize this!)
│ ├── agent-card.ts # /.well-known/agent.json
│ └── health.ts # Health endpoint
├── scripts/
│ ├── register.sh # DNS registration
│ └── healthcheck.sh # Container health check
└── nginx/
└── nginx.conf # Reverse proxy configDomain Registration
Supports optional domain registration on the Agenium DNS system using a marketplace API key (dom_<64 hex>). Pass api_key parameter to auto-register your agent on startup. Get your API key from the Telegram Domain Marketplace.
License
MIT
