Get Wildbox running in 5 minutes
๐ข Early Evaluation Phase: Wildbox is actively seeking community feedback, bug reports, and feature suggestions. Report issues and share feedback to help us build the mature platform the community needs.
Before starting, ensure you have installed:
Check installations:
docker --version
docker compose --version
git --version
git clone https://github.com/fabriziosalmi/wildbox.git
cd wildbox
Create environment files for each service:
# Copy example environment files
cp .env.example .env
# For sensitive data, use secure values:
# Edit .env and add your actual credentials
nano .env
Essential environment variables:
# Database
DATABASE_URL=postgresql+asyncpg://postgres:secure_password@postgres:5432/wildbox
# API Gateway
API_KEY=your-secure-api-key-here
# Claude (Anthropic) โ optional; enables AI threat analysis
ANTHROPIC_API_KEY=sk-ant-your-actual-key
# JWT Security
JWT_SECRET_KEY=your-secure-jwt-secret-min-32-chars
# Redis
REDIS_URL=redis://redis:6379/0
# Start all services in the background
docker compose up -d
# Check service status
docker compose ps
# View logs
docker compose logs -f
# Stop everything
docker compose down
# Start only the core (gateway, identity, tools API) plus datastores
docker compose up -d postgres wildbox-redis gateway identity api
# Or start individual services
docker compose up -d postgres wildbox-redis
# Wait for databases to be ready
sleep 10
# Then start application services
docker compose up -d identity api
Once services are running, verify theyโre healthy:
# Check API health
curl http://localhost:8000/health
curl http://localhost:8001/health
curl http://localhost:8006/health
# Expected response:
# {"status":"healthy","timestamp":"...","version":"..."}
Open your browser and navigate to:
| Service | URL | Default Credentials |
|---|---|---|
| Dashboard | http://localhost:3000 | Set via INITIAL_ADMIN_EMAIL/INITIAL_ADMIN_PASSWORD in .env |
| API Docs | http://localhost:8000/docs | N/A |
# Get initial admin token
curl -X POST http://localhost:8001/auth/jwt/login \
-H "Content-Type: application/json" \
-d '{
"email": "$INITIAL_ADMIN_EMAIL",
"password": "$INITIAL_ADMIN_PASSWORD"
}'
# Use the returned token for API requests
curl -H "Authorization: Bearer $TOKEN" http://localhost:8000/v1/dashboard
# Access the identity service shell
docker compose exec identity bash
# Reset password
python -c "
from app.models import User
from passlib.context import CryptContext
pwd_context = CryptContext(schemes=['bcrypt'])
hashed = pwd_context.hash('new-password-here')
# Update in database manually or through admin script
"
# All services
docker compose logs -f
# Specific service
docker compose logs -f identity
docker compose logs -f agents
# Last 100 lines
docker compose logs --tail=100 identity
# For PostgreSQL-based services
docker compose exec identity \
alembic upgrade head
docker compose exec data \
alembic upgrade head
# Access a service shell
docker compose exec identity bash
docker compose exec agents bash
# Run a specific command
docker compose exec -T postgres psql -U postgres -d wildbox -c "SELECT COUNT(*) FROM users;"
# Get authentication token
TOKEN=$(curl -s -X POST http://localhost:8001/auth/jwt/login \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=$INITIAL_ADMIN_EMAIL&password=$INITIAL_ADMIN_PASSWORD" | jq -r '.access_token')
# Make authenticated requests
curl -H "Authorization: Bearer $TOKEN" http://localhost:8000/v1/indicators
curl -H "Authorization: Bearer $TOKEN" http://localhost:8006/v1/analyze \
-H "Content-Type: application/json" \
-d '{"ioc": {"type": "ip", "value": "8.8.8.8"}}'
# Get overall health
curl http://localhost:8000/health | jq .
# Get detailed service status
curl http://localhost:8000/stats | jq .
# Check PostgreSQL
docker compose exec postgres pg_isready -U postgres
# Check Redis
docker compose exec wildbox-redis redis-cli ping
# Check container resource usage
docker stats
# Check disk usage
docker system df
# Check error logs
docker compose logs identity
# Rebuild images
docker compose build --no-cache
# Restart services
docker compose restart
# Full reset (WARNING: Deletes data)
docker compose down -v
docker compose up -d
# Verify services are running
docker compose ps
# Check if ports are open
netstat -an | grep 8000
lsof -i :8000
# Test connectivity
curl -v http://localhost:8000/health
# Check PostgreSQL logs
docker compose logs postgres
# Verify database exists
docker compose exec postgres psql -U postgres -l
# Check Redis connection
docker compose exec wildbox-redis redis-cli info
# Clean up unused images/volumes
docker system prune -a
# Check disk usage
du -sh ./*
# Reduce log retention
docker compose down
# Edit docker-compose.yml and adjust volumes
After successful deployment:
For production use:
# 1. Secure all credentials in .env.production
cp .env .env.production
nano .env.production
# 2. Use production docker compose
docker compose -f docker-compose.yml \
-f docker-compose.prod.yml \
up -d
# 3. Enable SSL/TLS on the gateway
# Configure certificates for the gateway service (see haproxy/ and docker-compose.prod.yml)
# 4. Set up monitoring and alerting
# Configure Prometheus retention and Grafana alerts
# 5. Enable backups
# Set up automated PostgreSQL and Redis backups
# 6. Security hardening
# Review and implement SECURITY_REMEDIATION_CHECKLIST.md
| Command | Purpose |
|---|---|
docker compose up -d |
Start all services |
docker compose down |
Stop all services |
docker compose logs -f |
View live logs |
docker compose ps |
Show running services |
docker compose exec <service> bash |
Access service shell |
docker compose restart <service> |
Restart specific service |
docker compose build |
Rebuild images |
Happy Securing!
For questions or issues, refer to the comprehensive README.md or open an issue on GitHub.