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.
From repository to URL in four steps.
-
Create the app
In the console: a name and the branch to deploy. Your repository needs a Dockerfile at its root.
-
Push your code
Add the git remote the console shows you and push, from your terminal or from CI.
-
Describe the processes
A command, a listening port and whether it faces the internet. Then click Deploy for the first release.
-
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.
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
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
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
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
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
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 agentClaude 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.
main.Put your next app online.
A Dockerfile, a git push, an HTTPS URL. Databases when you need them.