Skip to main content

Deployment Steps: Oracle Cloud Free Tier AMD VMs

This guide outlines the step-by-step instructions to manually configure and deploy Search Valley services on 4 separate Oracle Cloud Free Tier AMD Micro VMs (1GB RAM each).

Step 1: Provision Oracle AMD Micro Instances​

  1. Sign in to your Oracle Cloud Infrastructure (OCI) Console.
  2. Navigate to Compute -> Instances and provision 4 AMD Micro Instances.
  3. Select Canonical Ubuntu 22.04 as the image for each.
  4. Download the generated private SSH keys.

Step 2: Establish Secure Networking (Tailscale)​

To avoid exposing search engines, database ports, or backend endpoints publicly:

  1. Create a free account at Tailscale.
  2. Install Tailscale on all 4 VMs:
    curl -fsSL https://tailscale.com/install.sh | sh
    sudo tailscale up
  3. Record the unique Tailscale IPs (e.g. 100.x.y.z) assigned to each VM.

Step 3: Install Docker and Docker Compose​

Execute these commands on all 4 VMs:

sudo apt-get update
sudo apt-get install -y docker.io docker-compose
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER

Note: Log out and log back in to apply Docker group permissions.

Step 4: Configure Firewall Rules​

Oracle VMs block incoming traffic by default. Allow the target port rules:

  • VM 1: Ports 8080 (block public, allow Tailscale IPs).
  • VM 2: Port 3000 (block public, allow Tailscale).
  • VM 3: Port 8000 (allow public or target proxy).
  • VM 4: Port 8001 (allow public or frontend reverse proxy).

To allow ports locally on Ubuntu iptables:

sudo iptables -I INPUT 6 -p tcp --dport <PORT> -j ACCEPT
sudo netfilter-persistent save

Step 5: Service Deployment​

VM 1 (SearXNG)​

  1. Copy /vm1-searxng directory to VM 1.
  2. Spin up containers:
    docker-compose up -d

VM 2 (Vane Brain)​

  1. Copy /vm2-vane directory to VM 2.
  2. Configure .env file pointing SEARXNG_API_URL to VM 1's Tailscale IP: SEARXNG_API_URL=http://<VM1_TAILSCALE_IP>:8080
  3. Spin up containers:
    docker-compose up -d

VM 3 (Tools API)​

  1. Copy /vm3-tools-api directory to VM 3.
  2. Run docker build and compose:
    docker-compose up -d --build

VM 4 (Backend Core)​

  1. Copy /vm4-backend directory to VM 4.
  2. Configure .env using .env.example as a template, adding your database links, secret tokens, and API credentials.
  3. Spin up all elements (Backend application, PostgreSQL instance, and Qdrant database):
    docker-compose up -d --build
  4. Run migrations:
    docker-compose exec backend-app npm run db:migrate