> For the complete documentation index, see [llms.txt](https://docs.toystack.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.toystack.ai/backend-quickstarts/django.md).

# Django

## Step 1: Ensure your app is Dockerised

ToyStack uses docker to deploy your application and will look for a `Dockerfile` in the top-level of your project structure.

You can either use your own `Dockerfile` or use the following template:

```docker
# Use an official Python runtime as a parent image
FROM python:3.12

# Set environment variables for Python
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set the working directory to /code
WORKDIR /code

# Copy only the requirements file
COPY requirements.txt /code/

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Copy the current directory contents into the container at /code
COPY . /code/

# Expose the port that the app will run on
EXPOSE 8000

# Run the application
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
```

## Step 2: Import your Git repository

Go to the [ToyStack Dashboard](https://dashboard.toystack.ai) and create a new project using your repository.

## Step 3: Input environment variables

{% hint style="info" %}
Please ensure the `Framework Preset` is set to `DOCKER`. The rest of the variables can be set as required for your project.

Also ensure the `PORT` number matches the one specified in your`Dockerfile`
{% endhint %}

For detailed instructions, please see the [Environment Variables](/get-started/environment-variables-setup.md) page.

## Step 4: Choose a plan

<figure><img src="/files/cWa6RjkgngmQFzPFFWRv" alt=""><figcaption></figcaption></figure>

## Step 5: Deploy

Simply select the branch you want to deploy, its deployment validity and ToyStack will deploy it
