How to deploy on TalariCloud

Connect a GitHub repository and push. Everything between that and a live URL is on this page — what the platform works out on its own, what it asks you for, and what it does when something goes wrong.

The whole thing, in three steps

There is no CLI to install, no Dockerfile to write and no YAML to learn. The first deploy is one click; every deploy after it is a git push.

From repository to live site in three steps A GitHub repository connects to TalariCloud, which builds and runs it, producing a live HTTPS address. 01 Your repository on GitHub connect 02 TalariCloud reads it, builds it, runs it deploy 03 Live HTTPS, your domain
You do step one. The platform does step two. Step three is the part you share.

1. Connect your repository

Authorise GitHub once, pick a repository and a branch. If your project lives in a subfolder of a larger repository, point at the subfolder — a frontend and a backend in one repository are two services, and they can share an address.

You can connect a repository without deploying it, which is the right choice if you know you need environment variables or a database in place first.

The TalariCloud services list, showing deployed services with their status and address.
Every service in the account, with what it is doing right now.

2. What the platform works out on its own

Before it asks you anything, TalariCloud reads the repository and identifies what it is. It looks at your manifests — requirements.txt, package.json, composer.json, go.mod, Cargo.toml, Gemfile, mix.exs — and at the files around them.

What it works out:

  • The runtime — Django, FastAPI, Flask, Next.js, Nuxt, Remix, Astro, Gatsby, Vite, Express, NestJS, Laravel, Rails, Phoenix, Go or Rust.
  • The build command — how to turn your source into something runnable.
  • The start command — how to run it, bound to the port the platform hands it.
  • Whether it is a website or a service — a Vite or Astro project that builds to a folder of files is a static site, served from the edge and free.

It shows you all of it before anything is created, with the evidence it used — "found manage.py" — and you can change any of it. When it cannot tell, it says so plainly rather than guessing and failing later.

A project with its own Dockerfile skips all of this: the Dockerfile is used as-is.

3. Add what your app needs to run

Two things, both optional, both easier to do before the first deploy than after.

Environment variables

Add them in the Environment tab. Values are encrypted at rest and masked until you ask to see one. Edits are staged and applied together — one save, one redeploy, however many variables you changed.

A variable marked build-time is available while your image is built, which is what a VITE_ or NEXT_PUBLIC_ variable needs. Build variables end up inside the image, so they cannot be secret — the platform refuses that combination rather than letting you believe otherwise.

A database

Create a managed PostgreSQL or Redis and link it to the service. The connection string is injected at deploy time as DATABASE_URL — nothing to copy, nothing to commit. A linked database always beats a hand-typed variable of the same name, so a stale value cannot quietly point production somewhere else.

Managed databases in the TalariCloud dashboard, each showing its engine, plan and status.
Managed PostgreSQL and Redis, created and linked from the same dashboard.

4. Deploy — and what actually happens

Press Deploy, or push to the branch. Either way the deploy runs through six stages, and the dashboard names the one it is on rather than showing a spinner.

The six stages of a deploy Queued, cloning, building, pushing, deploying, then live. The pre-deploy command runs inside the deploying stage, before any traffic. A failure at any stage stops the deploy and leaves the previous version serving. Queuedwaiting Cloningyour code Buildingan image Pushingto registry Deployingrolling out Liveserving Pre-deploy command migrations run here, before traffic Any stage can fail — and the version already running keeps serving.
The stage names in the dashboard are these exact six. The deploy log streams while it happens.

The pre-deploy command

If you set one, it runs after the image is built and before the new version takes any traffic. This is where database migrations belong. TalariCloud never touches your database on its own — a platform that silently alters your schema is a platform that can silently lose your data.

# Django
python manage.py migrate --noinput

# Rails
bin/rails db:migrate

# Laravel
php artisan migrate --force

If it fails, the rollout stops and nothing is replaced.

A failed deploy does not take your site down

This is worth understanding before you need it, because it changes how much a bad push costs you: nothing.

The new version has to start and become healthy before the old one is retired. A version that never becomes ready never receives a single request.

How a rollout protects a running site The current version keeps serving visitors while the new version starts. If the new version fails to become healthy it is discarded and the old one continues; only when it is healthy does traffic move across. VISITORS Version now serving never interrupted New version starting, no traffic yet Healthy → traffic moves Unhealthy → discarded old version carries on
Because of this, "the deploy failed" and "the site is down" are different sentences — and the dashboard says which one is true.

When a deploy fails on a service that was already serving, the platform tells you which version visitors are still getting, rather than marking the service failed. You can also roll back to any earlier deploy in one click.

5. It is live

Every service gets an HTTPS address immediately, with a certificate issued and renewed for you. Add your own domain and point one DNS record at the platform; the certificate follows.

  • Logs and metrics, streaming live, not on a delay.
  • Every push deploys — automatic deploys are on by default. Turn them off per service if you would rather press the button yourself.
  • Every pull request gets its own running copy, with a comment on the PR linking to it, removed when the PR closes.
  • Pause without losing anything — scale to zero, keep the disks and the configuration, bring it back when you need it.
The TalariCloud dashboard overview, showing an application's services, recent deploys and live activity.
The whole application on one page: its parts, their state, and what just happened.

Guides for your stack

The above is the same for every project. These cover what is specific to a framework — the settings a project written for your laptop has to change before it can serve real traffic.

More are being written. Every framework below already deploys without one.

Python

Django · FastAPI · Flask

JavaScript & TypeScript

Next.js · Nuxt · Remix · Astro · Gatsby · Vite · React · Express · NestJS

PHP & Ruby

Laravel · Rails

Compiled & BEAM

Go · Rust · Phoenix

Deploy your first app

Connect a GitHub repository and push. Billed in birr or USD, prepaid, with a seven-day trial on eligible accounts.

Request an invitation → Platform overview