DataVault Deployment

Local Deployment

Simple local DataVault setup with Hugging Face embeddings

Local Setup: Deploy DataVault on your local machine with local files and Hugging Face embedding models.

Setup

Create your project directory:

mkdir datavault-local && cd datavault-local
mkdir -p {config,data,documents}

Configuration

Environment File

config/vault.env
VAULT_ID=your-vault-id-from-dashboard
VAULT_SECRET=your-vault-secret-from-dashboard
MEINGPT_URL=https://api.meingpt.com

Main Configuration

config/app_config.yaml
version: 1.0
meingpt_url: $MEINGPT_URL

vault:
  id: $VAULT_ID
  secret: $VAULT_SECRET
  standalone_mode: false
  data_dir: ./tmp
  ingestion_interval: 300
  tasks_batch_size: 3
  chunk_size: 256
  chunk_overlap: 26

weaviate:
  connection_type: local
  host: weaviate
  port: 8001
  grpc_host: weaviate
  grpc_port: 50051
  api_key: ""

embedding_model:
  provider: "huggingface_local"
  model: "sentence-transformers/all-mpnet-base-v2"
  rpm: 1000
  tpm: 100000

logging:
  log_level: "INFO"
  log_to_file: true
  log_file_path: "logs/app.log"
  uvicorn_log_file_path: "logs/uvicorn.log"

data_pools:
  - id: local-documents
    type: local
    base_path: ./documents

Docker Compose

docker-compose.yaml
services:
  vault:
    image: meingpt/vault:latest
    ports:
      - 8080:8080
    depends_on:
      - weaviate
    networks:
      - vault_network
    volumes:
      - ./config/app_config.yaml:/app/src/vault/config/app_config.yaml:ro
      - ./data:/data/vault
      - ./documents:/app/documents:ro
    environment:
      - VAULT_CONFIG_FILE_PATH=/app/src/vault/config/app_config.yaml
    env_file:
      - ./config/vault.env

  piko:
    image: ghcr.io/andydunstall/piko:latest
    command:
      - agent
      - http
      - ${VAULT_ID}
      - vault:8080
      - --connect.url
      - https://piko.deploy.selectcode.dev
    env_file:
      - ./config/vault.env
    networks:
      - vault_network

  weaviate:
    image: cr.weaviate.io/semitechnologies/weaviate:1.28.3
    command:
      - --host
      - 0.0.0.0
      - --port
      - '8001'
      - --scheme
      - http
    expose:
      - 8001
      - 50051
    volumes:
      - weaviate_data:/var/lib/weaviate
    restart: on-failure:3
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      ENABLE_API_BASED_MODULES: 'true'
      CLUSTER_HOSTNAME: 'node1'
    ports:
      - 8001:8001
      - 50051:50051
    networks:
      - vault_network

volumes:
  weaviate_data:

networks:
  vault_network:

Deploy

  1. Add documents to the documents/ folder
  2. Start services: docker compose up -d
  3. Check health: curl http://localhost:8080/health
  4. Monitor logs: docker compose logs -f vault

Troubleshooting

  • Check service status: docker compose ps
  • View logs: docker compose logs vault
  • Test Weaviate: curl http://localhost:8001/v1/.well-known/ready
  • Restart services: docker compose restart

That's it. Your local DataVault will process documents from the documents/ folder using local Hugging Face embeddings.