Key Features

Local-first Architecture
Fast, private, and no vendor lock-in

Bring Your Own API Keys
Works with OpenAI, Anthropic, Google Gemini, and Ollama

Supabase Integration
Built-in auth, database, and serverless functions

Git-based Versioning
Every edit is tracked with instant undo capability

Prerequisites

Recommended VPS Specifications

Component Requirement
Operating System Ubuntu 22.04 or 24.04 LTS
RAM Minimum 4GB (8GB+ for Ollama)
Storage 20GB+ SSD
CPU 2+ vCPUs (4+ recommended)

Required Software

  • Node.js 18.x or later
  • npm or pnpm package manager
  • Git version control
  • Desktop environment or X11 forwarding
  • AI API key (OpenAI, Anthropic, or Google)

Step 1: Initial Server Setup

Connect and Update System

Connect to your VPS and update the system:

ssh root@your-server-ip
apt update && apt upgrade -y

Create a non-root user (recommended):

adduser dyad
usermod -aG sudo dyad
su - dyad

Step 2: Install Dependencies

Install Build Tools & Node.js

Install essential build tools:

sudo apt install -y build-essential curl wget git

Install Node.js 20.x LTS:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

Verify installation:

node --version
npm --version

Install pnpm (recommended by Dyad):

npm install -g pnpm

Step 3: Set Up Desktop Environment

Note: Dyad is an Electron-based desktop application. You have several options for running it on a VPS.

Option A: Install XFCE Desktop (Lightweight)

Option B: Install Required Libraries Only

Option C: Install VNC Server

Step 4: Download and Install Dyad

Download Dyad AppImage

Download the latest Linux AppImage from GitHub:

mkdir -p ~/Applications && cd ~/Applications
wget https://github.com/dyad-sh/dyad/releases/latest/download/Dyad-linux-x86_64.AppImage
chmod +x Dyad-linux-x86_64.AppImage

Enable AppImage support:

sudo apt install -y fuse libfuse2

Alternative: Build from Source

Step 5: Configure and Launch Dyad

Launch Dyad

Launch Dyad:

./Dyad-linux-x86_64.AppImage

For X11 forwarding from your local machine:

ssh -X dyad@your-server-ip
cd ~/Applications && ./Dyad-linux-x86_64.AppImage

Initial Configuration

  1. Complete the Node.js setup if prompted
  2. Navigate to Settings and configure your AI API keys
  3. Choose your preferred AI model
  4. (Optional) Connect your GitHub account for deployment

AI Provider Options

Provider Recommended Model Notes
Google Gemini Gemini 2.5 Flash/Pro Free tier: 250 msg/day
Anthropic Claude Sonnet 4.5 Excellent for code
OpenAI GPT-4.1 Strong general purpose
Ollama (Local) Llama 3.1 Free, needs 8GB+ RAM

Step 6: Optional - Set Up Ollama for Local AI

Install Ollama

For completely private, offline AI generation:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
ollama list

In Dyad settings, select Ollama as your provider and choose your model.

Step 7: Running Dyad Apps as Services

Export and Deploy Your App

Export and run your Dyad-built app:

cd ~/dyad-apps/your-app-name
pnpm install
pnpm run build

Create a systemd service file:

sudo nano /etc/systemd/system/dyad-app.service

Add the following configuration:

[Unit]
Description=Dyad Application
After=network.target

[Service]
Type=simple
User=dyad
WorkingDirectory=/home/dyad/dyad-apps/your-app-name
ExecStart=/usr/bin/node dist/index.js
Restart=on-failure
Environment=NODE_ENV=production
Environment=PORT=3000

[Install]
WantedBy=multi-user.target

Enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable dyad-app
sudo systemctl start dyad-app
sudo systemctl status dyad-app

Step 8: Configure Nginx Reverse Proxy

Set Up Nginx with SSL

Install Nginx:

sudo apt install -y nginx

Create Nginx configuration:

sudo nano /etc/nginx/sites-available/dyad-app

Add the following:

server {
    listen 80;
    server_name your-domain.com;

location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Enable the site and restart Nginx:

sudo ln -s /etc/nginx/sites-available/dyad-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Add SSL with Certbot (Recommended):

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

Troubleshooting

AppImage Fails to Start

Display/GUI Errors

Node.js Not Detected

API Connection Errors

Additional Resources

Dyad Official Website
Dyad Documentation
GitHub Repository
RamNode Support