Skip to main content

Deploy

Deploy full-stack Next.js, React, and Node.js applications from GitHub with zero configuration. Get production deployments in seconds.

GitHub Native

Connect once, deploy on every push

Preview Deployments

Every PR gets its own URL

Instant Rollbacks

Revert to any previous deployment

Custom Domains

HTTPS with auto-provisioned certs

Overview

The Deploy service is a complete CI/CD pipeline for your Sylphx app. Connect your GitHub repository and every push to your main branch triggers a production deployment. Pull requests automatically get preview deployments with isolated environments.

Deployments run in isolated containers with configurable CPU and memory. Build logs are streamed live to your console, and deployments are atomic — traffic only switches after a successful build.

Getting Started

1

Connect GitHub Repository

In your Console, navigate to App → Deploy → Settings and click Connect Repository. Authorize the Sylphx GitHub app and select your repository.

Sylphx requests only the permissions needed for your specific repository — not your entire GitHub account.
2

Configure Environment Variables

Set your production environment variables in App → Deploy → Environment. These are encrypted and injected at build time.

.env.example
# Production environment variables
# Set these in Console → App → Deploy → Environment

DATABASE_URL="postgresql://..."
NEXTAUTH_SECRET="your-secret"
NEXT_PUBLIC_SYLPHX_PUBLIC_KEY="pk_live_..."
SYLPHX_SECRET_KEY="sk_live_..."
PropertyTypeDescription
SYLPHX_APP_IDstringYour Sylphx app ID (auto-injected)
SYLPHX_ENVstringDeployment environment (production, preview)
NEXT_PUBLIC_SYLPHX_PUBLIC_KEYstringPublic key for client-side SDK
SYLPHX_SECRET_KEYstringServer-side secret key
DATABASE_URLstringDatabase connection string
3

Trigger Your First Deployment

Push to your main branch or click Deploy Now in the console to trigger your first deployment. Build logs stream in real-time.

Your app will be live at https://[app-slug].sylphx.app within seconds of a successful build.

Build Configuration

Sylphx auto-detects common frameworks (Next.js, Vite, Create React App). For custom setups, add a sylphx.config.ts file to your repo root:

sylphx.config.ts
# sylphx.config.ts (optional)
export default {
  build: {
    command: 'pnpm run build',
    output: '.next',
    framework: 'nextjs'
  },
  routes: [
    { src: '/api/(.*)', dest: '/api/$1' },
    { src: '/(.*)', dest: '/$1' }
  ]
}
The output directory defaults to .next for Next.js, dist for Vite, and build for Create React App.

Preview Deployments

Every pull request automatically gets an isolated preview deployment at a unique URL like https://pr-42-[app-slug].sylphx.app. Preview deployments:

  • Are created automatically when a PR is opened
  • Update on every push to the PR branch
  • Use preview environment variables (configurable separately)
  • Are deleted automatically when the PR is merged or closed
  • Share infrastructure but have isolated databases and storage
.github/workflows/preview.yml
# .github/workflows/preview.yml
# Sylphx automatically deploys — this is optional for custom CI

name: Preview Deploy
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: sylphxai/deploy-action@v1
        with:
          app-id: ${{ secrets.SYLPHX_APP_ID }}
          secret-key: ${{ secrets.SYLPHX_SECRET_KEY }}

Build & Deploy Logs

Build logs are streamed live to the console during deployment. After completion, logs are retained for 30 days and are searchable.

Access logs in App → Deploy → Deployments → [deployment] → Logs. Each deployment has:

  • Build logs — npm install, build command output, errors
  • Runtime logs — server console.log, errors, traces
  • Access logs — request/response details, latency

Rollbacks

Roll back to any previous deployment instantly with zero downtime. Traffic is rerouted atomically to the previous deployment.

1

Find the deployment to restore

Navigate to App → Deploy → Deployments and find the version you want to restore.
2

Click Rollback

Click the Rollback button on the deployment. Confirm the action — traffic switches within seconds.
Rolling back does not revert environment variable changes. If a new env var caused the issue, update it separately in Deploy → Environment.

Custom Domains

Add your own domain in App → Deploy → Domains. SSL certificates are auto-provisioned via Let's Encrypt within minutes.

1

Add domain in console

Enter your domain (e.g. app.example.com) and click Add Domain.
2

Update DNS

Add a CNAME record pointing to your Sylphx deployment URL:
# For apex domain (example.com)
A     @     46.225.87.219

# For subdomain (app.example.com)
CNAME app   [app-slug].sylphx.app
3

Verify and provision SSL

DNS changes propagate within minutes. Sylphx auto-provisions and renews your SSL certificate automatically.

Self-Hosted Runners

Self-hosted runners let you execute builds on your own infrastructure. This is essential for:

  • iOS / macOS builds — Requires Apple Silicon or Intel hardware
  • Windows / UWP builds — Requires Windows 10/11 or Server
  • Private dependencies — Access internal registries behind your firewall
  • Custom toolchains — Use tools not available on hosted builders
1

Register a runner in the Console

Go to Org Settings → Runners → Add Runner. Enter a name, select the platform (Linux / macOS / Windows) and architecture (x64 / arm64). A one-time registration token is generated.
2

Install the runner agent

On macOS or Linux:
# Install
curl -sL https://sylphx.com/install/runner | sh

# Register (one-time)
sylphx-runner register --registration-token sxr_reg_<token>

# Start
sylphx-runner start
On Windows:
# Install
winget install Sylphx.Runner

# Register (one-time)
sylphx-runner register --registration-token sxr_reg_<token>

# Start
$env:SYLPHX_RUNNER_TOKEN="sxr_run_<token>"; sylphx-runner start
3

Enable custom runner for an environment

In App → Settings → Environments, enable the Use Custom Runner toggle. Deployments will now be dispatched to an online runner matching the target platform.
The runner agent polls for jobs every 30 seconds. When a job arrives, it clones your repository, runs the build command, and streams logs back to the Console in real-time.

See the @sylphx/runner README for full documentation including running as a systemd/launchd service.

Backup & Recovery

All databases provisioned through Sylphx are automatically backed up daily at 2:00 AM UTC. Backups are stored encrypted in isolated object storage and retained based on your plan.

  • Free plan: 7-day retention, daily backups
  • Pro plan: 30-day retention, daily + weekly backups
  • Enterprise: Point-in-time restore + custom retention
For full documentation on manual backups, restore procedures, and retention policies, see the Backup & Recovery documentation.

Pricing

Deployments are priced based on compute resources:

  • RAM: $5 per GB/month
  • CPU: $8 per vCPU/month
  • Free tier: 256MB RAM + 0.1 vCPU included