---
title: Static Sites
---

Deploy HTML, CSS, and JavaScript sites without Git or build steps. Upload via the dashboard or SFTP.

## Creating a Static Site

1. Go to your project → **Add Service** → **Upload / Drag & Drop**
2. Enter a site name and deployment slug
3. Optionally upload a ZIP file
4. Select a plan
5. Click **Create**

If you don't upload a file, a branded placeholder page is deployed automatically. You can upload your files later.

## Uploading Files

### Via Dashboard (Files Tab)

Navigate to the **Files** tab to browse and manage your site files. The file browser shows the Nginx document root at `/usr/share/nginx/html`.

### Via SFTP

Connect with any SFTP client:

| Setting | Value |
|---------|-------|
| Host | `your-slug.zevcloud.app` |
| Port | `2222` (check your service details) |
| Username | `sftp_yourslug` |
| Password | Shown in service overview |
| Protocol | SFTP |

Upload your files to the root directory. They'll be served immediately by Nginx.

### Via ZIP Upload

Upload a `.zip` file through the dashboard. It will be extracted and deployed automatically.

## Nginx Configuration

Static sites run on Nginx Alpine with:
- Gzip compression enabled
- SPA fallback (`try_files $uri /index.html` for client-side routing)
- Custom error pages
- Automatic SSL via Let's Encrypt

## Custom Domains

Add custom domains the same way as any other service — via the **Domains** tab.

## SFTP Password Reset

If you need to regenerate your SFTP password:
1. Go to the service **Overview** tab
2. Click **"Regenerate password"** under SFTP credentials
3. The new password is emailed to you
