Skip to content

Web Applications

Deploy web applications from a Git repository. ZevCloud supports any language or framework that can run in a container.

ZevCloud uses Nixpacks to auto-detect and build your application:

FrameworkAuto-DetectedDefault Port
Next.js3000
React (Vite/CRA)3000
Express / Node.js3000
NestJS3000
Python (Django/Flask)8000
Go8080
Ruby on Rails3000
PHP / Laravel8000
Rust8080
Static HTML80
  1. Add Service → Web Application → Public Repository
  2. Paste the repository URL (e.g., https://github.com/user/repo)
  3. Select the branch
  4. Configure and deploy
  1. Add Service → Web Application → Import from GitHub
  2. If not connected, click “Connect GitHub” to install the ZevCloud GitHub App
  3. Select your repository from the list
  4. Select the branch
  5. Configure and deploy

ZevCloud auto-detects most settings, but you can customize:

SettingDescriptionExample
Build CommandCommand to build your appnpm run build
Install CommandCommand to install dependenciesnpm ci
Start CommandCommand to start your appnpm start
Output DirectoryFor static buildsdist, .next, build
Root DirectoryIf your app is in a subdirectorypackages/web
PortPort your app listens on3000

These can be set during creation or updated in Service Settings.

Set environment variables in the Variables tab of your service:

DATABASE_URL=postgres://user:pass@host:5432/db
NODE_ENV=production
API_KEY=sk_live_...

Variables marked as secret are encrypted at rest and hidden in the UI.

When you push to the configured branch, ZevCloud automatically:

  1. Receives a GitHub webhook
  2. Clones the latest code
  3. Builds using Nixpacks
  4. Deploys with zero-downtime rollout
  5. Sends an email notification (success or failure)

Disable auto-deploy in Service Settings → Build & Deploy.

View real-time build logs in the Deployments tab. Each deployment shows:

  • Git commit message and SHA
  • Build duration
  • Success or failure status
  • Detailed build output

Each plan provides different resource limits:

PlanMemoryCPUBuild Timeout
Free512 MB1 core10 min
Starter2 GB1 core20 min
Pro4 GB2 cores30 min
Business8 GB4 cores60 min

To keep the platform clean for everyone, customer containers are not allowed to make outbound connections on a few specific ports. The host blocks them at the firewall, so any code in your app that tries to reach these ports will time out.

  • SMTP (25, 465, 587, 2525) — direct mail submission. Use a transactional email API (Resend, Mailgun, Postmark, SendGrid) over HTTPS instead. Their REST/HTTP endpoints are not blocked.
  • IRC (6667, 6697) — typical command-and-control channels.
  • Mining-pool stratum (3333, 4444, 5555, 7777, 14444) and Bitcoin RPC (8332, 8333).

Everything else (HTTPS to third-party APIs, your database, Redis, CDNs, webhooks) works normally. If you need to send email, switch to your provider’s HTTPS API.

If a deployment fails or causes issues, you can redeploy a previous version from the Deployments tab.