---
title: "Deploy SvelteKit on your own server - Deplo"
description: "Push a SvelteKit app and Deplo builds it and runs it as a Node server, on a server you own, with HTTPS in front."
url: "https://deplo.build/frameworks/sveltekit"
image: "https://deplo.build/api/media/file/og_cover.png"
updated: "2026-10-09"
---

# Deploy SvelteKit on your own server

Push a SvelteKit app and Deplo builds it and runs it as a Node server, on a server you own, with HTTPS in front.

## From repo to live in three steps

1. Connect the repository that holds your SvelteKit app.
2. Deplo detects SvelteKit and sets the install, build and start commands and the port.
3. Push to the branch: every push builds and rolls out a new version.

## What Deplo sets up

- Detected from the @sveltejs/kit dependency in package.json.
- Install, build and start commands chosen for you, with port 3000 already set.
- Server load functions and form actions run in the app's own container.
- HTTPS through Traefik as soon as the domain points at the server.

Detection runs on every deploy and is never stored, so a change to the project is picked up by the next push.

[Learn more](https://deplo.build/docs/concepts/what-happens-on-a-deploy#the-framework-is-detected)

## SvelteKit on Deplo

Short answers to what comes up before moving a SvelteKit app onto your own server.

### Which adapter should I use?

adapter-node: the build then produces a Node server that Deplo starts on the app's port.

### Where do environment variables go?

In the app's settings, per environment. They are available during the build too, and secret values are write only: nothing reads them back.

### Is there downtime when I push?

No. The new container has to pass its health check before the old one is retired.

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://deplo.build/#organization",
      "name": "Deplo",
      "url": "https://deplo.build",
      "description": "Deploy apps from Git, Docker images or Compose on your own servers with Deplo. Open source, automatic HTTPS, backups and no per-seat fees.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://deplo.build/api/media/file/og_logo.png",
        "width": 824,
        "height": 824
      },
      "sameAs": [
        "https://ds.deplo.build",
        "https://x.com/deplocloud",
        "https://www.instagram.com/deplocloud",
        "https://github.com/DeploCloud/deplo"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://deplo.build/#website",
      "name": "Deplo",
      "url": "https://deplo.build",
      "description": "Deploy apps from Git, Docker images or Compose on your own servers with Deplo. Open source, automatic HTTPS, backups and no per-seat fees.",
      "publisher": {
        "@id": "https://deplo.build/#organization"
      }
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Frameworks",
      "item": "https://deplo.build/frameworks"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Deploy SvelteKit on your own server",
      "item": "https://deplo.build/frameworks/sveltekit"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Which adapter should I use?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "adapter-node: the build then produces a Node server that Deplo starts on the app's port."
      }
    },
    {
      "@type": "Question",
      "name": "Where do environment variables go?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "In the app's settings, per environment. They are available during the build too, and secret values are write only: nothing reads them back."
      }
    },
    {
      "@type": "Question",
      "name": "Is there downtime when I push?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. The new container has to pass its health check before the old one is retired."
      }
    }
  ]
}
```
