Files
nerd-monitor/DOCKER_COMPOSE.md
Ducky SSH User b87c61ea99
Some checks failed
Build and Release / build (push) Failing after 37s
Build and Release / docker-build (push) Failing after 1m13s
Add Docker Compose quick reference guide
- Document common docker-compose commands
- Provide configuration examples
- Include troubleshooting section
- Add environment variables reference table
- Include production tips and best practices
2025-12-20 05:57:20 +00:00

3.0 KiB

Docker Compose Quick Reference

Quick Start

Full Stack (Server + Agent)

docker-compose up

Access dashboard: http://localhost:8080 Login: admin / admin

Server Only

docker-compose up server

Agent Only

SERVER=your-server:8080 docker-compose up agent

Common Commands

# Start services in background
docker-compose up -d

# Stop all services
docker-compose down

# View logs
docker-compose logs -f

# View logs for specific service
docker-compose logs -f server
docker-compose logs -f agent

# Restart services
docker-compose restart

# Remove volumes/data
docker-compose down -v

# Rebuild images
docker-compose build --no-cache

Configuration

Change Server Credentials

Edit docker-compose.yml:

environment:
  USERNAME: "myuser"
  PASSWORD: "mysecurepassword"

Change Agent Reporting Interval

environment:
  INTERVAL: "30s"  # Report every 30 seconds instead of 15

Set Custom Agent ID

environment:
  AGENT_ID: "my-machine"

Run Multiple Agents

# Terminal 1: Start server
docker-compose up server

# Terminal 2: Run agent 1
docker-compose run --name agent1 -e AGENT_ID=machine1 agent

# Terminal 3: Run agent 2
docker-compose run --name agent2 -e AGENT_ID=machine2 agent

Docker Commands

View Running Containers

docker-compose ps

Execute Commands in Container

# Connect to server
docker-compose exec server sh

# View server config
docker-compose exec server ps aux

View Resource Usage

docker stats

Troubleshooting

Agent can't connect to server

# Check if server is running and healthy
docker-compose ps

# Check server logs
docker-compose logs server

# Check if containers are on same network
docker network inspect nerd-monitor

Clear Everything and Start Fresh

docker-compose down -v
docker-compose build --no-cache
docker-compose up

Port Already in Use

If port 8080 is already in use, edit docker-compose.yml:

ports:
  - "8090:8080"  # Maps host port 8090 to container port 8080

Environment Variables Reference

Server

Variable Default Description
ADDR 0.0.0.0 Bind address
PORT 8080 Server port
USERNAME admin Admin username
PASSWORD admin Admin password

Agent

| Variable | Default | Description | | SERVER | server:8080 | Server address | | INTERVAL | 15s | Reporting interval | | AGENT_ID | (auto) | Agent identifier |

Production Tips

  1. Change credentials: Update USERNAME and PASSWORD in docker-compose.yml
  2. Use external volumes: Add volume mounts for data persistence
  3. Set resource limits: Uncomment resource limits in docker-compose.yml
  4. Enable restart policies: Already set to unless-stopped
  5. Use environment files: Create .env file for sensitive data:
    USERNAME=myuser
    PASSWORD=mysecurepass
    
    Then in docker-compose.yml: env_file: .env