Cloud platform for web apps and databases

Your apps and databases.
Deployed.

Push your code with git. JetDeploy builds it from your Dockerfile, rolls it out with zero downtime and serves it over HTTPS, next to managed PostgreSQL, MariaDB, Redis, OpenSearch and RabbitMQ. No servers to administer.

Illustration of one deploy: a push builds the image, runs the pre-deploy script and moves traffic to the new version once it is ready.
How it works

From repository to URL in four steps.

  1. Create the app

    In the console: a name and the branch to deploy. Your repository needs a Dockerfile at its root.

  2. Push your code

    Add the git remote the console shows you and push, from your terminal or from CI.

  3. Describe the processes

    A command, a listening port and whether it faces the internet. Then click Deploy for the first release.

  4. Open your URL

    Your app answers at https://<app>.jetdeploy.app. From now on, every push to the branch deploys.

git remote add jetdeploy https://git:<token>@jetdeploy.com/git/<app>
git push jetdeploy main

<token> is your Git Access Token, on the App page and under Integrations › Git Access Token. A push to another branch deploys nothing.

name: Deploy to JetDeploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - run: |
          git -c credential.helper= -c credential.helper='!f() { echo username=git; echo "password=$JD_GIT_TOKEN"; }; f' \
            push https://jetdeploy.com/git/<app> HEAD:refs/heads/main
        env:
          JD_GIT_TOKEN: ${{ secrets.JD_GIT_TOKEN }}

Add the Git Access Token as the JD_GIT_TOKEN secret of the repository. fetch-depth: 0 is required: a push from a shallow clone is refused.

First deploy, step by step, in the docs
What you get

The parts of running an app you no longer run.

Every push is a release.

A push to your branch builds the image, runs your pre-deploy script and rolls out. The new version takes traffic only once it is ready; if the build or the pre-deploy script fails, the running version keeps serving.

  • Build logs for every deploy
  • Pre-deploy script for migrations
  • Restarts without downtime
Deploy with git push

Databases on your app's private network.

Add PostgreSQL, MariaDB, Redis, OpenSearch or RabbitMQ from the catalog. The service page gives you its internal endpoint and credentials: set them as environment variables of your app and connect.

  • PostGIS ships with PostgreSQL
  • OpenSearch comes with Dashboards
  • Expose a database to the IP ranges you choose
Data services

Your domain, with HTTPS.

Every app gets an HTTPS host under jetdeploy.app. To use your own domain, create the DNS records the console shows and validate it: the certificate is issued and renewed for you.

  • Straight to JetDeploy or behind your CDN
  • Redirect rules between your domains
  • AI Crawler & Bot protection, per app
Domains

See what runs, and act on it.

Live logs and CPU and memory charts for every process, a shell inside a running process from the browser, and every change to processes or environment variables applied in one step.

  • Logs and metrics for data services too
  • Up to 5 replicas per process
  • Every operation recorded with its outcome
Logs, metrics and shell
Compatibility

Bring the stack you already use.

If it runs in a container, it runs here: the build uses the Dockerfile at the root of your repository.

Languages and runtimes

  • Python
  • Node.js
  • PHP
  • Go
  • Ruby
  • Java
  • Any Dockerfile

Managed data services

  • PostgreSQLwith PostGIS
  • MariaDB
  • Redis
  • OpenSearchwith Dashboards
  • RabbitMQ
AI & Agents

Prefer to ask your agent?

Connect Claude, Claude Code, ChatGPT, Codex, GitHub Copilot or Cursor to JetDeploy through its MCP server, signing in with OAuth. The agent creates apps, adds databases and follows deploys as you, with the permissions you allow when you connect it.

Set up your agent
“Put this app in production on JetDeploy with a Postgres.”
Claude Claude Code ChatGPT Codex Copilot Cursor

Claude and Claude Code are trademarks of Anthropic, PBC. ChatGPT and Codex are trademarks of OpenAI. GitHub Copilot is a trademark of GitHub, Inc. Cursor is a trademark of Anysphere, Inc. JetDeploy is an independent product, not affiliated with or endorsed by any of them.

FAQ

Before you start.

Anything else? hello@jetdeploy.com

A Dockerfile at its root. The build uses it as is, so any language or framework that runs in a container works: Python, Node.js, PHP, Go, Ruby, Java and more. See Build in the docs.

No. You describe the processes to run and push your code; JetDeploy builds the image, runs it, routes traffic to it and issues its certificates. You work with apps, processes, data services and domains.

Your app has its own git remote on JetDeploy: you push to it from your terminal or from your CI, wherever your repository is hosted. The GitHub Actions tab under How it works has a workflow that pushes on every commit to main.

If the build or the pre-deploy script fails, the version already running keeps serving and the operation shows the error with its logs. Fix it and push again. See When a deploy fails.

Billing is per organization, not per process: one fixed-price plan, a reserved amount of vCPU and memory shared by every app and service you run. See Billing in the docs, or write to hello@jetdeploy.com for a plan.

Yes. What you do in the console is also a JSON API with an interactive reference and a public OpenAPI schema, authenticated with an API Access Token.

No. The console, git and the API cover everything. If you already work with an agent, AI & Agents shows how to connect it.

Put your next app online.

A Dockerfile, a git push, an HTTPS URL. Databases when you need them.