> For the complete documentation index, see [llms.txt](https://django-cloud.gitbook.io/django-cloud-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://django-cloud.gitbook.io/django-cloud-docs/getting-started/first-deploy.md).

# Install the CLI and deploy

The CLI is a normal Python package, [`djangocloud-cli` on PyPI](https://pypi.org/project/djangocloud-cli/):

```bash
pip install djangocloud-cli
djangocloud login
djangocloud deploy
```

There is nothing to change in your project. `djangocloud` works as soon as the package is installed, and still works when your settings won't load.

Prefer `python manage.py djangocloud ...`? Add `"djangocloud_cli"` to `INSTALLED_APPS` first, because Django only finds a management command in an installed app. See [CLI commands](/django-cloud-docs/reference/cli.md).

## What a first deploy looks like

```
$ djangocloud deploy
You're not signed in yet.
Open https://djangocloud.dev/dashboard/cli/?code=ABCD-EFGH and check that the code is ABCD-EFGH.
✓ Signed in as you@example.com
? Which project is this?  Create a new project
? Server size  Nano  0.25 vCPU, 0.5 GB RAM  ~$7/month on AWS
? AWS bills you about $7/month for this server, directly in your own AWS account. Continue? Yes
✓ Linked to my-shop (.djangocloud/config.json)
Deploying my-shop
✓ Wrote build settings to .djangocloud/config.json
  found wsgi_module = config.wsgi:application
  found asgi_module = config.asgi:application (started with uvicorn)
✓ Packed 148 files (212 KB). .env and .git are never uploaded.
✓ Uploaded. Release v1 started.
  Building v1
  v1 is live
✓ v1 is live.
```

What happens after the upload is described in [From code to a live URL](/django-cloud-docs/how-it-works/overview.md), and exactly how your app is run is in [How your app is run](/django-cloud-docs/how-it-works/how-your-app-runs.md).

## What gets uploaded

The folder is packed into one `.tar.gz`. In a git repository that is what git sees, so your `.gitignore` is respected. Whatever your `.gitignore` says, these are **never** uploaded:

* `.env` and `.env.*` (except `.env.example`)
* `.git`, virtualenvs and `node_modules`
* `*.sqlite3`, `*.pem` and `*.key`
* caches

The upload is limited to 100 MB. Set secrets as [environment variables](/django-cloud-docs/how-it-works/environment-variables.md) in the dashboard, not in the upload.

## The `.djangocloud` folder

`.djangocloud/config.json` records which project the folder deploys to and holds your [build settings](/django-cloud-docs/how-it-works/build-settings.md). It contains no secrets, so commit it: a CI checkout then knows its project (`djangocloud --no-input deploy` needs no flags), and if you [deploy from GitHub](/django-cloud-docs/getting-started/github.md) the build can read your build settings. Versions up to 0.1.12 hid the folder with a `.gitignore` inside it; newer ones remove that file if the CLI wrote it.

## Signing in safely

Login uses a code you approve in the browser. The token is stored in `~/.config/djangocloud/credentials.json`, readable only by you. See and revoke tokens under **Settings → Developer** in the dashboard.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://django-cloud.gitbook.io/django-cloud-docs/getting-started/first-deploy.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
