---
title: "Deploy Rails on your own server - Deplo"
description: "Push a Rails app and Railpack installs your gems, precompiles the assets and starts it, on a server you own."
url: "https://deplo.build/frameworks/rails"
image: "https://deplo.build/api/media/file/og_cover.png"
updated: "2026-10-09"
---

# Deploy Rails on your own server

Push a Rails app and Railpack installs your gems, precompiles the assets and starts it, on a server you own.

## From repo to live in three steps

1. Connect the repository that holds your Rails app.
2. Railpack recognises the Rails project and builds it into an image.
3. Push to the branch: every push builds and rolls out a new version.

## What Deplo sets up

- Recognised from config/application.rb.
- Gems installed for production, with the Bundler version from Gemfile.lock.
- Assets precompiled when the app uses Sprockets or Propshaft; API-only apps skip it.
- Node.js installed when the app has a package.json or uses execjs.

Deplo builds with Railpack by default, so a Rails project needs no Dockerfile to get started.

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

## Rails on Deplo

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

### Can I run the database next to it?

Yes. Managed databases live in the same environment and reach the app over the internal network.

### 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 Rails on your own server",
      "item": "https://deplo.build/frameworks/rails"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Can I run the database next to it?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Managed databases live in the same environment and reach the app over the internal network."
      }
    },
    {
      "@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."
      }
    }
  ]
}
```
