Skip to content

actyze/dashboard-docker

Repository files navigation

Actyze - Local Deployment with Docker Compose

Run Actyze on your local machine using Docker Compose. Perfect for evaluation, testing, and local deployments.


Quick Start

Get Actyze running in 5 minutes:

# 1. Clone this repository
git clone https://github.com/actyze/dashboard-docker.git
cd dashboard-docker

# 2. Configure your environment
cp env.example .env
nano .env  # Add your LLM API key

# 3. Start Actyze
./start.sh

# 4. Access Actyze
open http://localhost:3000

Default Login: nexus_admin / admin


What is Actyze?

Actyze is an AI-powered analytics platform that lets you query databases using natural language. No SQL knowledge required.

Key Capabilities:

  • Ask questions in plain English (supports 50+ languages)
  • Automatic SQL generation powered by AI
  • Connect to multiple data sources (PostgreSQL, MySQL, MongoDB, Snowflake, BigQuery, and more)
  • Upload CSV/Excel files for instant analysis
  • Role-based access control
  • Query caching for fast performance

Prerequisites

System Requirements:

  • Docker Desktop 20.10+ (or Docker Engine 20.10+)
  • Docker Compose 2.0+
  • 8GB+ RAM available for Docker
  • 10GB+ disk space

Required Credentials:

  • LLM API key (Anthropic Claude, OpenAI, Perplexity, or Groq)
  • Optional: Your database connection details

Verify Docker is ready:

docker --version  # Should be 20.10.0+
docker-compose --version  # Should be 2.0.0+

Architecture

Actyze runs as five containerized services, all pulled from Docker Hub:

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   Frontend      │────▶│   Nexus API      │────▶│   PostgreSQL    │
│   (React:3000)  │     │   (FastAPI:8000) │     │   (5432)        │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                               │
                               │
                      ┌────────┴────────┐
                      ▼                 ▼
            ┌──────────────────┐  ┌──────────────────┐
            │  Schema Service  │  │  Trino Engine    │
            │  (FAISS:8001)    │  │  (8081)          │
            └──────────────────┘  └──────────────────┘
                      │
                      ▼
            ┌──────────────────┐
            │  Your LLM        │
            │  (Claude/GPT-4)  │
            └──────────────────┘

Services:

  • Frontend (port 3000): Web interface
  • Nexus (port 8000): API and AI orchestration
  • Schema Service (port 8001): Intelligent table recommendations
  • PostgreSQL (port 5432): Application database
  • Trino (port 8081): Connects to your data sources

Installation

Step 1: Clone Repository

git clone https://github.com/actyze/dashboard-docker.git
cd dashboard-docker

Step 2: Configure Environment

# Copy the example configuration
cp env.example .env

# Edit with your settings
nano .env

Required Configuration:

# AI Provider (REQUIRED) - Choose one provider's API key
ANTHROPIC_API_KEY=your-api-key-here
EXTERNAL_LLM_MODEL=claude-sonnet-4-20250514

# Database Password (REQUIRED)
POSTGRES_PASSWORD=choose-a-secure-password

Optional - Connect Your Database:

# If you want to use external Trino
TRINO_HOST=your-trino-server.com
TRINO_PORT=443
TRINO_SSL=true
TRINO_SSL_VERIFY=false  # Set to false for self-signed certificates

See Configuration Guide for all options.

Step 3: Start Actyze

# Start all services
./start.sh

# Wait for all services to become healthy (30-60 seconds)
# You'll see: "All services are healthy!"

Step 4: Access Actyze

Open your browser:

Login with default credentials:

  • Username: nexus_admin
  • Password: admin

Change the default password immediately after first login.


Configuration

AI Providers

Actyze supports 100+ AI providers via LiteLLM. Just set the provider's API key and model name - everything else is automatic.

Anthropic Claude (Recommended):

ANTHROPIC_API_KEY=sk-ant-xxxxx
EXTERNAL_LLM_MODEL=claude-sonnet-4-20250514

OpenAI:

OPENAI_API_KEY=sk-xxxxx
EXTERNAL_LLM_MODEL=gpt-4o

Google Gemini:

GEMINI_API_KEY=your-key
EXTERNAL_LLM_MODEL=gemini/gemini-pro

Perplexity:

PERPLEXITY_API_KEY=pplx-xxxxx
EXTERNAL_LLM_MODEL=perplexity/sonar-reasoning-pro

Groq (Free tier available):

