Skip to content

Repository files navigation

Dwarven General — AI‑Assisted Wargaming Prototype

Dwarven General

An LLM-powered "team of experts" sandbox with:

  • Agent CRUD: define individual AI agents
  • Team Builder: group Agents into Teams
  • Chat UI: collaborative question/answer sessions
  • PDF Ingestion: upload, chunk & vector‑embed via pgvector + MinIO
  • RAG Search: semantic search with citations

🔧 Local Development

  1. Clone the repo

    git clone https://github.com/your-org/dwarvengeneral.git
    cd dwarvengeneral
  2. Prepare environment variables

    cp .env.example .env.dev

    Edit .env.dev:

    OPENAI_API_KEY=<your key>
    TAVILY_API_KEY=<your key>
    # MinIO (S3)
    AWS_S3_ENDPOINT_URL=http://minio:9561
    AWS_ACCESS_KEY_ID=dgminio
    AWS_SECRET_ACCESS_KEY=dgminio123
    
    # Postgres (vector_db service)
    PG_USER=dg_user
    PG_PASS=dg_pass
    PG_HOST=vector_db
    PG_PORT=5432
    PG_DEFAULT_DB=postgres      # or default_store if you've initialized it
    PG_VECTOR_DB=vector_store
    
    # Redis / Celery
    CELERY_BROKER_URL=redis://redis:6379/0
    
    # Misc
    DEBUG=True
    DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
  3. Start the development stack

    docker compose -f compose.dev.yml up --build

    The web service auto-runs migrations on startup. When running for the first time, the database will be initialized automatically.

  4. Create a superuser (optional)

    To access the Django admin interface, you'll need a superuser account. Run this command in a separate terminal:

    docker compose -f compose.dev.yml exec web python manage.py createsuperuser
  5. Access the services


🚀 Deploying Changes to Linode

Unchanged...

🚀 Deploying Changes to Linode

  1. Push & SSH in

    git push origin main
    ssh your@server
    cd /path/to/dwarvengeneral
  2. Pull & env

    git pull origin main
    cp .env_EXAMPLE .env.prod
    # Edit .env.prod:
    #   DEBUG=False
    #   Set OPENAI_API_KEY, AWS_S3_*, PG_*, REDIS/CELERY, ALLOWED_HOSTS=your.domain
  3. Rebuild & start

    docker compose -f compose.prod.yml up -d --build
  4. Run migrations

    # Default models
    docker compose -f compose.prod.yml exec web python manage.py migrate --database default
    # Library vectors
    docker compose -f compose.prod.yml exec web python manage.py migrate --database vector
  5. Create admin

    docker compose -f compose.prod.yml exec web python manage.py createsuperuser
  6. Verify

    • Browse to /, /admin, /library/upload

    • Tail logs:

      docker compose -f compose.prod.yml logs -f web celery_worker nginx

📦 Common Commands

  • Rebuild everything

    docker compose -f compose.prod.yml down -v
    docker compose -f compose.prod.yml up -d --build
  • Tail logs

    docker compose logs -f web celery_worker nginx vector_db
  • Stop containers

    docker compose -f compose.prod.yml down

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages