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:
# 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
#!/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
# 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:
# 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
# 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
# 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:
- Create DataVault - Set up your vault in the meinGPT dashboard
- Installation - Deploy DataVault with Docker Compose
- Verification - Test your deployment
- Operations - Learn maintenance procedures