algo

Deploy from Windows

You have three options to run Algo on Windows:

  1. PowerShell Script (Recommended) - Automated WSL wrapper for easy use
  2. Windows Subsystem for Linux (WSL) - Direct Linux environment access
  3. Git Bash/MSYS2 - Unix-like shell environment (limited compatibility)

The PowerShell script provides the easiest Windows experience by automatically using WSL when needed:

git clone https://github.com/trailofbits/algo
cd algo
.\algo.ps1

How it works:

Requirements:

Option 2: Windows Subsystem for Linux (WSL)

For users who prefer a full Linux environment or need advanced features:

Prerequisites

Setup WSL

  1. Install WSL from PowerShell (as Administrator):
    wsl --install -d Ubuntu-22.04
    
  2. After restart, open Ubuntu and create your user account

Install Algo in WSL

cd ~
git clone https://github.com/trailofbits/algo
cd algo
./algo

Important: Don’t install Algo in /mnt/c directory due to file permission issues.

WSL Configuration (if needed)

You may encounter permission issues if you clone Algo to a Windows drive (like /mnt/c/). Symptoms include:

If you see these errors, configure WSL:

  1. Edit /etc/wsl.conf to allow metadata:
    [automount]
    options = "metadata"
    
  2. Restart WSL completely:
    wsl --shutdown
    
  3. Fix directory permissions for Ansible:
    chmod 744 .
    

Why this happens: Windows filesystems mounted in WSL (/mnt/c/) don’t support Unix file permissions by default. Git can’t set executable bits, and Ansible refuses to load configs from “world-writable” directories for security.

After deployment, copy configs to Windows:

cp -r configs /mnt/c/Users/$USER/

Option 3: Git Bash/MSYS2

If you have Git for Windows installed, you can use the included Git Bash terminal:

git clone https://github.com/trailofbits/algo
cd algo
./algo

Pros:

Cons:

Note: This approach is not recommended due to Ansible’s Unix requirements. Use WSL-based options instead.