GROQ_API_KEY=gsk_xxxxx
EXTERNAL_LLM_MODEL=groq/llama-3.3-70b-versatile

Enterprise Gateway (for IT-managed AI):

EXTERNAL_LLM_MODE=openai-compatible
EXTERNAL_LLM_BASE_URL=https://llm-gateway.company.com/v1/chat/completions
EXTERNAL_LLM_API_KEY=your-enterprise-token
EXTERNAL_LLM_MODEL=your-internal-model

See Full Provider List:

Database Connections

Use Local PostgreSQL (Default):

  • Included with Actyze
  • No additional configuration needed
  • Starts automatically with ./start.sh

Use External Trino:

TRINO_HOST=your-trino-server.com
TRINO_PORT=443
TRINO_USER=your-username
TRINO_PASSWORD=your-password
TRINO_SSL=true
TRINO_SSL_VERIFY=false  # Set to false for self-signed certificates
TRINO_CATALOG=your-catalog
TRINO_SCHEMA=your-schema

Configure Trino to connect to your databases: See trino/ directory for connector configurations (PostgreSQL, MySQL, MongoDB, Snowflake, etc.)

Performance Settings

# Query caching (recommended)
CACHE_ENABLED=true
CACHE_QUERY_MAX_SIZE=100      # Cache up to 100 queries
CACHE_QUERY_TTL=1800           # Cache for 30 minutes

# Logging
LOG_LEVEL=INFO  # Options: DEBUG, INFO, WARNING, ERROR
DEBUG=false     # Set to true for detailed logs

Usage

Basic Commands

# Start Actyze
./start.sh

# Stop Actyze (preserves data)
./stop.sh

# Stop and remove all data
./stop.sh --clean

# View logs
docker-compose logs -f

# View logs for specific service
docker-compose logs -f nexus

# Check service status
docker-compose ps

Deployment Profiles

Choose which services to run:

Local (Default) - All services:

./start.sh
# Runs: PostgreSQL, Trino, Schema Service, Nexus, Frontend

External Databases - Connect to your existing infrastructure:

# Configure external databases in .env first
./start.sh --profile external
# Runs: Schema Service, Nexus, Frontend
# Connects to: Your external PostgreSQL and Trino

Mixed - Local PostgreSQL + External Trino:

./start.sh --profile postgres-only

Using Actyze

1. Login

2. Connect Your Data

  • Click "Data Sources"
  • Add Trino connection or upload CSV/Excel files

3. Ask Questions

  • Type your question in natural language
  • Examples:
    • "What were our total sales last quarter?"
    • "Show top 10 customers by revenue"
    • "List all orders from this week"
  • Click "Generate SQL" and "Execute"

4. Save and Share

  • Save queries for later
  • Create dashboards
  • Share with team members (configure RBAC in Settings)

Troubleshooting

Services Won't Start

Check Docker resources:

docker info | grep "Total Memory"
# Should show 8GB+ available

# Increase in Docker Desktop: Preferences → Resources → Memory

Check logs:

docker-compose logs nexus
docker-compose logs schema-service

Port Conflicts

Error: "port is already allocated"

Solution:

# Find what's using the port
lsof -i :3000

# Stop the conflicting service or change ports in docker-compose.yml

Database Connection Failed

# Verify configuration
cat .env | grep POSTGRES

# Reset and restart
./stop.sh --clean
./start.sh

LLM API Errors

Check your API key:

cat .env | grep API_KEY

Test the API key directly:

# For Anthropic
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: YOUR_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-4-20250514","max_tokens":100,"messages":[{"role":"user","content":"test"}]}'

Slow Performance

Enable caching:

# In .env
CACHE_ENABLED=true

Use faster LLM models:

# Groq is very fast (and free)
EXTERNAL_LLM_PROVIDER=groq
EXTERNAL_LLM_MODEL=mixtral-8x7b-32768

Get Help

Check service health:

curl http://localhost:3000          # Frontend
curl http://localhost:8000/health   # Nexus
curl http://localhost:8001/health   # Schema Service

Review logs:

docker-compose logs -f

Documentation:

Support:


Updating Actyze

# Stop current version
./stop.sh

# Pull latest images
docker-compose pull

# Start updated version
./start.sh

Docker Compose automatically pulls the latest images from Docker Hub when you restart.


Production Deployment

This Docker Compose setup is designed for local use, evaluation, and testing.

For production deployments, use Kubernetes with Helm charts:


Additional Documentation


Related Resources


Run Actyze locally. Query your data with natural language. Get insights instantly.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors