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
- Sign in to your Oracle Cloud Infrastructure (OCI) Console.
- Navigate to Compute -> Instances and provision 4 AMD Micro Instances.
- Select Canonical Ubuntu 22.04 as the image for each.
- Download the generated private SSH keys.
Step 2: Establish Secure Networking (Tailscale)
To avoid exposing search engines, database ports, or backend endpoints publicly:
- Create a free account at Tailscale.
- Install Tailscale on all 4 VMs:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up - 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)
- Copy
/vm1-searxngdirectory to VM 1. - Spin up containers:
docker-compose up -d
VM 2 (Vane Brain)
- Copy
/vm2-vanedirectory to VM 2. - Configure
.envfile pointingSEARXNG_API_URLto VM 1's Tailscale IP:SEARXNG_API_URL=http://<VM1_TAILSCALE_IP>:8080 - Spin up containers:
docker-compose up -d
VM 3 (Tools API)
- Copy
/vm3-tools-apidirectory to VM 3. - Run docker build and compose:
docker-compose up -d --build
VM 4 (Backend Core)
- Copy
/vm4-backenddirectory to VM 4. - Configure
.envusing.env.exampleas a template, adding your database links, secret tokens, and API credentials. - Spin up all elements (Backend application, PostgreSQL instance, and Qdrant database):
docker-compose up -d --build - Run migrations:
docker-compose exec backend-app npm run db:migrate