
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Last Updated: 2025-10-24
Status: Production Ready for Single-Node Deployments
Version: 1.0.0
This guide covers deploying Lucia Agent Host using Docker Compose for single-node deployments. Ideal for:
For high-availability production, see Kubernetes Deployment Guide
bash# Clone the repository git clone https://github.com/seiggy/lucia-dotnet.git cd lucia-dotnet # Copy environment template cp .env.example .env # Edit configuration nano .env # Set required values: # - HOMEASSISTANT_URL: your Home Assistant URL # - HOMEASSISTANT_ACCESS_TOKEN: your HA access token # - ConnectionStrings__chat-model: your LLM provider configuration
Edit .env with your values:
bash# Home Assistant HOMEASSISTANT_URL=http://192.168.1.100:8123 HOMEASSISTANT_ACCESS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... # OpenAI (recommended for MVP) ConnectionStrings__chat-model=Endpoint=https://api.openai.com/v1;AccessKey=sk-proj-YOUR_KEY;Model=gpt-4o;Provider=openai
bash# Start all services in background docker-compose up -d # View logs docker-compose logs -f lucia # Wait for startup (typically 10-30 seconds) sleep 30 # Check health curl http://localhost:5000/health
bash# List running containers docker-compose ps # Check service health docker-compose exec lucia curl http://localhost:8080/health docker-compose exec redis redis-cli PING # View Redis data docker-compose exec redis redis-cli --raw KEYS "lucia:*"
bash# List available agents curl http://localhost:5000/api/agents # Send test message to Lucia curl -X POST http://localhost:5000/api/chat \ -H "Content-Type: application/json" \ -d '{"message": "Turn on the living room lights", "sessionId": "test-123"}'
See Configuration Reference for all variables.
env# Home Assistant HOMEASSISTANT_URL=http://homeassistant:8123 HOMEASSISTANT_ACCESS_TOKEN=<your-token> # LLM Provider (choose one) ConnectionStrings__chat-model=Endpoint=...;AccessKey=...;Model=...;Provider=openai # Redis REDIS_CONNECTION_STRING=redis://redis:6379
OpenAI (Recommended for MVP)
envConnectionStrings__chat-model=Endpoint=https://api.openai.com/v1;AccessKey=sk-proj-YOUR_KEY;Model=gpt-4o;Provider=openai
Setup:
.envOllama (Local Models - No Cost)
envConnectionStrings__chat-model=Endpoint=http://ollama:11434;AccessKey=ollama;Model=llama3.2;Provider=ollama
Setup:
ollama pull llama3.2ollama serveAzure OpenAI (Production)
envConnectionStrings__chat-model=Endpoint=https://YOUR_RESOURCE.openai.azure.com/;AccessKey=YOUR_KEY;Model=gpt-4-deployment;Provider=azureopenai
Setup:
Enable HTTPS (Production)
bash# Generate self-signed certificate openssl req -x509 -newkey rsa:4096 -keyout ./certs/key.pem -out ./certs/cert.pem -days 365 -nodes # Update .env ENABLE_HTTPS=true CERTIFICATE_PATH=/etc/lucia/certs/cert.pem CERTIFICATE_KEY_PATH=/etc/lucia/certs/key.pem # Restart services docker-compose down docker-compose up -d
Increase Resource Limits
Edit docker-compose.yml to increase resources:
yamlservices: lucia: deploy: resources: limits: cpus: '4' memory: 2G reservations: cpus: '2' memory: 1G
Persistent Redis Data
Change Redis volume driver from tmpfs to local:
yamlvolumes: redis-data: driver: local driver_opts: type: none o: bind device: /data/lucia/redis
Perfect for testing features before production deployment.
bash# Setup git clone https://github.com/seiggy/lucia-dotnet.git cd lucia-dotnet cp .env.example .env # Edit .env with test values # Start docker-compose up # Test curl http://localhost:5000/health # Cleanup (removes all data) docker-compose down -v
Resources: 1GB RAM minimum
Storage: 5GB minimum
Time to running: 5-10 minutes
Single Home Assistant instance with persistent data.
bash# Setup with persistent volumes # Edit docker-compose.yml to use local driver for redis-data volume docker-compose up -d # Verify startup docker-compose logs -f lucia # Monitor docker stats # Backup Redis data docker run --rm -v lucia-redis-data:/data -v /backup:/backup \ redis:7-alpine cp -r /data/* /backup/
Resources: 2GB RAM, 4GB disk for Redis snapshots
Time to running: 10-15 minutes
Data persistence: Yes (survives container restart)
Test production configuration before deploying to production.
bash# Create separate .env.staging cp .env.example .env.staging # Configure for staging environment # Run with staging config docker-compose -f docker-compose.yml \ -f docker-compose.staging.yml up -d # Test full automation flows curl -X POST http://localhost:5000/api/automation \ -H "Content-Type: application/json" \ -d @tests/automation-scenario-1.json # Validate logs docker-compose logs lucia | grep ERROR
bash# All services docker-compose logs # Lucia only docker-compose logs lucia # Follow real-time (tail -f equivalent) docker-compose logs -f lucia # Last 100 lines docker-compose logs --tail=100 lucia # Since specific time docker-compose logs --since 2024-10-24T10:00:00 lucia
bash# Check service status docker-compose ps # Lucia health endpoint curl http://localhost:5000/health # Redis connectivity docker-compose exec redis redis-cli PING # Full diagnostics ./infra/scripts/health-check.sh
bash# Restart Lucia (keeps Redis running) docker-compose restart lucia # Restart everything docker-compose restart # Full cycle (down/up) docker-compose down docker-compose up -d
Backup Redis Data
bash# Export Redis data docker-compose exec redis redis-cli --rdb /data/dump-backup.rdb # Copy to host docker cp lucia-redis:/data/dump-backup.rdb ./backups/ # Or backup entire volume docker run --rm -v lucia-redis-data:/data -v /backups:/backups \ redis:7-alpine tar czf /backups/redis-$(date +%Y%m%d).tar.gz -C / data
Restore Redis Data
bash# Stop services docker-compose down # Clear existing data docker volume rm lucia-redis-data # Restore from backup docker run --rm -v lucia-redis-data:/data -v /backups:/backups \ redis:7-alpine tar xzf /backups/redis-20241024.tar.gz -C / # Restart docker-compose up -d
bash# Pull latest code git pull origin main # Rebuild image docker-compose build --no-cache lucia # Restart with new image docker-compose down docker-compose up -d
bash# Check logs docker-compose logs lucia # Verify configuration ./infra/scripts/validate-deployment.sh # Common issues: # - Missing .env file: cp .env.example .env # - Invalid configuration values in .env # - Port already in use: docker-compose up -p 5010:8080
bash# Check memory docker stats # Reduce LLM max tokens # Edit .env: LLM_MAX_TOKENS=500 # Limit container memory # Edit docker-compose.yml resources section # Restart docker-compose restart lucia
bash# Check Redis logs docker-compose logs redis # Verify Redis data docker-compose exec redis redis-cli DBSIZE # Clear Redis (destructive) docker-compose exec redis redis-cli FLUSHALL # Restart Redis docker-compose restart redis
bash# Verify HA URL curl http://192.168.1.100:8123 # Test token curl -H "Authorization: Bearer YOUR_TOKEN" \ http://192.168.1.100:8123/api/ # Update .env with correct URL and token # Restart: docker-compose restart lucia
bash# Test OpenAI connection curl -H "Authorization: Bearer sk-proj-YOUR_KEY" \ https://api.openai.com/v1/models # Check token validity and quotas # Visit: https://platform.openai.com/account/billing/overview # For Ollama, verify it's running curl http://localhost:11434/api/tags
bash# Reduce LLM max tokens in .env LLM_MAX_TOKENS=500 # Reduce agent concurrency CHAT_MODEL_MAX_CONCURRENT_REQUESTS=2 # Reduce retry count AGENT_MAX_RETRIES=2
bash# Check LLM provider response times # Edit .env: LLM_TEMPERATURE=0.3 # More deterministic # For Ollama, use smaller model Model=phi3:mini # Smaller and faster than llama3.2 # Increase allocated memory # docker-compose.yml: memory: 2G
bash# Monitor Redis stats docker-compose exec redis redis-cli INFO stats # Clear old data docker-compose exec redis redis-cli EVAL "return redis.call('eval', \"return redis.call('del', unpack(redis.call('keys', 'lucia:*:expired'))))\", 0)" # Resize maxmemory in redis.conf if needed
bash# Verify .env is ignored git status # Should NOT show .env # If accidentally committed, remove: git rm --cached .env echo ".env" >> .gitignore git commit -m "Remove .env from version control"
bash# Current: 127.0.0.1:5000 (localhost only, safe) # DO NOT change to 0.0.0.0:5000 without authentication # For remote access, use: # - nginx reverse proxy with authentication # - VPN to Docker host # - Cloudflare Tunnel
bash# Every 90 days: # 1. Generate new Home Assistant token # 2. Generate new OpenAI API key # 3. Update .env # 4. Restart: docker-compose restart lucia
See Kubernetes Deployment Guide for HA setup.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务