---
# System prepended metadata

title: FastAPI Cookie Cutter Setup Instructions

---

# FastAPI Cookie Cutter Setup Instructions

## Prerequisites

- Docker
    - Refer to [installation docs](https://docs.docker.com/engine/install/)
        - Mac Install is easy via [:link:](https://docs.docker.com/docker-for-mac/install/)
        - Ubuntu Instructions [:link:](https://docs.docker.com/engine/install/ubuntu/)
- Python 3

## Instructions

1. Create QA Project

```bash=
mkdir tqqaproject
cd tqqaproject
```

2. Create virtual Python env (make sure you're using Python 3) and activate it. A good cheat sheet to understand virtual envs is [Venv Cheatsheet :link:](https://aaronlelevier.github.io/virtualenv-cheatsheet/)

```bash=
/usr/bin/python3 -m venv venv
source venv/bin/activate
```

3. Pip install cookiecutter utility and run cookiecutter against repo

```bash=
pip install cookiecutter
cookiecutter https://github.com/tiangolo/full-stack-fastapi-postgresql
```
4. When prompted for configurable variables, use `tqqaproject` as the project_name and select the default for all other values
![Expected Settings input](https://i.imgur.com/1iGTlP3.png)

5. cd into the created project directory

```bash=
cd tqqaproject
```

6. Run all docker contains and stand up the app (this could take a while). The result will be a running application that you can reach at

```bash=
docker-compose up -d
```

7. Once the task is complete, you should be able to run:

```bash=
docker ps
```

and it should reveal the below screenshot
![expected docker-compose output](https://i.imgur.com/fyConE4.png)

8. In your browser go to the app http://localhost/login

    - The FE server is running @ port 80, so no need to add a port

9. Login. use the defaults that were given:

**u: admin@tqqaproject.com**
**p: changethis**

![](https://i.imgur.com/DRrT8GV.png)

10. Once logged in, you should see this screen

![](https://i.imgur.com/IwK3sIP.png)

11. View `README.md` in your directory for more information.

## FAQs

### ConnectionRefusedError
```
Traceback (most recent call last):
  File "site-packages/urllib3/connectionpool.py", line 677, in urlopen
  File "site-packages/urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1252, in request
  File "http/client.py", line 1298, in _send_request
  File "http/client.py", line 1247, in endheaders
  File "http/client.py", line 1026, in _send_output
  File "http/client.py", line 966, in send
  File "site-packages/docker/transport/unixconn.py", line 43, in connect
ConnectionRefusedError: [Errno 61] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "site-packages/requests/adapters.py", line 449, in send
  File "site-packages/urllib3/connectionpool.py", line 727, in urlopen
  File "site-packages/urllib3/util/retry.py", line 403, in increment
  File "site-packages/urllib3/packages/six.py", line 734, in reraise
  File "site-packages/urllib3/connectionpool.py", line 677, in urlopen
  File "site-packages/urllib3/connectionpool.py", line 392, in _make_request
  File "http/client.py", line 1252, in request
  File "http/client.py", line 1298, in _send_request
  File "http/client.py", line 1247, in endheaders
  File "http/client.py", line 1026, in _send_output
  File "http/client.py", line 966, in send
  File "site-packages/docker/transport/unixconn.py", line 43, in connect
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionRefusedError(61, 'Connection refused'))
```

- This is normally due to not having your docker engine running. Please makes sure you are running Docker. To quickly check, run:

```bash
docker ps
```

### "no space left on device"

```bash
ERROR: Service _____ failed to build : Error processing tar file(exit status 1)
```


- your Docker instance does not have enough space. 
- Run the below to clear your docker space and re-run the docker-compose script above

```bash=
docker system prune
```
- If that doesn't work, make sure you allocated enough space to your VM or have enough space left on your machine.