DataVault Deployment

Prerequisites & Setup

System requirements and Docker installation for DataVault deployment

Before You Start: This guide ensures your system is ready for DataVault deployment. Complete all steps before proceeding to vault creation.

System Requirements Check

Before installing DataVault, verify your system meets these requirements:

System Check Commands
# Check available RAM
free -h
# Required: 4-8 GB depending on data volume

# Check disk space  
df -h
# Required: At least 20GB free space

# Check CPU cores
nproc
# Recommended: 2+ cores for optimal performance

Minimum Requirements:

  • RAM: 4 GB (8 GB recommended for large datasets)
  • Storage: 20 GB free space (more for document storage)
  • CPU: 2+ cores recommended
  • GPU: Optional (required only for local embedding models)

Docker Installation

Already have Docker? Skip to Network Configuration if Docker is already installed and working.

Choose your operating system for installation instructions:

Ubuntu/Debian Installation

install-docker-ubuntu.sh
#!/bin/bash
# Complete Docker installation script for Ubuntu/Debian

echo "Installing Docker on Ubuntu/Debian..."

# Update package index
sudo apt-get update

# Install prerequisites
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# Add Docker's official GPG key
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
    sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Set up Docker repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker Engine
sudo apt-get update
sudo apt-get install -y \
    docker-ce \
    docker-ce-cli \
    containerd.io \
    docker-buildx-plugin \
    docker-compose-plugin

# Start and enable Docker service
sudo systemctl start docker
sudo systemctl enable docker

# Add current user to docker group (avoid sudo)
sudo usermod -aG docker $USER

echo "Docker installation completed!"
echo "Please log out and back in for group changes to take effect."

# Verify installation
docker --version
docker compose version

Run the installation script:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Add your user to docker group:

sudo usermod -aG docker $USER

Log out and back in (or restart your terminal)

Verify installation:

docker run hello-world

Post-Installation Setup

After Docker installation, complete these setup steps:

1. Verify Docker Installation

Docker Verification
# Check Docker daemon is running
docker info

# Test with hello-world container
docker run hello-world

# Check Docker Compose
docker compose version

# Test Docker Compose
echo "version: '3.8'
services:
  test:
    image: alpine
    command: echo 'Docker Compose works!'" > test-compose.yml

docker compose -f test-compose.yml up
docker compose -f test-compose.yml down
rm test-compose.yml

2. Configure Docker (Optional)

For production deployments, configure Docker resource limits:

Configure Docker Resources
# Create or edit Docker daemon config
sudo mkdir -p /etc/docker

# Configure memory and CPU limits
cat << EOF | sudo tee /etc/docker/daemon.json
{
  "default-ulimits": {
    "memlock": {
      "Hard": -1,
      "Name": "memlock",
      "Soft": -1
    }
  },
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

# Restart Docker to apply changes
sudo systemctl restart docker

Network Configuration

Ensure your network allows the required connections:

Firewall Configuration

Configure UFW Firewall
# Allow Docker daemon
sudo ufw allow 2376/tcp

# Allow outbound HTTPS (should be default)
sudo ufw allow out 443/tcp

# Allow Docker internal networking
sudo ufw allow in on docker0

# Enable firewall
sudo ufw enable

# Check status
sudo ufw status

Network Connectivity Test

Final Network Test
# Test all required connections
echo "Testing network connectivity..."

# Test meinGPT connectivity
if curl -s --max-time 10 https://vault-proxy.meingpt.com > /dev/null; then
    echo "✅ meinGPT connectivity: OK"
else
    echo "❌ meinGPT connectivity: FAILED"
fi

# Test Docker Hub connectivity
if docker pull alpine:latest > /dev/null 2>&1; then
    echo "✅ Docker Hub connectivity: OK"
    docker rmi alpine:latest > /dev/null 2>&1
else
    echo "❌ Docker Hub connectivity: FAILED"
fi

# Test DNS resolution
if nslookup vault-proxy.meingpt.com > /dev/null 2>&1; then
    echo "✅ DNS resolution: OK"
else
    echo "❌ DNS resolution: FAILED"
fi

echo "Network test completed!"

Troubleshooting

Next Steps

Prerequisites Complete! Your system is now ready for DataVault deployment.

Now that your system is prepared:

  1. Create DataVault - Set up your vault in the meinGPT dashboard
  2. Installation - Deploy DataVault with Docker Compose
  3. Verification - Test your deployment
  4. Operations - Learn maintenance procedures