## 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:

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

Create a non-root user (recommended):

```bash
adduser dyad
usermod -aG sudo dyad
su - dyad
```

## Step 2: Install Dependencies

### Install Build Tools & Node.js

Install essential build tools:

```bash
sudo apt install -y build-essential curl wget git
```

Install Node.js 20.x LTS:

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

Verify installation:

```bash
node --version
npm --version
```

Install pnpm (recommended by Dyad):

```bash
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:

```bash
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:

```bash
sudo apt install -y fuse libfuse2
```

### Alternative: Build from Source

## Step 5: Configure and Launch Dyad

### Launch Dyad

Launch Dyad:

```bash
./Dyad-linux-x86_64.AppImage
```

For X11 forwarding from your local machine:

```bash
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:

```bash
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:

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

Create a systemd service file:

```bash
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:

```bash
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:

```bash
sudo apt install -y nginx
```

Create Nginx configuration:

```bash
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:

```bash
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):

```bash
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](https://dyad.sh/)  
[Dyad Documentation](https://dyad.sh/docs)  
[GitHub Repository](https://github.com/dyad-sh/dyad)  
[RamNode Support](/content/support/index.html)
