---
title: Getting started
description: Sign in, create a project, deploy a service from GitHub and connect it to PostgreSQL.
section: Start
order: 1
---

Dekka runs your code from a GitHub repository or a Docker image and connects it to the databases and storage it needs, all in a project in Ghana. Going from a new account to a running service with a database takes about ten minutes.

## What do I need?

You need a GitHub account with the repository you want to deploy, and code that either listens for HTTP on a port, such as a Next.js, Express, FastAPI or Go server, or runs as a background process. Sign up at [dekka.cloud/signup](/signup) with an email link, GitHub or Google. New accounts start on the Free plan, which needs no card.

## Deploy your first service

1. Choose **New project**, give it a name and choose **Create project**. Every project starts with one environment, called `production`.
2. On the canvas, choose **Add**, then **GitHub repository**.
3. If Dekka asks, install the Dekka GitHub App on the account or organisation that owns the repository, and choose which repositories it can read.
4. Pick the repository, then check the **Service name**, the **Branch** and how it **Runs as**. A web service needs the port it listens on.
5. Leave **Build** on **Detect automatically**, or choose **Use my Dockerfile**, and add any environment variables by pasting a `.env` file.
6. Choose **Deploy**.

Dekka creates the service and starts its first deployment straight away. It builds the branch, starts it, and waits for the health check path to return a 2xx before it marks the deploy healthy. A web service then has an address such as `web-x2k4.apps.dekka.cloud`, and every later push to the branch deploys again.

## Add a database

1. Choose **Add**, then **PostgreSQL**, and choose **Create database**.
2. Drag from the right edge of your service to the database.

Dekka creates credentials that only your service holds, sets `DATABASE_URL` on it and restarts it. The line between them turns solid once every step is confirmed. [Connections](/docs/connections) explains each step.

## How do later changes reach the service?

Changes to a service's settings are staged and go out together. After you choose **Stage changes**, a bar at the bottom of the canvas counts what is waiting, and **Deploy changes** applies everything together and redeploys the services it affects. [Staged changes](/docs/staged-changes) covers this in full.

> [!NOTE]
> Dekka is in a pilot. While the dashboard shows a **Mock engine** label, deployments, databases and storage are simulated so the product can be tested end to end, and nothing you deploy runs on real servers.
